5a02cc:	57                   	push   %edi
5a02cd:	03 d6                	add    %esi,%edx
5a02cf:	c1 fa 10             	sar    $0x10,%edx
5a02d2:	8b fa                	mov    %edx,%edi
5a02d4:	c1 ef 1f             	shr    $0x1f,%edi
5a02d7:	03 fa                	add    %edx,%edi
5a02d9:	8b 54 24 0c          	mov    0xc(%esp),%edx
5a02dd:	69 c7 80 51 01 00    	imul   $0x15180,%edi,%eax
5a02e3:	03 7c 24 10          	add    0x10(%esp),%edi
5a02e7:	8b 4a 08             	mov    0x8(%edx),%ecx
5a02ea:	c1 e1 04             	shl    $0x4,%ecx
5a02ed:	2b 4a 08             	sub    0x8(%edx),%ecx
5a02f0:	2b f0                	sub    %eax,%esi
5a02f2:	8b 42 04             	mov    0x4(%edx),%eax
5a02f5:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5a02f8:	8b c8                	mov    %eax,%ecx
5a02fa:	c1 e1 04             	shl    $0x4,%ecx
5a02fd:	2b c8                	sub    %eax,%ecx
5a02ff:	8b 02                	mov    (%edx),%eax
5a0301:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5a0304:	03 f0                	add    %eax,%esi
5a0306:	81 fe 80 51 01 00    	cmp    $0x15180,%esi
5a030c:	7c 09                	jl     0x5a0317
5a030e:	47                   	inc    %edi
5a030f:	81 ee 80 51 01 00    	sub    $0x15180,%esi
5a0315:	eb 0b                	jmp    0x5a0322
5a0317:	85 f6                	test   %esi,%esi
5a0319:	79 07                	jns    0x5a0322
5a031b:	4f                   	dec    %edi
5a031c:	81 c6 80 51 01 00    	add    $0x15180,%esi
5a0322:	ff 72 0c             	push   0xc(%edx)
5a0325:	8b 42 10             	mov    0x10(%edx),%eax
5a0328:	40                   	inc    %eax
5a0329:	50                   	push   %eax
5a032a:	8b 42 14             	mov    0x14(%edx),%eax
5a032d:	05 6c 07 00 00       	add    $0x76c,%eax
5a0332:	50                   	push   %eax
5a0333:	e8 f8 fe ff ff       	call   0x5a0230
5a0338:	8b c8                	mov    %eax,%ecx
5a033a:	83 c4 0c             	add    $0xc,%esp
5a033d:	03 cf                	add    %edi,%ecx
5a033f:	79 05                	jns    0x5a0346
5a0341:	5f                   	pop    %edi
5a0342:	33 c0                	xor    %eax,%eax
5a0344:	5e                   	pop    %esi
5a0345:	c3                   	ret
5a0346:	8b 44 24 18          	mov    0x18(%esp),%eax
5a034a:	5f                   	pop    %edi
5a034b:	89 08                	mov    %ecx,(%eax)
5a034d:	8b 44 24 18          	mov    0x18(%esp),%eax
5a0351:	89 30                	mov    %esi,(%eax)
5a0353:	b8 01 00 00 00       	mov    $0x1,%eax
5a0358:	5e                   	pop    %esi
5a0359:	c3                   	ret
5a035a:	cc                   	int3
5a035b:	cc                   	int3
5a035c:	cc                   	int3
5a035d:	cc                   	int3
5a035e:	cc                   	int3
5a035f:	cc                   	int3
5a0360:	53                   	push   %ebx
5a0361:	55                   	push   %ebp
5a0362:	56                   	push   %esi
5a0363:	8b 74 24 10          	mov    0x10(%esp),%esi
5a0367:	b8 bd 06 6b 39       	mov    $0x396b06bd,%eax
5a036c:	81 c6 d9 0b 01 00    	add    $0x10bd9,%esi
5a0372:	57                   	push   %edi
5a0373:	8d 0c b5 00 00 00 00 	lea    0x0(,%esi,4),%ecx
5a037a:	f7 e9                	imul   %ecx
5a037c:	c1 fa 0f             	sar    $0xf,%edx
5a037f:	8b ea                	mov    %edx,%ebp
5a0381:	c1 ed 1f             	shr    $0x1f,%ebp
5a0384:	03 ea                	add    %edx,%ebp
5a0386:	69 c5 b1 3a 02 00    	imul   $0x23ab1,%ebp,%eax
5a038c:	83 c0 03             	add    $0x3,%eax
5a038f:	99                   	cltd
5a0390:	83 e2 03             	and    $0x3,%edx
5a0393:	03 c2                	add    %edx,%eax
5a0395:	c1 f8 02             	sar    $0x2,%eax
5a0398:	f7 d8                	neg    %eax
5a039a:	03 f0                	add    %eax,%esi
5a039c:	8d 46 01             	lea    0x1(%esi),%eax
5a039f:	69 c8 a0 0f 00 00    	imul   $0xfa0,%eax,%ecx
5a03a5:	b8 dd e2 bb b7       	mov    $0xb7bbe2dd,%eax
5a03aa:	f7 e9                	imul   %ecx
5a03ac:	03 d1                	add    %ecx,%edx
5a03ae:	b9 1f 00 00 00       	mov    $0x1f,%ecx
5a03b3:	c1 fa 14             	sar    $0x14,%edx
5a03b6:	8b da                	mov    %edx,%ebx
5a03b8:	c1 eb 1f             	shr    $0x1f,%ebx
5a03bb:	03 da                	add    %edx,%ebx
5a03bd:	69 c3 b5 05 00 00    	imul   $0x5b5,%ebx,%eax
5a03c3:	99                   	cltd
5a03c4:	83 e2 03             	and    $0x3,%edx
5a03c7:	03 c2                	add    %edx,%eax
5a03c9:	c1 f8 02             	sar    $0x2,%eax
5a03cc:	2b c8                	sub    %eax,%ecx
5a03ce:	b8 19 3d c8 1a       	mov    $0x1ac83d19,%eax
5a03d3:	03 f1                	add    %ecx,%esi
5a03d5:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
5a03d8:	c1 e1 04             	shl    $0x4,%ecx
5a03db:	f7 e9                	imul   %ecx
5a03dd:	b8 67 66 66 66       	mov    $0x66666667,%eax
5a03e2:	c1 fa 08             	sar    $0x8,%edx
5a03e5:	8b fa                	mov    %edx,%edi
5a03e7:	c1 ef 1f             	shr    $0x1f,%edi
5a03ea:	03 fa                	add    %edx,%edi
5a03ec:	69 cf 8f 09 00 00    	imul   $0x98f,%edi,%ecx
5a03f2:	f7 e9                	imul   %ecx
5a03f4:	c1 fa 05             	sar    $0x5,%edx
5a03f7:	8b c2                	mov    %edx,%eax
5a03f9:	c1 e8 1f             	shr    $0x1f,%eax
5a03fc:	03 c2                	add    %edx,%eax
5a03fe:	2b f0                	sub    %eax,%esi
5a0400:	8b 44 24 20          	mov    0x20(%esp),%eax
5a0404:	89 30                	mov    %esi,(%eax)
5a0406:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
5a040b:	f7 ef                	imul   %edi
5a040d:	d1 fa                	sar    $1,%edx
5a040f:	8b f2                	mov    %edx,%esi
5a0411:	c1 ee 1f             	shr    $0x1f,%esi
5a0414:	03 f2                	add    %edx,%esi
5a0416:	8d 04 76             	lea    (%esi,%esi,2),%eax
5a0419:	c1 e0 02             	shl    $0x2,%eax
5a041c:	2b f8                	sub    %eax,%edi
5a041e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5a0422:	83 c7 02             	add    $0x2,%edi
5a0425:	89 38                	mov    %edi,(%eax)
5a0427:	8d 45 cf             	lea    -0x31(%ebp),%eax
5a042a:	6b c8 64             	imul   $0x64,%eax,%ecx
5a042d:	8b 44 24 18          	mov    0x18(%esp),%eax
5a0431:	5f                   	pop    %edi
5a0432:	03 cb                	add    %ebx,%ecx
5a0434:	03 ce                	add    %esi,%ecx
5a0436:	5e                   	pop    %esi
5a0437:	5d                   	pop    %ebp
5a0438:	89 08                	mov    %ecx,(%eax)
5a043a:	5b                   	pop    %ebx
5a043b:	c3                   	ret
5a043c:	cc                   	int3
5a043d:	cc                   	int3
5a043e:	cc                   	int3
5a043f:	cc                   	int3
5a0440:	b8 28 00 00 00       	mov    $0x28,%eax
5a0445:	e8 a6 10 04 00       	call   0x5e14f0
5a044a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5a044f:	33 c4                	xor    %esp,%eax
5a0451:	89 44 24 24          	mov    %eax,0x24(%esp)
5a0455:	53                   	push   %ebx
5a0456:	55                   	push   %ebp
5a0457:	56                   	push   %esi
5a0458:	57                   	push   %edi
5a0459:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
5a045d:	33 ed                	xor    %ebp,%ebp
5a045f:	85 ff                	test   %edi,%edi
5a0461:	75 17                	jne    0x5a047a
5a0463:	6a 17                	push   $0x17
5a0465:	8d 6f 01             	lea    0x1(%edi),%ebp
5a0468:	e8 93 16 f1 ff       	call   0x4b1b00
5a046d:	8b f8                	mov    %eax,%edi
5a046f:	83 c4 04             	add    $0x4,%esp
5a0472:	85 ff                	test   %edi,%edi
5a0474:	0f 84 98 00 00 00    	je     0x5a0512
5a047a:	8d 44 24 10          	lea    0x10(%esp),%eax
5a047e:	50                   	push   %eax
5a047f:	8d 44 24 44          	lea    0x44(%esp),%eax
5a0483:	50                   	push   %eax
5a0484:	e8 97 fc ff ff       	call   0x5a0120
5a0489:	8b d8                	mov    %eax,%ebx
5a048b:	83 c4 08             	add    $0x8,%esp
5a048e:	85 db                	test   %ebx,%ebx
5a0490:	74 6f                	je     0x5a0501
5a0492:	8b 4c 24 48          	mov    0x48(%esp),%ecx
5a0496:	8b 44 24 4c          	mov    0x4c(%esp),%eax
5a049a:	85 c9                	test   %ecx,%ecx
5a049c:	75 04                	jne    0x5a04a2
5a049e:	85 c0                	test   %eax,%eax
5a04a0:	74 0f                	je     0x5a04b1
5a04a2:	50                   	push   %eax
5a04a3:	51                   	push   %ecx
5a04a4:	53                   	push   %ebx
5a04a5:	e8 a6 fc ff ff       	call   0x5a0150
5a04aa:	83 c4 0c             	add    $0xc,%esp
5a04ad:	85 c0                	test   %eax,%eax
5a04af:	74 50                	je     0x5a0501
5a04b1:	8b 43 14             	mov    0x14(%ebx),%eax
5a04b4:	83 f8 32             	cmp    $0x32,%eax
5a04b7:	7c 48                	jl     0x5a0501
5a04b9:	3d 96 00 00 00       	cmp    $0x96,%eax
5a04be:	7d 41                	jge    0x5a0501
5a04c0:	8b 77 08             	mov    0x8(%edi),%esi
5a04c3:	85 f6                	test   %esi,%esi
5a04c5:	74 05                	je     0x5a04cc
5a04c7:	83 3f 14             	cmpl   $0x14,(%edi)
5a04ca:	73 6e                	jae    0x5a053a
5a04cc:	68 08 01 00 00       	push   $0x108
5a04d1:	68 60 ac 6c 00       	push   $0x6cac60
5a04d6:	6a 14                	push   $0x14
5a04d8:	e8 d3 fc ef ff       	call   0x4a01b0
5a04dd:	8b f0                	mov    %eax,%esi
5a04df:	83 c4 0c             	add    $0xc,%esp
5a04e2:	85 f6                	test   %esi,%esi
5a04e4:	75 41                	jne    0x5a0527
5a04e6:	68 0a 01 00 00       	push   $0x10a
5a04eb:	68 60 ac 6c 00       	push   $0x6cac60
5a04f0:	6a 41                	push   $0x41
5a04f2:	68 da 00 00 00       	push   $0xda
5a04f7:	6a 0d                	push   $0xd
5a04f9:	e8 a2 0f f0 ff       	call   0x4a14a0
5a04fe:	83 c4 14             	add    $0x14,%esp
5a0501:	85 ed                	test   %ebp,%ebp
5a0503:	74 0d                	je     0x5a0512
5a0505:	85 ff                	test   %edi,%edi
5a0507:	74 09                	je     0x5a0512
5a0509:	57                   	push   %edi
5a050a:	e8 71 14 f1 ff       	call   0x4b1980
5a050f:	83 c4 04             	add    $0x4,%esp
5a0512:	5f                   	pop    %edi
5a0513:	5e                   	pop    %esi
5a0514:	5d                   	pop    %ebp
5a0515:	33 c0                	xor    %eax,%eax
5a0517:	5b                   	pop    %ebx
5a0518:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5a051c:	33 cc                	xor    %esp,%ecx
5a051e:	e8 b7 0f 04 00       	call   0x5e14da
5a0523:	83 c4 28             	add    $0x28,%esp
5a0526:	c3                   	ret
5a0527:	8b 47 08             	mov    0x8(%edi),%eax
5a052a:	85 c0                	test   %eax,%eax
5a052c:	74 09                	je     0x5a0537
5a052e:	50                   	push   %eax
5a052f:	e8 fc fb ef ff       	call   0x4a0130
5a0534:	83 c4 04             	add    $0x4,%esp
5a0537:	89 77 08             	mov    %esi,0x8(%edi)
5a053a:	ff 33                	push   (%ebx)
5a053c:	8b 43 10             	mov    0x10(%ebx),%eax
5a053f:	b9 64 00 00 00       	mov    $0x64,%ecx
5a0544:	ff 73 04             	push   0x4(%ebx)
5a0547:	40                   	inc    %eax
5a0548:	ff 73 08             	push   0x8(%ebx)
5a054b:	ff 73 0c             	push   0xc(%ebx)
5a054e:	50                   	push   %eax
5a054f:	8b 43 14             	mov    0x14(%ebx),%eax
5a0552:	99                   	cltd
5a0553:	f7 f9                	idiv   %ecx
5a0555:	52                   	push   %edx
5a0556:	68 78 ac 6c 00       	push   $0x6cac78
5a055b:	6a 14                	push   $0x14
5a055d:	56                   	push   %esi
5a055e:	e8 8d e9 f0 ff       	call   0x4aeef0
5a0563:	83 c4 24             	add    $0x24,%esp
5a0566:	8d 4e 01             	lea    0x1(%esi),%ecx
5a0569:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5a0570:	8a 06                	mov    (%esi),%al
5a0572:	46                   	inc    %esi
5a0573:	84 c0                	test   %al,%al
5a0575:	75 f9                	jne    0x5a0570
5a0577:	2b f1                	sub    %ecx,%esi
5a0579:	c7 47 04 17 00 00 00 	movl   $0x17,0x4(%edi)
5a0580:	8b 4c 24 34          	mov    0x34(%esp),%ecx
5a0584:	8b c7                	mov    %edi,%eax
5a0586:	89 37                	mov    %esi,(%edi)
5a0588:	5f                   	pop    %edi
5a0589:	5e                   	pop    %esi
5a058a:	5d                   	pop    %ebp
5a058b:	5b                   	pop    %ebx
5a058c:	33 cc                	xor    %esp,%ecx
5a058e:	e8 47 0f 04 00       	call   0x5e14da
5a0593:	83 c4 28             	add    $0x28,%esp
5a0596:	c3                   	ret
5a0597:	cc                   	int3
5a0598:	cc                   	int3
5a0599:	cc                   	int3
5a059a:	cc                   	int3
5a059b:	cc                   	int3
5a059c:	cc                   	int3
5a059d:	cc                   	int3
5a059e:	cc                   	int3
5a059f:	cc                   	int3
5a05a0:	ff 74 24 04          	push   0x4(%esp)
5a05a4:	6a 00                	push   $0x0
5a05a6:	e8 05 00 00 00       	call   0x5a05b0
5a05ab:	83 c4 08             	add    $0x8,%esp
5a05ae:	c3                   	ret
5a05af:	cc                   	int3
5a05b0:	b8 08 00 00 00       	mov    $0x8,%eax
5a05b5:	e8 36 0f 04 00       	call   0x5e14f0
5a05ba:	57                   	push   %edi
5a05bb:	8b 7c 24 14          	mov    0x14(%esp),%edi
5a05bf:	83 7f 04 17          	cmpl   $0x17,0x4(%edi)
5a05c3:	74 07                	je     0x5a05cc
5a05c5:	33 c0                	xor    %eax,%eax
5a05c7:	5f                   	pop    %edi
5a05c8:	83 c4 08             	add    $0x8,%esp
5a05cb:	c3                   	ret
5a05cc:	8b 0f                	mov    (%edi),%ecx
5a05ce:	8b 7f 08             	mov    0x8(%edi),%edi
5a05d1:	53                   	push   %ebx
5a05d2:	55                   	push   %ebp
5a05d3:	56                   	push   %esi
5a05d4:	33 f6                	xor    %esi,%esi
5a05d6:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5a05da:	83 f9 0b             	cmp    $0xb,%ecx
5a05dd:	0f 8c cb 01 00 00    	jl     0x5a07ae
5a05e3:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
5a05e7:	33 d2                	xor    %edx,%edx
5a05e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5a05f0:	83 fa 05             	cmp    $0x5,%edx
5a05f3:	75 1b                	jne    0x5a0610
5a05f5:	8a 04 3e             	mov    (%esi,%edi,1),%al
5a05f8:	3c 5a                	cmp    $0x5a,%al
5a05fa:	0f 84 bb 00 00 00    	je     0x5a06bb
5a0600:	3c 2b                	cmp    $0x2b,%al
5a0602:	0f 84 b3 00 00 00    	je     0x5a06bb
5a0608:	3c 2d                	cmp    $0x2d,%al
5a060a:	0f 84 ab 00 00 00    	je     0x5a06bb
5a0610:	8a 04 3e             	mov    (%esi,%edi,1),%al
5a0613:	3c 30                	cmp    $0x30,%al
5a0615:	0f 8c 93 01 00 00    	jl     0x5a07ae
5a061b:	3c 39                	cmp    $0x39,%al
5a061d:	0f 8f 8b 01 00 00    	jg     0x5a07ae
5a0623:	0f be c0             	movsbl %al,%eax
5a0626:	46                   	inc    %esi
5a0627:	83 e8 30             	sub    $0x30,%eax
5a062a:	3b f1                	cmp    %ecx,%esi
5a062c:	0f 8f 7c 01 00 00    	jg     0x5a07ae
5a0632:	8a 1c 3e             	mov    (%esi,%edi,1),%bl
5a0635:	80 fb 30             	cmp    $0x30,%bl
5a0638:	0f 8c 70 01 00 00    	jl     0x5a07ae
5a063e:	80 fb 39             	cmp    $0x39,%bl
5a0641:	0f 8f 67 01 00 00    	jg     0x5a07ae
5a0647:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5a064a:	46                   	inc    %esi
5a064b:	0f be c3             	movsbl %bl,%eax
5a064e:	8d 04 48             	lea    (%eax,%ecx,2),%eax
5a0651:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5a0655:	83 c0 d0             	add    $0xffffffd0,%eax
5a0658:	3b f1                	cmp    %ecx,%esi
5a065a:	0f 8f 4e 01 00 00    	jg     0x5a07ae
5a0660:	3b 04 95 20 ac 6c 00 	cmp    0x6cac20(,%edx,4),%eax
5a0667:	0f 8c 41 01 00 00    	jl     0x5a07ae
5a066d:	3b 04 95 40 ac 6c 00 	cmp    0x6cac40(,%edx,4),%eax
5a0674:	0f 8f 34 01 00 00    	jg     0x5a07ae
5a067a:	85 ed                	test   %ebp,%ebp
5a067c:	74 31                	je     0x5a06af
5a067e:	83 fa 05             	cmp    $0x5,%edx
5a0681:	77 2c                	ja     0x5a06af
5a0683:	ff 24 95 b8 07 5a 00 	jmp    *0x5a07b8(,%edx,4)
5a068a:	83 f8 32             	cmp    $0x32,%eax
5a068d:	7d 03                	jge    0x5a0692