52017a:	74 1d                	je     0x520199
52017c:	8d 0c 17             	lea    (%edi,%edx,1),%ecx
52017f:	2b ea                	sub    %edx,%ebp
520181:	8b d6                	mov    %esi,%edx
520183:	2b d7                	sub    %edi,%edx
520185:	8a 04 29             	mov    (%ecx,%ebp,1),%al
520188:	8d 49 01             	lea    0x1(%ecx),%ecx
52018b:	30 41 ff             	xor    %al,-0x1(%ecx)
52018e:	83 ea 01             	sub    $0x1,%edx
520191:	75 f2                	jne    0x520185
520193:	8b 6c 24 20          	mov    0x20(%esp),%ebp
520197:	eb 02                	jmp    0x52019b
520199:	8b ea                	mov    %edx,%ebp
52019b:	ff 74 24 68          	push   0x68(%esp)
52019f:	8b 7c 24 14          	mov    0x14(%esp),%edi
5201a3:	57                   	push   %edi
5201a4:	e8 57 aa ff ff       	call   0x51ac00
5201a9:	83 c4 08             	add    $0x8,%esp
5201ac:	85 c0                	test   %eax,%eax
5201ae:	0f 84 03 01 00 00    	je     0x5202b7
5201b4:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
5201b8:	57                   	push   %edi
5201b9:	ff 74 24 18          	push   0x18(%esp)
5201bd:	ff 74 24 18          	push   0x18(%esp)
5201c1:	e8 0a ac ff ff       	call   0x51add0
5201c6:	83 c4 0c             	add    $0xc,%esp
5201c9:	85 c0                	test   %eax,%eax
5201cb:	0f 84 e6 00 00 00    	je     0x5202b7
5201d1:	56                   	push   %esi
5201d2:	ff 74 24 70          	push   0x70(%esp)
5201d6:	ff 74 24 18          	push   0x18(%esp)
5201da:	e8 f1 ab ff ff       	call   0x51add0
5201df:	83 c4 0c             	add    $0xc,%esp
5201e2:	85 c0                	test   %eax,%eax
5201e4:	0f 84 cd 00 00 00    	je     0x5202b7
5201ea:	57                   	push   %edi
5201eb:	ff 74 24 44          	push   0x44(%esp)
5201ef:	8b 7c 24 18          	mov    0x18(%esp),%edi
5201f3:	57                   	push   %edi
5201f4:	e8 d7 ab ff ff       	call   0x51add0
5201f9:	83 c4 0c             	add    $0xc,%esp
5201fc:	85 c0                	test   %eax,%eax
5201fe:	0f 84 b3 00 00 00    	je     0x5202b7
520204:	6a 00                	push   $0x0
520206:	ff 74 24 28          	push   0x28(%esp)
52020a:	57                   	push   %edi
52020b:	e8 60 a8 ff ff       	call   0x51aa70
520210:	83 c4 0c             	add    $0xc,%esp
520213:	85 c0                	test   %eax,%eax
520215:	0f 84 9c 00 00 00    	je     0x5202b7
52021b:	8b 44 24 30          	mov    0x30(%esp),%eax
52021f:	89 44 24 50          	mov    %eax,0x50(%esp)
520223:	8b 44 24 34          	mov    0x34(%esp),%eax
520227:	89 44 24 54          	mov    %eax,0x54(%esp)
52022b:	e8 60 b6 fc ff       	call   0x4eb890
520230:	89 44 24 58          	mov    %eax,0x58(%esp)
520234:	e8 57 b6 fc ff       	call   0x4eb890
520239:	8b 4c 24 58          	mov    0x58(%esp),%ecx
52023d:	89 44 24 5c          	mov    %eax,0x5c(%esp)
520241:	85 c9                	test   %ecx,%ecx
520243:	74 64                	je     0x5202a9
520245:	85 c0                	test   %eax,%eax
520247:	74 60                	je     0x5202a9
520249:	ff 74 24 38          	push   0x38(%esp)
52024d:	ff 74 24 28          	push   0x28(%esp)
520251:	51                   	push   %ecx
520252:	e8 c9 b6 fe ff       	call   0x50b920
520257:	83 c4 0c             	add    $0xc,%esp
52025a:	85 c0                	test   %eax,%eax
52025c:	74 44                	je     0x5202a2
52025e:	56                   	push   %esi
52025f:	55                   	push   %ebp
520260:	ff 74 24 64          	push   0x64(%esp)
520264:	e8 b7 b6 fe ff       	call   0x50b920
520269:	83 c4 0c             	add    $0xc,%esp
52026c:	85 c0                	test   %eax,%eax
52026e:	74 32                	je     0x5202a2
520270:	68 50 10 64 00       	push   $0x641050
520275:	8d 44 24 78          	lea    0x78(%esp),%eax
520279:	50                   	push   %eax
52027a:	8d 44 24 58          	lea    0x58(%esp),%eax
52027e:	50                   	push   %eax
52027f:	e8 6c e4 fc ff       	call   0x4ee6f0
520284:	83 c4 0c             	add    $0xc,%esp
520287:	85 c0                	test   %eax,%eax
520289:	79 07                	jns    0x520292
52028b:	68 f3 00 00 00       	push   $0xf3
520290:	eb 69                	jmp    0x5202fb
520292:	8b 4c 24 78          	mov    0x78(%esp),%ecx
520296:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%esp)
52029d:	00
52029e:	89 01                	mov    %eax,(%ecx)
5202a0:	eb 6c                	jmp    0x52030e
5202a2:	68 ec 00 00 00       	push   $0xec
5202a7:	eb 52                	jmp    0x5202fb
5202a9:	68 e7 00 00 00       	push   $0xe7
5202ae:	68 8c 10 64 00       	push   $0x64108c
5202b3:	6a 41                	push   $0x41
5202b5:	eb 4b                	jmp    0x520302
5202b7:	68 dd 00 00 00       	push   $0xdd
5202bc:	68 8c 10 64 00       	push   $0x64108c
5202c1:	6a 06                	push   $0x6
5202c3:	eb 3d                	jmp    0x520302
5202c5:	68 c4 00 00 00       	push   $0xc4
5202ca:	eb 2f                	jmp    0x5202fb
5202cc:	68 be 00 00 00       	push   $0xbe
5202d1:	68 8c 10 64 00       	push   $0x64108c
5202d6:	6a 10                	push   $0x10
5202d8:	eb 28                	jmp    0x520302
5202da:	68 af 00 00 00       	push   $0xaf
5202df:	68 8c 10 64 00       	push   $0x64108c
5202e4:	6a 41                	push   $0x41
5202e6:	eb 1a                	jmp    0x520302
5202e8:	68 9b 00 00 00       	push   $0x9b
5202ed:	68 8c 10 64 00       	push   $0x64108c
5202f2:	6a 41                	push   $0x41
5202f4:	eb 0c                	jmp    0x520302
5202f6:	68 8d 00 00 00       	push   $0x8d
5202fb:	68 8c 10 64 00       	push   $0x64108c
520300:	6a 44                	push   $0x44
520302:	6a 67                	push   $0x67
520304:	6a 35                	push   $0x35
520306:	e8 75 8c fb ff       	call   0x4d8f80
52030b:	83 c4 14             	add    $0x14,%esp
52030e:	ff 74 24 5c          	push   0x5c(%esp)
520312:	e8 69 b4 fc ff       	call   0x4eb780
520317:	ff 74 24 5c          	push   0x5c(%esp)
52031b:	e8 60 b4 fc ff       	call   0x4eb780
520320:	68 fd 00 00 00       	push   $0xfd
520325:	68 8c 10 64 00       	push   $0x64108c
52032a:	55                   	push   %ebp
52032b:	e8 50 04 fc ff       	call   0x4e0780
520330:	68 fe 00 00 00       	push   $0xfe
520335:	68 8c 10 64 00       	push   $0x64108c
52033a:	ff 74 24 30          	push   0x30(%esp)
52033e:	e8 3d 04 fc ff       	call   0x4e0780
520343:	68 ff 00 00 00       	push   $0xff
520348:	68 8c 10 64 00       	push   $0x64108c
52034d:	ff 74 24 4c          	push   0x4c(%esp)
520351:	e8 2a 04 fc ff       	call   0x4e0780
520356:	ff 74 24 3c          	push   0x3c(%esp)
52035a:	e8 91 ad ff ff       	call   0x51b0f0
52035f:	53                   	push   %ebx
520360:	e8 db 77 fc ff       	call   0x4e7b40
520365:	ff 74 24 4c          	push   0x4c(%esp)
520369:	e8 42 e0 fe ff       	call   0x50e3b0
52036e:	ff 74 24 54          	push   0x54(%esp)
520372:	e8 39 e0 fe ff       	call   0x50e3b0
520377:	8b 44 24 78          	mov    0x78(%esp),%eax
52037b:	83 c4 3c             	add    $0x3c,%esp
52037e:	5f                   	pop    %edi
52037f:	5e                   	pop    %esi
520380:	5d                   	pop    %ebp
520381:	5b                   	pop    %ebx
520382:	83 c4 50             	add    $0x50,%esp
520385:	c3                   	ret
520386:	cc                   	int3
520387:	cc                   	int3
520388:	cc                   	int3
520389:	cc                   	int3
52038a:	cc                   	int3
52038b:	cc                   	int3
52038c:	cc                   	int3
52038d:	cc                   	int3
52038e:	cc                   	int3
52038f:	cc                   	int3
520390:	56                   	push   %esi
520391:	ff 74 24 08          	push   0x8(%esp)
520395:	e8 a6 6e fc ff       	call   0x4e7240
52039a:	50                   	push   %eax
52039b:	e8 60 f4 ff ff       	call   0x51f800
5203a0:	ff 74 24 14          	push   0x14(%esp)
5203a4:	8b f0                	mov    %eax,%esi
5203a6:	e8 15 05 fd ff       	call   0x4f08c0
5203ab:	83 c4 0c             	add    $0xc,%esp
5203ae:	85 c0                	test   %eax,%eax
5203b0:	79 19                	jns    0x5203cb
5203b2:	6a 48                	push   $0x48
5203b4:	68 8c 10 64 00       	push   $0x64108c
5203b9:	6a 66                	push   $0x66
5203bb:	6a 68                	push   $0x68
5203bd:	6a 35                	push   $0x35
5203bf:	e8 bc 8b fb ff       	call   0x4d8f80
5203c4:	83 c4 14             	add    $0x14,%esp
5203c7:	33 c0                	xor    %eax,%eax
5203c9:	5e                   	pop    %esi
5203ca:	c3                   	ret
5203cb:	85 f6                	test   %esi,%esi
5203cd:	75 19                	jne    0x5203e8
5203cf:	6a 4c                	push   $0x4c
5203d1:	68 8c 10 64 00       	push   $0x64108c
5203d6:	6a 69                	push   $0x69
5203d8:	6a 68                	push   $0x68
5203da:	6a 35                	push   $0x35
5203dc:	e8 9f 8b fb ff       	call   0x4d8f80
5203e1:	83 c4 14             	add    $0x14,%esp
5203e4:	33 c0                	xor    %eax,%eax
5203e6:	5e                   	pop    %esi
5203e7:	c3                   	ret
5203e8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5203ec:	8d 04 70             	lea    (%eax,%esi,2),%eax
5203ef:	83 c0 0a             	add    $0xa,%eax
5203f2:	3b c8                	cmp    %eax,%ecx
5203f4:	77 19                	ja     0x52040f
5203f6:	6a 52                	push   $0x52
5203f8:	68 8c 10 64 00       	push   $0x64108c
5203fd:	6a 68                	push   $0x68
5203ff:	6a 68                	push   $0x68
520401:	6a 35                	push   $0x35
520403:	e8 78 8b fb ff       	call   0x4d8f80
520408:	83 c4 14             	add    $0x14,%esp
52040b:	33 c0                	xor    %eax,%eax
52040d:	5e                   	pop    %esi
52040e:	c3                   	ret
52040f:	2b c8                	sub    %eax,%ecx
520411:	8b 44 24 14          	mov    0x14(%esp),%eax
520415:	5e                   	pop    %esi
520416:	89 08                	mov    %ecx,(%eax)
520418:	b8 01 00 00 00       	mov    $0x1,%eax
52041d:	c3                   	ret
52041e:	cc                   	int3
52041f:	cc                   	int3
520420:	b8 08 00 00 00       	mov    $0x8,%eax
520425:	e8 86 13 0b 00       	call   0x5d17b0
52042a:	53                   	push   %ebx
52042b:	8b 5c 24 18          	mov    0x18(%esp),%ebx
52042f:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
520436:	00
520437:	55                   	push   %ebp
520438:	56                   	push   %esi
520439:	57                   	push   %edi
52043a:	85 db                	test   %ebx,%ebx
52043c:	0f 84 d7 01 00 00    	je     0x520619
520442:	53                   	push   %ebx
520443:	e8 98 98 fb ff       	call   0x4d9ce0
520448:	8b 7c 24 20          	mov    0x20(%esp),%edi
52044c:	85 c0                	test   %eax,%eax
52044e:	68 80 00 00 00       	push   $0x80
520453:	ff 74 24 34          	push   0x34(%esp)
520457:	b9 64 25 60 00       	mov    $0x602564,%ecx
52045c:	bd 10 ae 62 00       	mov    $0x62ae10,%ebp
520461:	57                   	push   %edi
520462:	0f 44 e9             	cmove  %ecx,%ebp
520465:	e8 d6 8a fd ff       	call   0x4f8f40
52046a:	83 c4 10             	add    $0x10,%esp
52046d:	85 c0                	test   %eax,%eax
52046f:	74 27                	je     0x520498
520471:	53                   	push   %ebx
520472:	e8 e9 98 fb ff       	call   0x4d9d60
520477:	83 c4 04             	add    $0x4,%esp
52047a:	85 c0                	test   %eax,%eax
52047c:	74 24                	je     0x5204a2
52047e:	ff 74 24 20          	push   0x20(%esp)
520482:	68 ac 10 64 00       	push   $0x6410ac
520487:	57                   	push   %edi
520488:	e8 b3 20 fc ff       	call   0x4e2540
52048d:	83 c4 0c             	add    $0xc,%esp
520490:	85 c0                	test   %eax,%eax
520492:	0f 8f 81 01 00 00    	jg     0x520619
520498:	5f                   	pop    %edi
520499:	5e                   	pop    %esi
52049a:	5d                   	pop    %ebp
52049b:	33 c0                	xor    %eax,%eax
52049d:	5b                   	pop    %ebx
52049e:	83 c4 08             	add    $0x8,%esp
5204a1:	c3                   	ret
5204a2:	53                   	push   %ebx
5204a3:	e8 78 99 fb ff       	call   0x4d9e20
5204a8:	83 c4 04             	add    $0x4,%esp
5204ab:	83 c0 07             	add    $0x7,%eax
5204ae:	53                   	push   %ebx
5204af:	83 f8 28             	cmp    $0x28,%eax
5204b2:	7d 26                	jge    0x5204da
5204b4:	e8 07 fc fc ff       	call   0x4f00c0
5204b9:	53                   	push   %ebx
5204ba:	8b 30                	mov    (%eax),%esi
5204bc:	e8 ff fb fc ff       	call   0x4f00c0
5204c1:	56                   	push   %esi
5204c2:	55                   	push   %ebp
5204c3:	ff 30                	push   (%eax)
5204c5:	55                   	push   %ebp
5204c6:	ff 74 24 38          	push   0x38(%esp)
5204ca:	68 b4 10 64 00       	push   $0x6410b4
5204cf:	57                   	push   %edi
5204d0:	e8 6b 20 fc ff       	call   0x4e2540
5204d5:	83 c4 24             	add    $0x24,%esp
5204d8:	eb b6                	jmp    0x520490
5204da:	e8 41 99 fb ff       	call   0x4d9e20
5204df:	83 c0 07             	add    $0x7,%eax
5204e2:	99                   	cltd
5204e3:	83 e2 07             	and    $0x7,%edx
5204e6:	03 c2                	add    %edx,%eax
5204e8:	c1 f8 03             	sar    $0x3,%eax
5204eb:	6a 49                	push   $0x49
5204ed:	40                   	inc    %eax
5204ee:	68 c8 10 64 00       	push   $0x6410c8
5204f3:	50                   	push   %eax
5204f4:	89 44 24 24          	mov    %eax,0x24(%esp)
5204f8:	e8 53 02 fc ff       	call   0x4e0750
5204fd:	8b f0                	mov    %eax,%esi
5204ff:	83 c4 10             	add    $0x10,%esp
520502:	89 74 24 24          	mov    %esi,0x24(%esp)
520506:	85 f6                	test   %esi,%esi
520508:	0f 84 e8 00 00 00    	je     0x5205f6
52050e:	c6 06 00             	movb   $0x0,(%esi)
520511:	b8 64 25 60 00       	mov    $0x602564,%eax
520516:	80 7d 00 2d          	cmpb   $0x2d,0x0(%ebp)
52051a:	b9 e0 10 64 00       	mov    $0x6410e0,%ecx
52051f:	0f 45 c8             	cmovne %eax,%ecx
520522:	51                   	push   %ecx
520523:	ff 74 24 24          	push   0x24(%esp)
520527:	68 ec 10 64 00       	push   $0x6410ec
52052c:	57                   	push   %edi
52052d:	e8 0e 20 fc ff       	call   0x4e2540
520532:	83 c4 10             	add    $0x10,%esp
520535:	85 c0                	test   %eax,%eax
520537:	0f 8e b9 00 00 00    	jle    0x5205f6
52053d:	46                   	inc    %esi
52053e:	56                   	push   %esi
52053f:	53                   	push   %ebx
520540:	e8 bb 92 fb ff       	call   0x4d9800
520545:	83 c4 08             	add    $0x8,%esp
520548:	8b d8                	mov    %eax,%ebx
52054a:	80 3e 00             	cmpb   $0x0,(%esi)
52054d:	7d 07                	jge    0x520556
52054f:	8b 6c 24 24          	mov    0x24(%esp),%ebp
520553:	43                   	inc    %ebx
520554:	eb 02                	jmp    0x520558
520556:	8b ee                	mov    %esi,%ebp
520558:	33 f6                	xor    %esi,%esi
52055a:	85 db                	test   %ebx,%ebx
52055c:	74 78                	je     0x5205d6
52055e:	66 90                	xchg   %ax,%ax
520560:	b8 89 88 88 88       	mov    $0x88888889,%eax
520565:	f7 e6                	mul    %esi
520567:	8b c6                	mov    %esi,%eax
520569:	c1 ea 03             	shr    $0x3,%edx
52056c:	8b ca                	mov    %edx,%ecx
52056e:	c1 e1 04             	shl    $0x4,%ecx
520571:	2b ca                	sub    %edx,%ecx
520573:	2b c1                	sub    %ecx,%eax
520575:	75 30                	jne    0x5205a7
520577:	85 f6                	test   %esi,%esi
520579:	74 12                	je     0x52058d
52057b:	68 cc 26 60 00       	push   $0x6026cc
520580:	57                   	push   %edi
520581:	e8 4a 8d fd ff       	call   0x4f92d0
520586:	83 c4 08             	add    $0x8,%esp
520589:	85 c0                	test   %eax,%eax
52058b:	7e 69                	jle    0x5205f6