408174:	75 df                	jne    0x408155
408176:	59                   	pop    %ecx
408177:	5a                   	pop    %edx
408178:	5f                   	pop    %edi
408179:	5e                   	pop    %esi
40817a:	5b                   	pop    %ebx
40817b:	c3                   	ret
40817c:	53                   	push   %ebx
40817d:	56                   	push   %esi
40817e:	57                   	push   %edi
40817f:	83 c4 f8             	add    $0xfffffff8,%esp
408182:	8b fa                	mov    %edx,%edi
408184:	8b f0                	mov    %eax,%esi
408186:	8b c6                	mov    %esi,%eax
408188:	e8 a3 c6 ff ff       	call   0x404830
40818d:	8b d8                	mov    %eax,%ebx
40818f:	8b c7                	mov    %edi,%eax
408191:	8b d3                	mov    %ebx,%edx
408193:	e8 24 ca ff ff       	call   0x404bbc
408198:	89 34 24             	mov    %esi,(%esp)
40819b:	8b 07                	mov    (%edi),%eax
40819d:	89 44 24 04          	mov    %eax,0x4(%esp)
4081a1:	85 db                	test   %ebx,%ebx
4081a3:	74 21                	je     0x4081c6
4081a5:	8b 04 24             	mov    (%esp),%eax
4081a8:	8a 00                	mov    (%eax),%al
4081aa:	3c 41                	cmp    $0x41,%al
4081ac:	72 06                	jb     0x4081b4
4081ae:	3c 5a                	cmp    $0x5a,%al
4081b0:	77 02                	ja     0x4081b4
4081b2:	04 20                	add    $0x20,%al
4081b4:	8b 54 24 04          	mov    0x4(%esp),%edx
4081b8:	88 02                	mov    %al,(%edx)
4081ba:	ff 04 24             	incl   (%esp)
4081bd:	ff 44 24 04          	incl   0x4(%esp)
4081c1:	4b                   	dec    %ebx
4081c2:	85 db                	test   %ebx,%ebx
4081c4:	75 df                	jne    0x4081a5
4081c6:	59                   	pop    %ecx
4081c7:	5a                   	pop    %edx
4081c8:	5f                   	pop    %edi
4081c9:	5e                   	pop    %esi
4081ca:	5b                   	pop    %ebx
4081cb:	c3                   	ret
4081cc:	56                   	push   %esi
4081cd:	57                   	push   %edi
4081ce:	89 c6                	mov    %eax,%esi
4081d0:	89 d7                	mov    %edx,%edi
4081d2:	09 c0                	or     %eax,%eax
4081d4:	74 03                	je     0x4081d9
4081d6:	8b 40 fc             	mov    -0x4(%eax),%eax
4081d9:	09 d2                	or     %edx,%edx
4081db:	74 03                	je     0x4081e0
4081dd:	8b 52 fc             	mov    -0x4(%edx),%edx
4081e0:	89 c1                	mov    %eax,%ecx
4081e2:	39 d1                	cmp    %edx,%ecx
4081e4:	76 02                	jbe    0x4081e8
4081e6:	89 d1                	mov    %edx,%ecx
4081e8:	39 c9                	cmp    %ecx,%ecx
4081ea:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4081ec:	74 08                	je     0x4081f6
4081ee:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
4081f2:	0f b6 57 ff          	movzbl -0x1(%edi),%edx
4081f6:	29 d0                	sub    %edx,%eax
4081f8:	5f                   	pop    %edi
4081f9:	5e                   	pop    %esi
4081fa:	c3                   	ret
4081fb:	90                   	nop
4081fc:	56                   	push   %esi
4081fd:	57                   	push   %edi
4081fe:	89 c6                	mov    %eax,%esi
408200:	89 d7                	mov    %edx,%edi
408202:	89 ca                	mov    %ecx,%edx
408204:	31 c0                	xor    %eax,%eax
408206:	83 e2 03             	and    $0x3,%edx
408209:	c1 f9 02             	sar    $0x2,%ecx
40820c:	78 0a                	js     0x408218
40820e:	f3 a7                	repz cmpsl %es:(%edi),%ds:(%esi)
408210:	75 07                	jne    0x408219
408212:	89 d1                	mov    %edx,%ecx
408214:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408216:	75 01                	jne    0x408219
408218:	40                   	inc    %eax
408219:	5f                   	pop    %edi
40821a:	5e                   	pop    %esi
40821b:	c3                   	ret
40821c:	56                   	push   %esi
40821d:	57                   	push   %edi
40821e:	53                   	push   %ebx
40821f:	89 c6                	mov    %eax,%esi
408221:	89 d7                	mov    %edx,%edi
408223:	09 c0                	or     %eax,%eax
408225:	74 03                	je     0x40822a
408227:	8b 40 fc             	mov    -0x4(%eax),%eax
40822a:	09 d2                	or     %edx,%edx
40822c:	74 03                	je     0x408231
40822e:	8b 52 fc             	mov    -0x4(%edx),%edx
408231:	89 c1                	mov    %eax,%ecx
408233:	39 d1                	cmp    %edx,%ecx
408235:	76 02                	jbe    0x408239
408237:	89 d1                	mov    %edx,%ecx
408239:	39 c9                	cmp    %ecx,%ecx
40823b:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
40823d:	74 2a                	je     0x408269
40823f:	8a 5e ff             	mov    -0x1(%esi),%bl
408242:	80 fb 61             	cmp    $0x61,%bl
408245:	72 08                	jb     0x40824f
408247:	80 fb 7a             	cmp    $0x7a,%bl
40824a:	77 03                	ja     0x40824f
40824c:	80 eb 20             	sub    $0x20,%bl
40824f:	8a 7f ff             	mov    -0x1(%edi),%bh
408252:	80 ff 61             	cmp    $0x61,%bh
408255:	72 08                	jb     0x40825f
408257:	80 ff 7a             	cmp    $0x7a,%bh
40825a:	77 03                	ja     0x40825f
40825c:	80 ef 20             	sub    $0x20,%bh
40825f:	38 fb                	cmp    %bh,%bl
408261:	74 d8                	je     0x40823b
408263:	0f b6 c3             	movzbl %bl,%eax
408266:	0f b6 d7             	movzbl %bh,%edx
408269:	29 d0                	sub    %edx,%eax
40826b:	5b                   	pop    %ebx
40826c:	5f                   	pop    %edi
40826d:	5e                   	pop    %esi
40826e:	c3                   	ret
40826f:	90                   	nop
408270:	39 d0                	cmp    %edx,%eax
408272:	74 19                	je     0x40828d
408274:	09 c0                	or     %eax,%eax
408276:	74 17                	je     0x40828f
408278:	09 d2                	or     %edx,%edx
40827a:	74 14                	je     0x408290
40827c:	8b 48 fc             	mov    -0x4(%eax),%ecx
40827f:	3b 4a fc             	cmp    -0x4(%edx),%ecx
408282:	75 0c                	jne    0x408290
408284:	e8 93 ff ff ff       	call   0x40821c
408289:	85 c0                	test   %eax,%eax
40828b:	75 03                	jne    0x408290
40828d:	b0 01                	mov    $0x1,%al
40828f:	c3                   	ret
408290:	31 c0                	xor    %eax,%eax
408292:	c3                   	ret
408293:	90                   	nop
408294:	53                   	push   %ebx
408295:	56                   	push   %esi
408296:	8b f2                	mov    %edx,%esi
408298:	8b d8                	mov    %eax,%ebx
40829a:	8b c6                	mov    %esi,%eax
40829c:	e8 8f c5 ff ff       	call   0x404830
4082a1:	50                   	push   %eax
4082a2:	8b c6                	mov    %esi,%eax
4082a4:	e8 87 c7 ff ff       	call   0x404a30
4082a9:	50                   	push   %eax
4082aa:	8b c3                	mov    %ebx,%eax
4082ac:	e8 7f c5 ff ff       	call   0x404830
4082b1:	50                   	push   %eax
4082b2:	8b c3                	mov    %ebx,%eax
4082b4:	e8 77 c7 ff ff       	call   0x404a30
4082b9:	50                   	push   %eax
4082ba:	6a 00                	push   $0x0
4082bc:	68 00 04 00 00       	push   $0x400
4082c1:	e8 36 e3 ff ff       	call   0x4065fc
4082c6:	83 e8 02             	sub    $0x2,%eax
4082c9:	5e                   	pop    %esi
4082ca:	5b                   	pop    %ebx
4082cb:	c3                   	ret
4082cc:	53                   	push   %ebx
4082cd:	56                   	push   %esi
4082ce:	8b f2                	mov    %edx,%esi
4082d0:	8b d8                	mov    %eax,%ebx
4082d2:	8b c6                	mov    %esi,%eax
4082d4:	e8 57 c5 ff ff       	call   0x404830
4082d9:	50                   	push   %eax
4082da:	8b c6                	mov    %esi,%eax
4082dc:	e8 4f c7 ff ff       	call   0x404a30
4082e1:	50                   	push   %eax
4082e2:	8b c3                	mov    %ebx,%eax
4082e4:	e8 47 c5 ff ff       	call   0x404830
4082e9:	50                   	push   %eax
4082ea:	8b c3                	mov    %ebx,%eax
4082ec:	e8 3f c7 ff ff       	call   0x404a30
4082f1:	50                   	push   %eax
4082f2:	6a 01                	push   $0x1
4082f4:	68 00 04 00 00       	push   $0x400
4082f9:	e8 fe e2 ff ff       	call   0x4065fc
4082fe:	83 e8 02             	sub    $0x2,%eax
408301:	5e                   	pop    %esi
408302:	5b                   	pop    %ebx
408303:	c3                   	ret
408304:	53                   	push   %ebx
408305:	56                   	push   %esi
408306:	8b f2                	mov    %edx,%esi
408308:	8b d8                	mov    %eax,%ebx
40830a:	8b d6                	mov    %esi,%edx
40830c:	8b c3                	mov    %ebx,%eax
40830e:	e8 b9 ff ff ff       	call   0x4082cc
408313:	85 c0                	test   %eax,%eax
408315:	0f 94 c0             	sete   %al
408318:	5e                   	pop    %esi
408319:	5b                   	pop    %ebx
40831a:	c3                   	ret
40831b:	90                   	nop
40831c:	53                   	push   %ebx
40831d:	56                   	push   %esi
40831e:	57                   	push   %edi
40831f:	8b d9                	mov    %ecx,%ebx
408321:	8b fa                	mov    %edx,%edi
408323:	8b f0                	mov    %eax,%esi
408325:	53                   	push   %ebx
408326:	57                   	push   %edi
408327:	53                   	push   %ebx
408328:	56                   	push   %esi
408329:	6a 01                	push   $0x1
40832b:	68 00 04 00 00       	push   $0x400
408330:	e8 c7 e2 ff ff       	call   0x4065fc
408335:	83 e8 02             	sub    $0x2,%eax
408338:	5f                   	pop    %edi
408339:	5e                   	pop    %esi
40833a:	5b                   	pop    %ebx
40833b:	c3                   	ret
40833c:	53                   	push   %ebx
40833d:	56                   	push   %esi
40833e:	57                   	push   %edi
40833f:	55                   	push   %ebp
408340:	8b ea                	mov    %edx,%ebp
408342:	8b f8                	mov    %eax,%edi
408344:	8b c7                	mov    %edi,%eax
408346:	e8 e5 c4 ff ff       	call   0x404830
40834b:	8b f0                	mov    %eax,%esi
40834d:	bb 01 00 00 00       	mov    $0x1,%ebx
408352:	eb 01                	jmp    0x408355
408354:	43                   	inc    %ebx
408355:	3b f3                	cmp    %ebx,%esi
408357:	7c 07                	jl     0x408360
408359:	80 7c 1f ff 20       	cmpb   $0x20,-0x1(%edi,%ebx,1)
40835e:	76 f4                	jbe    0x408354
408360:	3b f3                	cmp    %ebx,%esi
408362:	7d 0a                	jge    0x40836e
408364:	8b c5                	mov    %ebp,%eax
408366:	e8 05 c2 ff ff       	call   0x404570
40836b:	eb 17                	jmp    0x408384
40836d:	4e                   	dec    %esi
40836e:	80 7c 37 ff 20       	cmpb   $0x20,-0x1(%edi,%esi,1)
408373:	76 f8                	jbe    0x40836d
408375:	55                   	push   %ebp
408376:	8b ce                	mov    %esi,%ecx
408378:	2b cb                	sub    %ebx,%ecx
40837a:	41                   	inc    %ecx
40837b:	8b d3                	mov    %ebx,%edx
40837d:	8b c7                	mov    %edi,%eax
40837f:	e8 0c c7 ff ff       	call   0x404a90
408384:	5d                   	pop    %ebp
408385:	5f                   	pop    %edi
408386:	5e                   	pop    %esi
408387:	5b                   	pop    %ebx
408388:	c3                   	ret
408389:	8d 40 00             	lea    0x0(%eax),%eax
40838c:	53                   	push   %ebx
40838d:	56                   	push   %esi
40838e:	57                   	push   %edi
40838f:	8b f0                	mov    %eax,%esi
408391:	33 db                	xor    %ebx,%ebx
408393:	8b c6                	mov    %esi,%eax
408395:	e8 96 c4 ff ff       	call   0x404830
40839a:	85 c0                	test   %eax,%eax
40839c:	74 4b                	je     0x4083e9
40839e:	8a 06                	mov    (%esi),%al
4083a0:	04 bf                	add    $0xbf,%al
4083a2:	2c 1a                	sub    $0x1a,%al
4083a4:	72 0a                	jb     0x4083b0
4083a6:	2c 04                	sub    $0x4,%al
4083a8:	74 06                	je     0x4083b0
4083aa:	04 fe                	add    $0xfe,%al
4083ac:	2c 1a                	sub    $0x1a,%al
4083ae:	73 39                	jae    0x4083e9
4083b0:	8b c6                	mov    %esi,%eax
4083b2:	e8 79 c4 ff ff       	call   0x404830
4083b7:	83 e8 02             	sub    $0x2,%eax
4083ba:	7c 2b                	jl     0x4083e7
4083bc:	40                   	inc    %eax
4083bd:	bf 02 00 00 00       	mov    $0x2,%edi
4083c2:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
4083c6:	80 c2 d0             	add    $0xd0,%dl
4083c9:	80 ea 0a             	sub    $0xa,%dl
4083cc:	72 15                	jb     0x4083e3
4083ce:	80 c2 f9             	add    $0xf9,%dl
4083d1:	80 ea 1a             	sub    $0x1a,%dl
4083d4:	72 0d                	jb     0x4083e3
4083d6:	80 ea 04             	sub    $0x4,%dl
4083d9:	74 08                	je     0x4083e3
4083db:	80 c2 fe             	add    $0xfe,%dl
4083de:	80 ea 1a             	sub    $0x1a,%dl
4083e1:	73 06                	jae    0x4083e9
4083e3:	47                   	inc    %edi
4083e4:	48                   	dec    %eax
4083e5:	75 db                	jne    0x4083c2
4083e7:	b3 01                	mov    $0x1,%bl
4083e9:	8b c3                	mov    %ebx,%eax
4083eb:	5f                   	pop    %edi
4083ec:	5e                   	pop    %esi
4083ed:	5b                   	pop    %ebx
4083ee:	c3                   	ret
4083ef:	90                   	nop
4083f0:	08 c9                	or     %cl,%cl
4083f2:	75 17                	jne    0x40840b
4083f4:	09 c0                	or     %eax,%eax
4083f6:	79 0e                	jns    0x408406
4083f8:	f7 d8                	neg    %eax
4083fa:	e8 07 00 00 00       	call   0x408406
4083ff:	b0 2d                	mov    $0x2d,%al
408401:	41                   	inc    %ecx
408402:	4e                   	dec    %esi
408403:	88 06                	mov    %al,(%esi)
408405:	c3                   	ret
408406:	b9 0a 00 00 00       	mov    $0xa,%ecx
40840b:	52                   	push   %edx
40840c:	56                   	push   %esi
40840d:	31 d2                	xor    %edx,%edx
40840f:	f7 f1                	div    %ecx
408411:	4e                   	dec    %esi
408412:	80 c2 30             	add    $0x30,%dl
408415:	80 fa 3a             	cmp    $0x3a,%dl
408418:	72 03                	jb     0x40841d
40841a:	80 c2 07             	add    $0x7,%dl
40841d:	88 16                	mov    %dl,(%esi)
40841f:	09 c0                	or     %eax,%eax
408421:	75 ea                	jne    0x40840d
408423:	59                   	pop    %ecx
408424:	5a                   	pop    %edx
408425:	29 f1                	sub    %esi,%ecx
408427:	29 ca                	sub    %ecx,%edx
408429:	76 10                	jbe    0x40843b
40842b:	01 d1                	add    %edx,%ecx
40842d:	b0 30                	mov    $0x30,%al
40842f:	29 d6                	sub    %edx,%esi
408431:	eb 03                	jmp    0x408436
408433:	88 04 32             	mov    %al,(%edx,%esi,1)
408436:	4a                   	dec    %edx
408437:	75 fa                	jne    0x408433
408439:	88 06                	mov    %al,(%esi)
40843b:	c3                   	ret
40843c:	56                   	push   %esi
40843d:	89 e6                	mov    %esp,%esi
40843f:	83 ec 10             	sub    $0x10,%esp
408442:	31 c9                	xor    %ecx,%ecx
408444:	52                   	push   %edx
408445:	31 d2                	xor    %edx,%edx
408447:	e8 a4 ff ff ff       	call   0x4083f0
40844c:	89 f2                	mov    %esi,%edx
40844e:	58                   	pop    %eax