407f43:	8a 5e ff             	mov    -0x1(%esi),%bl
407f46:	80 fb 61             	cmp    $0x61,%bl
407f49:	72 08                	jb     0x407f53
407f4b:	80 fb 7a             	cmp    $0x7a,%bl
407f4e:	77 03                	ja     0x407f53
407f50:	80 eb 20             	sub    $0x20,%bl
407f53:	8a 7f ff             	mov    -0x1(%edi),%bh
407f56:	80 ff 61             	cmp    $0x61,%bh
407f59:	72 08                	jb     0x407f63
407f5b:	80 ff 7a             	cmp    $0x7a,%bh
407f5e:	77 03                	ja     0x407f63
407f60:	80 ef 20             	sub    $0x20,%bh
407f63:	38 fb                	cmp    %bh,%bl
407f65:	74 d8                	je     0x407f3f
407f67:	0f b6 c3             	movzbl %bl,%eax
407f6a:	0f b6 d7             	movzbl %bh,%edx
407f6d:	29 d0                	sub    %edx,%eax
407f6f:	5b                   	pop    %ebx
407f70:	5f                   	pop    %edi
407f71:	5e                   	pop    %esi
407f72:	c3                   	ret
407f73:	90                   	nop
407f74:	39 d0                	cmp    %edx,%eax
407f76:	74 19                	je     0x407f91
407f78:	09 c0                	or     %eax,%eax
407f7a:	74 17                	je     0x407f93
407f7c:	09 d2                	or     %edx,%edx
407f7e:	74 14                	je     0x407f94
407f80:	8b 48 fc             	mov    -0x4(%eax),%ecx
407f83:	3b 4a fc             	cmp    -0x4(%edx),%ecx
407f86:	75 0c                	jne    0x407f94
407f88:	e8 93 ff ff ff       	call   0x407f20
407f8d:	85 c0                	test   %eax,%eax
407f8f:	75 03                	jne    0x407f94
407f91:	b0 01                	mov    $0x1,%al
407f93:	c3                   	ret
407f94:	31 c0                	xor    %eax,%eax
407f96:	c3                   	ret
407f97:	90                   	nop
407f98:	53                   	push   %ebx
407f99:	56                   	push   %esi
407f9a:	57                   	push   %edi
407f9b:	8b fa                	mov    %edx,%edi
407f9d:	8b f0                	mov    %eax,%esi
407f9f:	8b c6                	mov    %esi,%eax
407fa1:	e8 6a c3 ff ff       	call   0x404310
407fa6:	8b d8                	mov    %eax,%ebx
407fa8:	8b c6                	mov    %esi,%eax
407faa:	e8 61 c5 ff ff       	call   0x404510
407faf:	8b d0                	mov    %eax,%edx
407fb1:	8b c7                	mov    %edi,%eax
407fb3:	8b cb                	mov    %ebx,%ecx
407fb5:	e8 86 c1 ff ff       	call   0x404140
407fba:	85 db                	test   %ebx,%ebx
407fbc:	7e 09                	jle    0x407fc7
407fbe:	53                   	push   %ebx
407fbf:	8b 07                	mov    (%edi),%eax
407fc1:	50                   	push   %eax
407fc2:	e8 3d e7 ff ff       	call   0x406704
407fc7:	5f                   	pop    %edi
407fc8:	5e                   	pop    %esi
407fc9:	5b                   	pop    %ebx
407fca:	c3                   	ret
407fcb:	90                   	nop
407fcc:	53                   	push   %ebx
407fcd:	56                   	push   %esi
407fce:	8b f2                	mov    %edx,%esi
407fd0:	8b d8                	mov    %eax,%ebx
407fd2:	8b c6                	mov    %esi,%eax
407fd4:	e8 37 c3 ff ff       	call   0x404310
407fd9:	50                   	push   %eax
407fda:	8b c6                	mov    %esi,%eax
407fdc:	e8 2f c5 ff ff       	call   0x404510
407fe1:	50                   	push   %eax
407fe2:	8b c3                	mov    %ebx,%eax
407fe4:	e8 27 c3 ff ff       	call   0x404310
407fe9:	50                   	push   %eax
407fea:	8b c3                	mov    %ebx,%eax
407fec:	e8 1f c5 ff ff       	call   0x404510
407ff1:	50                   	push   %eax
407ff2:	6a 00                	push   $0x0
407ff4:	68 00 04 00 00       	push   $0x400
407ff9:	e8 7e e2 ff ff       	call   0x40627c
407ffe:	83 e8 02             	sub    $0x2,%eax
408001:	5e                   	pop    %esi
408002:	5b                   	pop    %ebx
408003:	c3                   	ret
408004:	53                   	push   %ebx
408005:	56                   	push   %esi
408006:	8b f2                	mov    %edx,%esi
408008:	8b d8                	mov    %eax,%ebx
40800a:	8b c6                	mov    %esi,%eax
40800c:	e8 ff c2 ff ff       	call   0x404310
408011:	50                   	push   %eax
408012:	8b c6                	mov    %esi,%eax
408014:	e8 f7 c4 ff ff       	call   0x404510
408019:	50                   	push   %eax
40801a:	8b c3                	mov    %ebx,%eax
40801c:	e8 ef c2 ff ff       	call   0x404310
408021:	50                   	push   %eax
408022:	8b c3                	mov    %ebx,%eax
408024:	e8 e7 c4 ff ff       	call   0x404510
408029:	50                   	push   %eax
40802a:	6a 01                	push   $0x1
40802c:	68 00 04 00 00       	push   $0x400
408031:	e8 46 e2 ff ff       	call   0x40627c
408036:	83 e8 02             	sub    $0x2,%eax
408039:	5e                   	pop    %esi
40803a:	5b                   	pop    %ebx
40803b:	c3                   	ret
40803c:	53                   	push   %ebx
40803d:	56                   	push   %esi
40803e:	8b f2                	mov    %edx,%esi
408040:	8b d8                	mov    %eax,%ebx
408042:	8b d6                	mov    %esi,%edx
408044:	8b c3                	mov    %ebx,%eax
408046:	e8 b9 ff ff ff       	call   0x408004
40804b:	85 c0                	test   %eax,%eax
40804d:	0f 94 c0             	sete   %al
408050:	5e                   	pop    %esi
408051:	5b                   	pop    %ebx
408052:	c3                   	ret
408053:	90                   	nop
408054:	53                   	push   %ebx
408055:	56                   	push   %esi
408056:	57                   	push   %edi
408057:	8b d9                	mov    %ecx,%ebx
408059:	8b fa                	mov    %edx,%edi
40805b:	8b f0                	mov    %eax,%esi
40805d:	53                   	push   %ebx
40805e:	57                   	push   %edi
40805f:	53                   	push   %ebx
408060:	56                   	push   %esi
408061:	6a 01                	push   $0x1
408063:	68 00 04 00 00       	push   $0x400
408068:	e8 0f e2 ff ff       	call   0x40627c
40806d:	83 e8 02             	sub    $0x2,%eax
408070:	5f                   	pop    %edi
408071:	5e                   	pop    %esi
408072:	5b                   	pop    %ebx
408073:	c3                   	ret
408074:	53                   	push   %ebx
408075:	56                   	push   %esi
408076:	57                   	push   %edi
408077:	55                   	push   %ebp
408078:	8b ea                	mov    %edx,%ebp
40807a:	8b f8                	mov    %eax,%edi
40807c:	8b c7                	mov    %edi,%eax
40807e:	e8 8d c2 ff ff       	call   0x404310
408083:	8b f0                	mov    %eax,%esi
408085:	bb 01 00 00 00       	mov    $0x1,%ebx
40808a:	eb 01                	jmp    0x40808d
40808c:	43                   	inc    %ebx
40808d:	3b f3                	cmp    %ebx,%esi
40808f:	7c 07                	jl     0x408098
408091:	80 7c 1f ff 20       	cmpb   $0x20,-0x1(%edi,%ebx,1)
408096:	76 f4                	jbe    0x40808c
408098:	3b f3                	cmp    %ebx,%esi
40809a:	7d 0a                	jge    0x4080a6
40809c:	8b c5                	mov    %ebp,%eax
40809e:	e8 ad bf ff ff       	call   0x404050
4080a3:	eb 17                	jmp    0x4080bc
4080a5:	4e                   	dec    %esi
4080a6:	80 7c 37 ff 20       	cmpb   $0x20,-0x1(%edi,%esi,1)
4080ab:	76 f8                	jbe    0x4080a5
4080ad:	55                   	push   %ebp
4080ae:	8b ce                	mov    %esi,%ecx
4080b0:	2b cb                	sub    %ebx,%ecx
4080b2:	41                   	inc    %ecx
4080b3:	8b d3                	mov    %ebx,%edx
4080b5:	8b c7                	mov    %edi,%eax
4080b7:	e8 b4 c4 ff ff       	call   0x404570
4080bc:	5d                   	pop    %ebp
4080bd:	5f                   	pop    %edi
4080be:	5e                   	pop    %esi
4080bf:	5b                   	pop    %ebx
4080c0:	c3                   	ret
4080c1:	8d 40 00             	lea    0x0(%eax),%eax
4080c4:	53                   	push   %ebx
4080c5:	56                   	push   %esi
4080c6:	57                   	push   %edi
4080c7:	8b f0                	mov    %eax,%esi
4080c9:	33 db                	xor    %ebx,%ebx
4080cb:	8b c6                	mov    %esi,%eax
4080cd:	e8 3e c2 ff ff       	call   0x404310
4080d2:	85 c0                	test   %eax,%eax
4080d4:	74 4b                	je     0x408121
4080d6:	8a 06                	mov    (%esi),%al
4080d8:	04 bf                	add    $0xbf,%al
4080da:	2c 1a                	sub    $0x1a,%al
4080dc:	72 0a                	jb     0x4080e8
4080de:	2c 04                	sub    $0x4,%al
4080e0:	74 06                	je     0x4080e8
4080e2:	04 fe                	add    $0xfe,%al
4080e4:	2c 1a                	sub    $0x1a,%al
4080e6:	73 39                	jae    0x408121
4080e8:	8b c6                	mov    %esi,%eax
4080ea:	e8 21 c2 ff ff       	call   0x404310
4080ef:	83 e8 02             	sub    $0x2,%eax
4080f2:	7c 2b                	jl     0x40811f
4080f4:	40                   	inc    %eax
4080f5:	bf 02 00 00 00       	mov    $0x2,%edi
4080fa:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
4080fe:	80 c2 d0             	add    $0xd0,%dl
408101:	80 ea 0a             	sub    $0xa,%dl
408104:	72 15                	jb     0x40811b
408106:	80 c2 f9             	add    $0xf9,%dl
408109:	80 ea 1a             	sub    $0x1a,%dl
40810c:	72 0d                	jb     0x40811b
40810e:	80 ea 04             	sub    $0x4,%dl
408111:	74 08                	je     0x40811b
408113:	80 c2 fe             	add    $0xfe,%dl
408116:	80 ea 1a             	sub    $0x1a,%dl
408119:	73 06                	jae    0x408121
40811b:	47                   	inc    %edi
40811c:	48                   	dec    %eax
40811d:	75 db                	jne    0x4080fa
40811f:	b3 01                	mov    $0x1,%bl
408121:	8b c3                	mov    %ebx,%eax
408123:	5f                   	pop    %edi
408124:	5e                   	pop    %esi
408125:	5b                   	pop    %ebx
408126:	c3                   	ret
408127:	90                   	nop
408128:	08 c9                	or     %cl,%cl
40812a:	75 17                	jne    0x408143
40812c:	09 c0                	or     %eax,%eax
40812e:	79 0e                	jns    0x40813e
408130:	f7 d8                	neg    %eax
408132:	e8 07 00 00 00       	call   0x40813e
408137:	b0 2d                	mov    $0x2d,%al
408139:	41                   	inc    %ecx
40813a:	4e                   	dec    %esi
40813b:	88 06                	mov    %al,(%esi)
40813d:	c3                   	ret
40813e:	b9 0a 00 00 00       	mov    $0xa,%ecx
408143:	52                   	push   %edx
408144:	56                   	push   %esi
408145:	31 d2                	xor    %edx,%edx
408147:	f7 f1                	div    %ecx
408149:	4e                   	dec    %esi
40814a:	80 c2 30             	add    $0x30,%dl
40814d:	80 fa 3a             	cmp    $0x3a,%dl
408150:	72 03                	jb     0x408155
408152:	80 c2 07             	add    $0x7,%dl
408155:	88 16                	mov    %dl,(%esi)
408157:	09 c0                	or     %eax,%eax
408159:	75 ea                	jne    0x408145
40815b:	59                   	pop    %ecx
40815c:	5a                   	pop    %edx
40815d:	29 f1                	sub    %esi,%ecx
40815f:	29 ca                	sub    %ecx,%edx
408161:	76 10                	jbe    0x408173
408163:	01 d1                	add    %edx,%ecx
408165:	b0 30                	mov    $0x30,%al
408167:	29 d6                	sub    %edx,%esi
408169:	eb 03                	jmp    0x40816e
40816b:	88 04 32             	mov    %al,(%edx,%esi,1)
40816e:	4a                   	dec    %edx
40816f:	75 fa                	jne    0x40816b
408171:	88 06                	mov    %al,(%esi)
408173:	c3                   	ret
408174:	56                   	push   %esi
408175:	89 e6                	mov    %esp,%esi
408177:	83 ec 10             	sub    $0x10,%esp
40817a:	31 c9                	xor    %ecx,%ecx
40817c:	52                   	push   %edx
40817d:	31 d2                	xor    %edx,%edx
40817f:	e8 a4 ff ff ff       	call   0x408128
408184:	89 f2                	mov    %esi,%edx
408186:	58                   	pop    %eax
408187:	e8 b4 bf ff ff       	call   0x404140
40818c:	83 c4 10             	add    $0x10,%esp
40818f:	5e                   	pop    %esi
408190:	c3                   	ret
408191:	8d 40 00             	lea    0x0(%eax),%eax
408194:	08 c9                	or     %cl,%cl
408196:	75 30                	jne    0x4081c8
408198:	b9 0a 00 00 00       	mov    $0xa,%ecx
40819d:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
4081a4:	74 22                	je     0x4081c8
4081a6:	ff 70 04             	push   0x4(%eax)
4081a9:	ff 30                	push   (%eax)
4081ab:	89 e0                	mov    %esp,%eax
4081ad:	f7 1c 24             	negl   (%esp)
4081b0:	83 54 24 04 00       	adcl   $0x0,0x4(%esp)
4081b5:	f7 5c 24 04          	negl   0x4(%esp)
4081b9:	e8 0a 00 00 00       	call   0x4081c8
4081be:	c6 46 ff 2d          	movb   $0x2d,-0x1(%esi)
4081c2:	4e                   	dec    %esi
4081c3:	41                   	inc    %ecx
4081c4:	83 c4 08             	add    $0x8,%esp
4081c7:	c3                   	ret
4081c8:	56                   	push   %esi
4081c9:	83 ec 04             	sub    $0x4,%esp
4081cc:	d9 7c 24 02          	fnstcw 0x2(%esp)
4081d0:	d9 3c 24             	fnstcw (%esp)
4081d3:	66 81 0c 24 00 0f    	orw    $0xf00,(%esp)
4081d9:	d9 2c 24             	fldcw  (%esp)
4081dc:	66 89 0c 24          	mov    %cx,(%esp)
4081e0:	d9 e8                	fld1
4081e2:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
4081e9:	74 27                	je     0x408212
4081eb:	ff 70 04             	push   0x4(%eax)
4081ee:	ff 30                	push   (%eax)
4081f0:	81 64 24 04 ff ff ff 	andl   $0x7fffffff,0x4(%esp)
4081f7:	7f
4081f8:	68 ff ff ff 7f       	push   $0x7fffffff
4081fd:	68 ff ff ff ff       	push   $0xffffffff
408202:	df 6c 24 08          	fildll 0x8(%esp)
408206:	df 2c 24             	fildll (%esp)
408209:	d8 c2                	fadd   %st(2),%st
40820b:	de c1                	faddp  %st,%st(1)
40820d:	83 c4 10             	add    $0x10,%esp
408210:	eb 02                	jmp    0x408214
408212:	df 28                	fildll (%eax)
408214:	df 04 24             	filds  (%esp)
408217:	d9 c1                	fld    %st(1)
408219:	4e                   	dec    %esi
40821a:	d9 f8                	fprem
40821c:	df 1c 24             	fistps (%esp)
40821f:	dc f9                	fdivr  %st,%st(1)
408221:	8a 04 24             	mov    (%esp),%al
408224:	04 30                	add    $0x30,%al
408226:	3c 3a                	cmp    $0x3a,%al
408228:	72 02                	jb     0x40822c
40822a:	04 07                	add    $0x7,%al
40822c:	88 06                	mov    %al,(%esi)
40822e:	d9 c1                	fld    %st(1)
408230:	d8 d3                	fcom   %st(3)
408232:	9b df e0             	fstsw  %ax
408235:	9e                   	sahf
408236:	73 e1                	jae    0x408219
408238:	d9 6c 24 02          	fldcw  0x2(%esp)
40823c:	83 c4 04             	add    $0x4,%esp
40823f:	dd c3                	ffree  %st(3)
408241:	dd c2                	ffree  %st(2)
408243:	dd c1                	ffree  %st(1)
408245:	dd c0                	ffree  %st(0)
408247:	59                   	pop    %ecx
408248:	29 f1                	sub    %esi,%ecx
40824a:	29 ca                	sub    %ecx,%edx
40824c:	76 10                	jbe    0x40825e
40824e:	29 d6                	sub    %edx,%esi
408250:	b0 30                	mov    $0x30,%al
408252:	01 d1                	add    %edx,%ecx
408254:	eb 03                	jmp    0x408259
408256:	88 04 32             	mov    %al,(%edx,%esi,1)
408259:	4a                   	dec    %edx
40825a:	75 fa                	jne    0x408256