56a199:	72 04                	jb     0x56a19f
56a19b:	3c 39                	cmp    $0x39,%al
56a19d:	76 24                	jbe    0x56a1c3
56a19f:	3c 41                	cmp    $0x41,%al
56a1a1:	72 04                	jb     0x56a1a7
56a1a3:	3c 5a                	cmp    $0x5a,%al
56a1a5:	76 1c                	jbe    0x56a1c3
56a1a7:	3c 61                	cmp    $0x61,%al
56a1a9:	72 04                	jb     0x56a1af
56a1ab:	3c 7a                	cmp    $0x7a,%al
56a1ad:	76 14                	jbe    0x56a1c3
56a1af:	3c 2d                	cmp    $0x2d,%al
56a1b1:	74 10                	je     0x56a1c3
56a1b3:	85 c9                	test   %ecx,%ecx
56a1b5:	0f 84 4c ff ff ff    	je     0x56a107
56a1bb:	3c 2e                	cmp    $0x2e,%al
56a1bd:	0f 85 44 ff ff ff    	jne    0x56a107
56a1c3:	46                   	inc    %esi
56a1c4:	3b f7                	cmp    %edi,%esi
56a1c6:	75 cd                	jne    0x56a195
56a1c8:	5f                   	pop    %edi
56a1c9:	5e                   	pop    %esi
56a1ca:	5d                   	pop    %ebp
56a1cb:	b8 01 00 00 00       	mov    $0x1,%eax
56a1d0:	5b                   	pop    %ebx
56a1d1:	83 c4 08             	add    $0x8,%esp
56a1d4:	c3                   	ret
56a1d5:	cc                   	int3
56a1d6:	cc                   	int3
56a1d7:	cc                   	int3
56a1d8:	cc                   	int3
56a1d9:	cc                   	int3
56a1da:	cc                   	int3
56a1db:	cc                   	int3
56a1dc:	cc                   	int3
56a1dd:	cc                   	int3
56a1de:	cc                   	int3
56a1df:	cc                   	int3
56a1e0:	8b 44 24 08          	mov    0x8(%esp),%eax
56a1e4:	56                   	push   %esi
56a1e5:	33 f6                	xor    %esi,%esi
56a1e7:	85 c0                	test   %eax,%eax
56a1e9:	75 02                	jne    0x56a1ed
56a1eb:	5e                   	pop    %esi
56a1ec:	c3                   	ret
56a1ed:	57                   	push   %edi
56a1ee:	6a 00                	push   $0x0
56a1f0:	50                   	push   %eax
56a1f1:	e8 5a f1 f9 ff       	call   0x509350
56a1f6:	8b f8                	mov    %eax,%edi
56a1f8:	83 c4 08             	add    $0x8,%esp
56a1fb:	85 ff                	test   %edi,%edi
56a1fd:	74 0f                	je     0x56a20e
56a1ff:	57                   	push   %edi
56a200:	e8 4b f8 ff ff       	call   0x569a50
56a205:	8b f0                	mov    %eax,%esi
56a207:	83 c4 04             	add    $0x4,%esp
56a20a:	85 f6                	test   %esi,%esi
56a20c:	75 18                	jne    0x56a226
56a20e:	68 96 00 00 00       	push   $0x96
56a213:	68 84 85 65 00       	push   $0x658584
56a218:	6a 41                	push   $0x41
56a21a:	6a 79                	push   $0x79
56a21c:	6a 22                	push   $0x22
56a21e:	e8 5d ed f6 ff       	call   0x4d8f80
56a223:	83 c4 14             	add    $0x14,%esp
56a226:	57                   	push   %edi
56a227:	e8 f4 f9 f6 ff       	call   0x4d9c20
56a22c:	83 c4 04             	add    $0x4,%esp
56a22f:	8b c6                	mov    %esi,%eax
56a231:	5f                   	pop    %edi
56a232:	5e                   	pop    %esi
56a233:	c3                   	ret
56a234:	cc                   	int3
56a235:	cc                   	int3
56a236:	cc                   	int3
56a237:	cc                   	int3
56a238:	cc                   	int3
56a239:	cc                   	int3
56a23a:	cc                   	int3
56a23b:	cc                   	int3
56a23c:	cc                   	int3
56a23d:	cc                   	int3
56a23e:	cc                   	int3
56a23f:	cc                   	int3
56a240:	8b 44 24 08          	mov    0x8(%esp),%eax
56a244:	56                   	push   %esi
56a245:	33 f6                	xor    %esi,%esi
56a247:	85 c0                	test   %eax,%eax
56a249:	75 02                	jne    0x56a24d
56a24b:	5e                   	pop    %esi
56a24c:	c3                   	ret
56a24d:	57                   	push   %edi
56a24e:	6a 00                	push   $0x0
56a250:	50                   	push   %eax
56a251:	e8 8a f2 f9 ff       	call   0x5094e0
56a256:	8b f8                	mov    %eax,%edi
56a258:	83 c4 08             	add    $0x8,%esp
56a25b:	85 ff                	test   %edi,%edi
56a25d:	74 0f                	je     0x56a26e
56a25f:	57                   	push   %edi
56a260:	e8 eb f7 ff ff       	call   0x569a50
56a265:	8b f0                	mov    %eax,%esi
56a267:	83 c4 04             	add    $0x4,%esp
56a26a:	85 f6                	test   %esi,%esi
56a26c:	75 18                	jne    0x56a286
56a26e:	68 a4 00 00 00       	push   $0xa4
56a273:	68 84 85 65 00       	push   $0x658584
56a278:	6a 41                	push   $0x41
56a27a:	6a 78                	push   $0x78
56a27c:	6a 22                	push   $0x22
56a27e:	e8 fd ec f6 ff       	call   0x4d8f80
56a283:	83 c4 14             	add    $0x14,%esp
56a286:	57                   	push   %edi
56a287:	e8 94 f9 f6 ff       	call   0x4d9c20
56a28c:	83 c4 04             	add    $0x4,%esp
56a28f:	8b c6                	mov    %esi,%eax
56a291:	5f                   	pop    %edi
56a292:	5e                   	pop    %esi
56a293:	c3                   	ret
56a294:	cc                   	int3
56a295:	cc                   	int3
56a296:	cc                   	int3
56a297:	cc                   	int3
56a298:	cc                   	int3
56a299:	cc                   	int3
56a29a:	cc                   	int3
56a29b:	cc                   	int3
56a29c:	cc                   	int3
56a29d:	cc                   	int3
56a29e:	cc                   	int3
56a29f:	cc                   	int3
56a2a0:	b8 10 00 00 00       	mov    $0x10,%eax
56a2a5:	e8 06 75 06 00       	call   0x5d17b0
56a2aa:	53                   	push   %ebx
56a2ab:	8d 44 24 04          	lea    0x4(%esp),%eax
56a2af:	50                   	push   %eax
56a2b0:	8d 44 24 14          	lea    0x14(%esp),%eax
56a2b4:	50                   	push   %eax
56a2b5:	8d 44 24 14          	lea    0x14(%esp),%eax
56a2b9:	50                   	push   %eax
56a2ba:	8d 44 24 14          	lea    0x14(%esp),%eax
56a2be:	50                   	push   %eax
56a2bf:	68 9c 5d 60 00       	push   $0x605d9c
56a2c4:	ff 74 24 30          	push   0x30(%esp)
56a2c8:	e8 03 b9 ee ff       	call   0x455bd0
56a2cd:	83 c4 18             	add    $0x18,%esp
56a2d0:	83 f8 04             	cmp    $0x4,%eax
56a2d3:	75 4b                	jne    0x56a320
56a2d5:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56a2d9:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
56a2df:	77 3f                	ja     0x56a320
56a2e1:	8b 54 24 0c          	mov    0xc(%esp),%edx
56a2e5:	81 fa ff 00 00 00    	cmp    $0xff,%edx
56a2eb:	77 33                	ja     0x56a320
56a2ed:	8b 5c 24 10          	mov    0x10(%esp),%ebx
56a2f1:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
56a2f7:	77 27                	ja     0x56a320
56a2f9:	81 7c 24 04 ff 00 00 	cmpl   $0xff,0x4(%esp)
56a300:	00
56a301:	77 1d                	ja     0x56a320
56a303:	8b 44 24 18          	mov    0x18(%esp),%eax
56a307:	88 08                	mov    %cl,(%eax)
56a309:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56a30d:	88 58 02             	mov    %bl,0x2(%eax)
56a310:	88 50 01             	mov    %dl,0x1(%eax)
56a313:	88 48 03             	mov    %cl,0x3(%eax)
56a316:	b8 01 00 00 00       	mov    $0x1,%eax
56a31b:	5b                   	pop    %ebx
56a31c:	83 c4 10             	add    $0x10,%esp
56a31f:	c3                   	ret
56a320:	33 c0                	xor    %eax,%eax
56a322:	5b                   	pop    %ebx
56a323:	83 c4 10             	add    $0x10,%esp
56a326:	c3                   	ret
56a327:	cc                   	int3
56a328:	cc                   	int3
56a329:	cc                   	int3
56a32a:	cc                   	int3
56a32b:	cc                   	int3
56a32c:	cc                   	int3
56a32d:	cc                   	int3
56a32e:	cc                   	int3
56a32f:	cc                   	int3
56a330:	b8 04 00 00 00       	mov    $0x4,%eax
56a335:	e8 76 74 06 00       	call   0x5d17b0
56a33a:	53                   	push   %ebx
56a33b:	55                   	push   %ebp
56a33c:	56                   	push   %esi
56a33d:	8b 74 24 1c          	mov    0x1c(%esp),%esi
56a341:	57                   	push   %edi
56a342:	8b 46 10             	mov    0x10(%esi),%eax
56a345:	83 f8 10             	cmp    $0x10,%eax
56a348:	0f 84 b6 00 00 00    	je     0x56a404
56a34e:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
56a352:	85 ff                	test   %edi,%edi
56a354:	75 2d                	jne    0x56a383
56a356:	8b 4e 14             	mov    0x14(%esi),%ecx
56a359:	83 f9 ff             	cmp    $0xffffffff,%ecx
56a35c:	75 0f                	jne    0x56a36d
56a35e:	ff 46 18             	incl   0x18(%esi)
56a361:	89 46 14             	mov    %eax,0x14(%esi)
56a364:	8d 47 01             	lea    0x1(%edi),%eax
56a367:	5f                   	pop    %edi
56a368:	5e                   	pop    %esi
56a369:	5d                   	pop    %ebp
56a36a:	5b                   	pop    %ebx
56a36b:	59                   	pop    %ecx
56a36c:	c3                   	ret
56a36d:	3b c8                	cmp    %eax,%ecx
56a36f:	0f 85 8f 00 00 00    	jne    0x56a404
56a375:	ff 46 18             	incl   0x18(%esi)
56a378:	b8 01 00 00 00       	mov    $0x1,%eax
56a37d:	5f                   	pop    %edi
56a37e:	5e                   	pop    %esi
56a37f:	5d                   	pop    %ebp
56a380:	5b                   	pop    %ebx
56a381:	59                   	pop    %ecx
56a382:	c3                   	ret
56a383:	83 ff 04             	cmp    $0x4,%edi
56a386:	7e 2e                	jle    0x56a3b6
56a388:	83 f8 0c             	cmp    $0xc,%eax
56a38b:	7f 77                	jg     0x56a404
56a38d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56a391:	80 3c 39 00          	cmpb   $0x0,(%ecx,%edi,1)
56a395:	75 6d                	jne    0x56a404
56a397:	51                   	push   %ecx
56a398:	03 c6                	add    %esi,%eax
56a39a:	50                   	push   %eax
56a39b:	e8 00 ff ff ff       	call   0x56a2a0
56a3a0:	83 c4 08             	add    $0x8,%esp
56a3a3:	85 c0                	test   %eax,%eax
56a3a5:	74 5d                	je     0x56a404
56a3a7:	83 46 10 04          	addl   $0x4,0x10(%esi)
56a3ab:	b8 01 00 00 00       	mov    $0x1,%eax
56a3b0:	5f                   	pop    %edi
56a3b1:	5e                   	pop    %esi
56a3b2:	5d                   	pop    %ebp
56a3b3:	5b                   	pop    %ebx
56a3b4:	59                   	pop    %ecx
56a3b5:	c3                   	ret
56a3b6:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56a3ba:	03 c6                	add    %esi,%eax
56a3bc:	89 44 24 10          	mov    %eax,0x10(%esp)
56a3c0:	33 db                	xor    %ebx,%ebx
56a3c2:	8a 45 00             	mov    0x0(%ebp),%al
56a3c5:	8d 6d 01             	lea    0x1(%ebp),%ebp
56a3c8:	88 44 24 20          	mov    %al,0x20(%esp)
56a3cc:	4f                   	dec    %edi
56a3cd:	ff 74 24 20          	push   0x20(%esp)
56a3d1:	e8 5a 7e f7 ff       	call   0x4e2230
56a3d6:	83 c4 04             	add    $0x4,%esp
56a3d9:	85 c0                	test   %eax,%eax
56a3db:	78 27                	js     0x56a404
56a3dd:	c1 e3 04             	shl    $0x4,%ebx
56a3e0:	0f be c0             	movsbl %al,%eax
56a3e3:	0b d8                	or     %eax,%ebx
56a3e5:	85 ff                	test   %edi,%edi
56a3e7:	75 d9                	jne    0x56a3c2
56a3e9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56a3ed:	8b c3                	mov    %ebx,%eax
56a3ef:	c1 e8 08             	shr    $0x8,%eax
56a3f2:	88 01                	mov    %al,(%ecx)
56a3f4:	8d 47 01             	lea    0x1(%edi),%eax
56a3f7:	5f                   	pop    %edi
56a3f8:	88 59 01             	mov    %bl,0x1(%ecx)
56a3fb:	83 46 10 02          	addl   $0x2,0x10(%esi)
56a3ff:	5e                   	pop    %esi
56a400:	5d                   	pop    %ebp
56a401:	5b                   	pop    %ebx
56a402:	59                   	pop    %ecx
56a403:	c3                   	ret
56a404:	5f                   	pop    %edi
56a405:	5e                   	pop    %esi
56a406:	5d                   	pop    %ebp
56a407:	33 c0                	xor    %eax,%eax
56a409:	5b                   	pop    %ebx
56a40a:	59                   	pop    %ecx
56a40b:	c3                   	ret
56a40c:	cc                   	int3
56a40d:	cc                   	int3
56a40e:	cc                   	int3
56a40f:	cc                   	int3
56a410:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56a414:	56                   	push   %esi
56a415:	8b f1                	mov    %ecx,%esi
56a417:	57                   	push   %edi
56a418:	8d 56 01             	lea    0x1(%esi),%edx
56a41b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
56a420:	8a 06                	mov    (%esi),%al
56a422:	46                   	inc    %esi
56a423:	84 c0                	test   %al,%al
56a425:	75 f9                	jne    0x56a420
56a427:	8b 7c 24 0c          	mov    0xc(%esp),%edi
56a42b:	2b f2                	sub    %edx,%esi
56a42d:	56                   	push   %esi
56a42e:	51                   	push   %ecx
56a42f:	57                   	push   %edi
56a430:	e8 5b b3 07 00       	call   0x5e5790
56a435:	83 c4 0c             	add    $0xc,%esp
56a438:	85 c0                	test   %eax,%eax
56a43a:	75 15                	jne    0x56a451
56a43c:	8a 04 3e             	mov    (%esi,%edi,1),%al
56a43f:	84 c0                	test   %al,%al
56a441:	74 0c                	je     0x56a44f
56a443:	3c 2e                	cmp    $0x2e,%al
56a445:	74 08                	je     0x56a44f
56a447:	5f                   	pop    %edi
56a448:	b8 01 00 00 00       	mov    $0x1,%eax
56a44d:	5e                   	pop    %esi
56a44e:	c3                   	ret
56a44f:	33 c0                	xor    %eax,%eax
56a451:	5f                   	pop    %edi
56a452:	5e                   	pop    %esi
56a453:	c3                   	ret
56a454:	cc                   	int3
56a455:	cc                   	int3
56a456:	cc                   	int3
56a457:	cc                   	int3
56a458:	cc                   	int3
56a459:	cc                   	int3
56a45a:	cc                   	int3
56a45b:	cc                   	int3
56a45c:	cc                   	int3
56a45d:	cc                   	int3
56a45e:	cc                   	int3
56a45f:	cc                   	int3
56a460:	53                   	push   %ebx
56a461:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
56a465:	85 db                	test   %ebx,%ebx
56a467:	75 1c                	jne    0x56a485
56a469:	68 b0 00 00 00       	push   $0xb0
56a46e:	68 84 85 65 00       	push   $0x658584
56a473:	6a 6d                	push   $0x6d
56a475:	6a 6c                	push   $0x6c
56a477:	6a 22                	push   $0x22
56a479:	e8 02 eb f6 ff       	call   0x4d8f80
56a47e:	83 c4 14             	add    $0x14,%esp
56a481:	33 c0                	xor    %eax,%eax
56a483:	5b                   	pop    %ebx
56a484:	c3                   	ret
56a485:	e8 56 f9 f6 ff       	call   0x4d9de0
56a48a:	89 44 24 0c          	mov    %eax,0xc(%esp)
56a48e:	85 c0                	test   %eax,%eax
56a490:	75 1c                	jne    0x56a4ae
56a492:	68 b5 00 00 00       	push   $0xb5
56a497:	68 84 85 65 00       	push   $0x658584
56a49c:	6a 41                	push   $0x41
56a49e:	6a 6c                	push   $0x6c
56a4a0:	6a 22                	push   $0x22