5a526a:	83 c4 08             	add    $0x8,%esp
5a526d:	85 c0                	test   %eax,%eax
5a526f:	75 0c                	jne    0x5a527d
5a5271:	5e                   	pop    %esi
5a5272:	c3                   	ret
5a5273:	c7 86 ac 05 00 00 01 	movl   $0x1,0x5ac(%esi)
5a527a:	00 00 00
5a527d:	b8 01 00 00 00       	mov    $0x1,%eax
5a5282:	5e                   	pop    %esi
5a5283:	c3                   	ret
5a5284:	cc                   	int3
5a5285:	cc                   	int3
5a5286:	cc                   	int3
5a5287:	cc                   	int3
5a5288:	cc                   	int3
5a5289:	cc                   	int3
5a528a:	cc                   	int3
5a528b:	cc                   	int3
5a528c:	cc                   	int3
5a528d:	cc                   	int3
5a528e:	cc                   	int3
5a528f:	cc                   	int3
5a5290:	8b 54 24 04          	mov    0x4(%esp),%edx
5a5294:	83 7a 1c 00          	cmpl   $0x0,0x1c(%edx)
5a5298:	74 41                	je     0x5a52db
5a529a:	83 ba 8c 00 00 00 00 	cmpl   $0x0,0x8c(%edx)
5a52a1:	74 38                	je     0x5a52db
5a52a3:	8b 82 74 04 00 00    	mov    0x474(%edx),%eax
5a52a9:	8a 80 f0 01 00 00    	mov    0x1f0(%eax),%al
5a52af:	fe c8                	dec    %al
5a52b1:	3c 03                	cmp    $0x3,%al
5a52b3:	77 26                	ja     0x5a52db
5a52b5:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
5a52ba:	75 1f                	jne    0x5a52db
5a52bc:	68 9e 06 00 00       	push   $0x69e
5a52c1:	68 38 80 66 00       	push   $0x668038
5a52c6:	6a 6e                	push   $0x6e
5a52c8:	68 2d 02 00 00       	push   $0x22d
5a52cd:	6a 6d                	push   $0x6d
5a52cf:	52                   	push   %edx
5a52d0:	e8 3b 9e fe ff       	call   0x58f110
5a52d5:	83 c4 18             	add    $0x18,%esp
5a52d8:	33 c0                	xor    %eax,%eax
5a52da:	c3                   	ret
5a52db:	8b 82 74 04 00 00    	mov    0x474(%edx),%eax
5a52e1:	85 c0                	test   %eax,%eax
5a52e3:	74 2d                	je     0x5a5312
5a52e5:	8a 88 f0 01 00 00    	mov    0x1f0(%eax),%cl
5a52eb:	8d 41 ff             	lea    -0x1(%ecx),%eax
5a52ee:	3c 03                	cmp    $0x3,%al
5a52f0:	77 20                	ja     0x5a5312
5a52f2:	0f b6 c9             	movzbl %cl,%ecx
5a52f5:	b8 00 02 00 00       	mov    $0x200,%eax
5a52fa:	49                   	dec    %ecx
5a52fb:	d3 e0                	shl    %cl,%eax
5a52fd:	39 82 0c 05 00 00    	cmp    %eax,0x50c(%edx)
5a5303:	73 0d                	jae    0x5a5312
5a5305:	52                   	push   %edx
5a5306:	e8 b5 de fe ff       	call   0x5931c0
5a530b:	83 c4 04             	add    $0x4,%esp
5a530e:	85 c0                	test   %eax,%eax
5a5310:	74 c6                	je     0x5a52d8
5a5312:	b8 01 00 00 00       	mov    $0x1,%eax
5a5317:	c3                   	ret
5a5318:	cc                   	int3
5a5319:	cc                   	int3
5a531a:	cc                   	int3
5a531b:	cc                   	int3
5a531c:	cc                   	int3
5a531d:	cc                   	int3
5a531e:	cc                   	int3
5a531f:	cc                   	int3
5a5320:	8b 44 24 04          	mov    0x4(%esp),%eax
5a5324:	c7 80 f4 05 00 00 00 	movl   $0x0,0x5f4(%eax)
5a532b:	00 00 00
5a532e:	b8 01 00 00 00       	mov    $0x1,%eax
5a5333:	c3                   	ret
5a5334:	cc                   	int3
5a5335:	cc                   	int3
5a5336:	cc                   	int3
5a5337:	cc                   	int3
5a5338:	cc                   	int3
5a5339:	cc                   	int3
5a533a:	cc                   	int3
5a533b:	cc                   	int3
5a533c:	cc                   	int3
5a533d:	cc                   	int3
5a533e:	cc                   	int3
5a533f:	cc                   	int3
5a5340:	8b 54 24 0c          	mov    0xc(%esp),%edx
5a5344:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
5a534a:	76 03                	jbe    0x5a534f
5a534c:	33 c0                	xor    %eax,%eax
5a534e:	c3                   	ret
5a534f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5a5353:	8b 44 24 08          	mov    0x8(%esp),%eax
5a5357:	89 01                	mov    %eax,(%ecx)
5a5359:	b8 01 00 00 00       	mov    $0x1,%eax
5a535e:	89 51 04             	mov    %edx,0x4(%ecx)
5a5361:	c3                   	ret
5a5362:	cc                   	int3
5a5363:	cc                   	int3
5a5364:	cc                   	int3
5a5365:	cc                   	int3
5a5366:	cc                   	int3
5a5367:	cc                   	int3
5a5368:	cc                   	int3
5a5369:	cc                   	int3
5a536a:	cc                   	int3
5a536b:	cc                   	int3
5a536c:	cc                   	int3
5a536d:	cc                   	int3
5a536e:	cc                   	int3
5a536f:	cc                   	int3
5a5370:	8b 44 24 04          	mov    0x4(%esp),%eax
5a5374:	8b 54 24 08          	mov    0x8(%esp),%edx
5a5378:	8b 48 04             	mov    0x4(%eax),%ecx
5a537b:	3b ca                	cmp    %edx,%ecx
5a537d:	73 03                	jae    0x5a5382
5a537f:	33 c0                	xor    %eax,%eax
5a5381:	c3                   	ret
5a5382:	01 10                	add    %edx,(%eax)
5a5384:	2b ca                	sub    %edx,%ecx
5a5386:	89 48 04             	mov    %ecx,0x4(%eax)
5a5389:	b8 01 00 00 00       	mov    $0x1,%eax
5a538e:	c3                   	ret
5a538f:	cc                   	int3
5a5390:	b8 08 00 00 00       	mov    $0x8,%eax
5a5395:	e8 16 c4 02 00       	call   0x5d17b0
5a539a:	8b 54 24 0c          	mov    0xc(%esp),%edx
5a539e:	53                   	push   %ebx
5a539f:	56                   	push   %esi
5a53a0:	57                   	push   %edi
5a53a1:	8b 7a 04             	mov    0x4(%edx),%edi
5a53a4:	8b 32                	mov    (%edx),%esi
5a53a6:	83 ff 03             	cmp    $0x3,%edi
5a53a9:	72 3e                	jb     0x5a53e9
5a53ab:	0f b6 0e             	movzbl (%esi),%ecx
5a53ae:	8d 5e 03             	lea    0x3(%esi),%ebx
5a53b1:	0f b6 46 01          	movzbl 0x1(%esi),%eax
5a53b5:	c1 e1 08             	shl    $0x8,%ecx
5a53b8:	0b c8                	or     %eax,%ecx
5a53ba:	0f b6 46 02          	movzbl 0x2(%esi),%eax
5a53be:	c1 e1 08             	shl    $0x8,%ecx
5a53c1:	8d 77 fd             	lea    -0x3(%edi),%esi
5a53c4:	0b c8                	or     %eax,%ecx
5a53c6:	3b f1                	cmp    %ecx,%esi
5a53c8:	72 1f                	jb     0x5a53e9
5a53ca:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
5a53cd:	2b f1                	sub    %ecx,%esi
5a53cf:	89 02                	mov    %eax,(%edx)
5a53d1:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5a53d5:	89 72 04             	mov    %esi,0x4(%edx)
5a53d8:	5f                   	pop    %edi
5a53d9:	5e                   	pop    %esi
5a53da:	89 18                	mov    %ebx,(%eax)
5a53dc:	89 48 04             	mov    %ecx,0x4(%eax)
5a53df:	b8 01 00 00 00       	mov    $0x1,%eax
5a53e4:	5b                   	pop    %ebx
5a53e5:	83 c4 08             	add    $0x8,%esp
5a53e8:	c3                   	ret
5a53e9:	5f                   	pop    %edi
5a53ea:	5e                   	pop    %esi
5a53eb:	33 c0                	xor    %eax,%eax
5a53ed:	5b                   	pop    %ebx
5a53ee:	83 c4 08             	add    $0x8,%esp
5a53f1:	c3                   	ret
5a53f2:	cc                   	int3
5a53f3:	cc                   	int3
5a53f4:	cc                   	int3
5a53f5:	cc                   	int3
5a53f6:	cc                   	int3
5a53f7:	cc                   	int3
5a53f8:	cc                   	int3
5a53f9:	cc                   	int3
5a53fa:	cc                   	int3
5a53fb:	cc                   	int3
5a53fc:	cc                   	int3
5a53fd:	cc                   	int3
5a53fe:	cc                   	int3
5a53ff:	cc                   	int3
5a5400:	f7 44 24 0c 00 08 00 	testl  $0x800,0xc(%esp)
5a5407:	00
5a5408:	8b 54 24 04          	mov    0x4(%esp),%edx
5a540c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5a5410:	56                   	push   %esi
5a5411:	57                   	push   %edi
5a5412:	8b 7a 04             	mov    0x4(%edx),%edi
5a5415:	74 07                	je     0x5a541e
5a5417:	be 01 00 00 00       	mov    $0x1,%esi
5a541c:	eb 22                	jmp    0x5a5440
5a541e:	8b 47 64             	mov    0x64(%edi),%eax
5a5421:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5a5425:	75 17                	jne    0x5a543e
5a5427:	8b 07                	mov    (%edi),%eax
5a5429:	3d 04 03 00 00       	cmp    $0x304,%eax
5a542e:	7c 0e                	jl     0x5a543e
5a5430:	3d 00 00 01 00       	cmp    $0x10000,%eax
5a5435:	74 07                	je     0x5a543e
5a5437:	be 01 00 00 00       	mov    $0x1,%esi
5a543c:	eb 02                	jmp    0x5a5440
5a543e:	33 f6                	xor    %esi,%esi
5a5440:	8b 47 64             	mov    0x64(%edi),%eax
5a5443:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5a5447:	74 05                	je     0x5a544e
5a5449:	f6 c1 04             	test   $0x4,%cl
5a544c:	75 47                	jne    0x5a5495
5a544e:	81 3a 00 03 00 00    	cmpl   $0x300,(%edx)
5a5454:	75 05                	jne    0x5a545b
5a5456:	f6 c1 08             	test   $0x8,%cl
5a5459:	74 3a                	je     0x5a5495
5a545b:	85 f6                	test   %esi,%esi
5a545d:	74 0c                	je     0x5a546b
5a545f:	f6 c1 10             	test   $0x10,%cl
5a5462:	75 31                	jne    0x5a5495
5a5464:	8b c1                	mov    %ecx,%eax
5a5466:	83 e0 20             	and    $0x20,%eax
5a5469:	eb 0e                	jmp    0x5a5479
5a546b:	8b c1                	mov    %ecx,%eax
5a546d:	83 e0 20             	and    $0x20,%eax
5a5470:	74 07                	je     0x5a5479
5a5472:	f6 44 24 14 80       	testb  $0x80,0x14(%esp)
5a5477:	74 1c                	je     0x5a5495
5a5479:	83 7a 1c 00          	cmpl   $0x0,0x1c(%edx)
5a547d:	74 08                	je     0x5a5487
5a547f:	85 f6                	test   %esi,%esi
5a5481:	75 04                	jne    0x5a5487
5a5483:	85 c0                	test   %eax,%eax
5a5485:	75 0e                	jne    0x5a5495
5a5487:	83 ba 8c 00 00 00 00 	cmpl   $0x0,0x8c(%edx)
5a548e:	74 0a                	je     0x5a549a
5a5490:	f6 c1 40             	test   $0x40,%cl
5a5493:	74 05                	je     0x5a549a
5a5495:	5f                   	pop    %edi
5a5496:	33 c0                	xor    %eax,%eax
5a5498:	5e                   	pop    %esi
5a5499:	c3                   	ret
5a549a:	5f                   	pop    %edi
5a549b:	b8 01 00 00 00       	mov    $0x1,%eax
5a54a0:	5e                   	pop    %esi
5a54a1:	c3                   	ret
5a54a2:	cc                   	int3
5a54a3:	cc                   	int3
5a54a4:	cc                   	int3
5a54a5:	cc                   	int3
5a54a6:	cc                   	int3
5a54a7:	cc                   	int3
5a54a8:	cc                   	int3
5a54a9:	cc                   	int3
5a54aa:	cc                   	int3
5a54ab:	cc                   	int3
5a54ac:	cc                   	int3
5a54ad:	cc                   	int3
5a54ae:	cc                   	int3
5a54af:	cc                   	int3
5a54b0:	8b 44 24 08          	mov    0x8(%esp),%eax
5a54b4:	53                   	push   %ebx
5a54b5:	8b 5c 24 10          	mov    0x10(%esp),%ebx
5a54b9:	56                   	push   %esi
5a54ba:	85 c3                	test   %eax,%ebx
5a54bc:	74 3c                	je     0x5a54fa
5a54be:	8b 74 24 0c          	mov    0xc(%esp),%esi
5a54c2:	53                   	push   %ebx
5a54c3:	50                   	push   %eax
5a54c4:	56                   	push   %esi
5a54c5:	e8 36 ff ff ff       	call   0x5a5400
5a54ca:	83 c4 0c             	add    $0xc,%esp
5a54cd:	85 c0                	test   %eax,%eax
5a54cf:	74 29                	je     0x5a54fa
5a54d1:	f6 44 24 10 20       	testb  $0x20,0x10(%esp)
5a54d6:	74 1a                	je     0x5a54f2
5a54d8:	84 db                	test   %bl,%bl
5a54da:	79 16                	jns    0x5a54f2
5a54dc:	8b 46 04             	mov    0x4(%esi),%eax
5a54df:	8b 40 64             	mov    0x64(%eax),%eax
5a54e2:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5a54e6:	75 12                	jne    0x5a54fa
5a54e8:	81 7c 24 18 04 03 00 	cmpl   $0x304,0x18(%esp)
5a54ef:	00
5a54f0:	7c 08                	jl     0x5a54fa
5a54f2:	5e                   	pop    %esi
5a54f3:	b8 01 00 00 00       	mov    $0x1,%eax
5a54f8:	5b                   	pop    %ebx
5a54f9:	c3                   	ret
5a54fa:	5e                   	pop    %esi
5a54fb:	33 c0                	xor    %eax,%eax
5a54fd:	5b                   	pop    %ebx
5a54fe:	c3                   	ret
5a54ff:	cc                   	int3
5a5500:	b8 20 00 00 00       	mov    $0x20,%eax
5a5505:	e8 a6 c2 02 00       	call   0x5d17b0
5a550a:	8b 44 24 28          	mov    0x28(%esp),%eax
5a550e:	53                   	push   %ebx
5a550f:	8b 5c 24 28          	mov    0x28(%esp),%ebx
5a5513:	55                   	push   %ebp
5a5514:	8b 08                	mov    (%eax),%ecx
5a5516:	8b 68 04             	mov    0x4(%eax),%ebp
5a5519:	8b 44 24 38          	mov    0x38(%esp),%eax
5a551d:	56                   	push   %esi
5a551e:	8b b3 04 04 00 00    	mov    0x404(%ebx),%esi
5a5524:	57                   	push   %edi
5a5525:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
5a5529:	81 c6 f0 00 00 00    	add    $0xf0,%esi
5a552f:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5a5535:	8b c7                	mov    %edi,%eax
5a5537:	25 80 00 00 00       	and    $0x80,%eax
5a553c:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5a5540:	89 74 24 1c          	mov    %esi,0x1c(%esp)
5a5544:	89 44 24 14          	mov    %eax,0x14(%esp)
5a5548:	74 14                	je     0x5a555e
5a554a:	8b 83 04 04 00 00    	mov    0x404(%ebx),%eax
5a5550:	05 f0 00 00 00       	add    $0xf0,%eax
5a5555:	50                   	push   %eax
5a5556:	e8 75 99 fe ff       	call   0x58eed0
5a555b:	83 c4 04             	add    $0x4,%esp
5a555e:	85 f6                	test   %esi,%esi
5a5560:	74 05                	je     0x5a5567
5a5562:	8b 46 04             	mov    0x4(%esi),%eax
5a5565:	eb 02                	jmp    0x5a5569
5a5567:	33 c0                	xor    %eax,%eax
5a5569:	83 c0 1a             	add    $0x1a,%eax
5a556c:	89 44 24 24          	mov    %eax,0x24(%esp)
5a5570:	68 3d 02 00 00       	push   $0x23d
5a5575:	68 38 80 66 00       	push   $0x668038
5a557a:	8d 04 40             	lea    (%eax,%eax,2),%eax
5a557d:	c1 e0 03             	shl    $0x3,%eax
5a5580:	50                   	push   %eax
5a5581:	e8 ba b4 f3 ff       	call   0x4e0a40
5a5586:	83 c4 0c             	add    $0xc,%esp
5a5589:	89 44 24 38          	mov    %eax,0x38(%esp)
5a558d:	85 c0                	test   %eax,%eax
5a558f:	75 26                	jne    0x5a55b7
5a5591:	68 40 02 00 00       	push   $0x240
5a5596:	68 38 80 66 00       	push   $0x668038
5a559b:	6a 41                	push   $0x41
5a559d:	68 b3 01 00 00       	push   $0x1b3
5a55a2:	6a 50                	push   $0x50
5a55a4:	53                   	push   %ebx
5a55a5:	e8 66 9b fe ff       	call   0x58f110
5a55aa:	83 c4 18             	add    $0x18,%esp
5a55ad:	33 c0                	xor    %eax,%eax
5a55af:	5f                   	pop    %edi
5a55b0:	5e                   	pop    %esi
5a55b1:	5d                   	pop    %ebp
5a55b2:	5b                   	pop    %ebx
5a55b3:	83 c4 20             	add    $0x20,%esp
5a55b6:	c3                   	ret
5a55b7:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
5a55be:	00
5a55bf:	85 ed                	test   %ebp,%ebp