50a1c7:	85 c0                	test   %eax,%eax
50a1c9:	0f 84 9a 01 00 00    	je     0x50a369
50a1cf:	50                   	push   %eax
50a1d0:	56                   	push   %esi
50a1d1:	e8 8a 05 04 00       	call   0x54a760
50a1d6:	83 c4 08             	add    $0x8,%esp
50a1d9:	e9 8b 01 00 00       	jmp    0x50a369
50a1de:	80 7d e0 01          	cmpb   $0x1,-0x20(%ebp)
50a1e2:	75 08                	jne    0x50a1ec
50a1e4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50a1e7:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a1ea:	eb 2a                	jmp    0x50a216
50a1ec:	8b 4b 28             	mov    0x28(%ebx),%ecx
50a1ef:	6a 00                	push   $0x0
50a1f1:	51                   	push   %ecx
50a1f2:	6a 64                	push   $0x64
50a1f4:	8d 41 01             	lea    0x1(%ecx),%eax
50a1f7:	89 4d ac             	mov    %ecx,-0x54(%ebp)
50a1fa:	56                   	push   %esi
50a1fb:	89 43 28             	mov    %eax,0x28(%ebx)
50a1fe:	e8 dd 78 03 00       	call   0x541ae0
50a203:	57                   	push   %edi
50a204:	89 47 14             	mov    %eax,0x14(%edi)
50a207:	e8 44 7f ff ff       	call   0x502150
50a20c:	83 c4 14             	add    $0x14,%esp
50a20f:	83 48 04 20          	orl    $0x20,0x4(%eax)
50a213:	8b 45 ac             	mov    -0x54(%ebp),%eax
50a216:	50                   	push   %eax
50a217:	8d 45 b0             	lea    -0x50(%ebp),%eax
50a21a:	6a 01                	push   $0x1
50a21c:	50                   	push   %eax
50a21d:	e8 8e 1f 03 00       	call   0x53c1b0
50a222:	8d 45 b0             	lea    -0x50(%ebp),%eax
50a225:	50                   	push   %eax
50a226:	8b 45 a4             	mov    -0x5c(%ebp),%eax
50a229:	50                   	push   %eax
50a22a:	53                   	push   %ebx
50a22b:	e8 70 f8 02 00       	call   0x539aa0
50a230:	8b c8                	mov    %eax,%ecx
50a232:	83 c4 18             	add    $0x18,%esp
50a235:	89 4d a8             	mov    %ecx,-0x58(%ebp)
50a238:	85 c9                	test   %ecx,%ecx
50a23a:	0f 85 59 02 00 00    	jne    0x50a499
50a240:	80 3f 86             	cmpb   $0x86,(%edi)
50a243:	89 47 34             	mov    %eax,0x34(%edi)
50a246:	8b 47 3c             	mov    0x3c(%edi),%eax
50a249:	89 45 a0             	mov    %eax,-0x60(%ebp)
50a24c:	0f 94 c0             	sete   %al
50a24f:	fe c0                	inc    %al
50a251:	89 4f 3c             	mov    %ecx,0x3c(%edi)
50a254:	88 45 b0             	mov    %al,-0x50(%ebp)
50a257:	0f b6 07             	movzbl (%edi),%eax
50a25a:	50                   	push   %eax
50a25b:	e8 90 c8 00 00       	call   0x516af0
50a260:	50                   	push   %eax
50a261:	68 34 b0 6b 00       	push   $0x6bb034
50a266:	6a 01                	push   $0x1
50a268:	53                   	push   %ebx
50a269:	e8 72 f9 03 00       	call   0x549be0
50a26e:	8d 45 b0             	lea    -0x50(%ebp),%eax
50a271:	50                   	push   %eax
50a272:	57                   	push   %edi
50a273:	53                   	push   %ebx
50a274:	e8 27 f8 02 00       	call   0x539aa0
50a279:	89 45 a8             	mov    %eax,-0x58(%ebp)
50a27c:	83 c4 20             	add    $0x20,%esp
50a27f:	8b 47 30             	mov    0x30(%edi),%eax
50a282:	85 c0                	test   %eax,%eax
50a284:	74 0c                	je     0x50a292
50a286:	50                   	push   %eax
50a287:	ff 75 98             	push   -0x68(%ebp)
50a28a:	e8 71 6d ff ff       	call   0x501000
50a28f:	83 c4 08             	add    $0x8,%esp
50a292:	80 3f 84             	cmpb   $0x84,(%edi)
50a295:	8b 47 34             	mov    0x34(%edi),%eax
50a298:	89 45 90             	mov    %eax,-0x70(%ebp)
50a29b:	8b 45 a4             	mov    -0x5c(%ebp),%eax
50a29e:	89 47 34             	mov    %eax,0x34(%edi)
50a2a1:	c7 47 30 00 00 00 00 	movl   $0x0,0x30(%edi)
50a2a8:	75 16                	jne    0x50a2c0
50a2aa:	0f b7 40 02          	movzwl 0x2(%eax),%eax
50a2ae:	50                   	push   %eax
50a2af:	0f b7 47 02          	movzwl 0x2(%edi),%eax
50a2b3:	50                   	push   %eax
50a2b4:	e8 87 6b 02 00       	call   0x530e40
50a2b9:	83 c4 08             	add    $0x8,%esp
50a2bc:	66 89 47 02          	mov    %ax,0x2(%edi)
50a2c0:	8b 47 3c             	mov    0x3c(%edi),%eax
50a2c3:	85 c0                	test   %eax,%eax
50a2c5:	74 0c                	je     0x50a2d3
50a2c7:	50                   	push   %eax
50a2c8:	ff 75 98             	push   -0x68(%ebp)
50a2cb:	e8 e0 c4 01 00       	call   0x5267b0
50a2d0:	83 c4 08             	add    $0x8,%esp
50a2d3:	80 7d e0 01          	cmpb   $0x1,-0x20(%ebp)
50a2d7:	8b 45 a0             	mov    -0x60(%ebp),%eax
50a2da:	89 47 3c             	mov    %eax,0x3c(%edi)
50a2dd:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
50a2e4:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
50a2eb:	74 7c                	je     0x50a369
50a2ed:	8b 45 98             	mov    -0x68(%ebp),%eax
50a2f0:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50a2f4:	75 73                	jne    0x50a369
50a2f6:	8b 5b 38             	mov    0x38(%ebx),%ebx
50a2f9:	8b 45 f8             	mov    -0x8(%ebp),%eax
50a2fc:	4b                   	dec    %ebx
50a2fd:	53                   	push   %ebx
50a2fe:	ff 75 9c             	push   -0x64(%ebp)
50a301:	8d 7b ff             	lea    -0x1(%ebx),%edi
50a304:	50                   	push   %eax
50a305:	89 78 38             	mov    %edi,0x38(%eax)
50a308:	e8 e3 0f ff ff       	call   0x4fb2f0
50a30d:	53                   	push   %ebx
50a30e:	ff 75 ac             	push   -0x54(%ebp)
50a311:	6a 25                	push   $0x25
50a313:	56                   	push   %esi
50a314:	e8 c7 77 03 00       	call   0x541ae0
50a319:	8b 76 6c             	mov    0x6c(%esi),%esi
50a31c:	8d 45 e0             	lea    -0x20(%ebp),%eax
50a31f:	53                   	push   %ebx
50a320:	57                   	push   %edi
50a321:	50                   	push   %eax
50a322:	6a 00                	push   $0x0
50a324:	6a 00                	push   $0x0
50a326:	ff 75 ac             	push   -0x54(%ebp)
50a329:	ff 75 9c             	push   -0x64(%ebp)
50a32c:	ff 75 f8             	push   -0x8(%ebp)
50a32f:	e8 0c bc 00 00       	call   0x515f40
50a334:	57                   	push   %edi
50a335:	8b 7d 94             	mov    -0x6c(%ebp),%edi
50a338:	57                   	push   %edi
50a339:	e8 92 29 04 00       	call   0x54ccd0
50a33e:	83 c4 44             	add    $0x44,%esp
50a341:	56                   	push   %esi
50a342:	8b 75 ac             	mov    -0x54(%ebp),%esi
50a345:	56                   	push   %esi
50a346:	6a 05                	push   $0x5
50a348:	57                   	push   %edi
50a349:	e8 92 77 03 00       	call   0x541ae0
50a34e:	53                   	push   %ebx
50a34f:	57                   	push   %edi
50a350:	e8 7b 29 04 00       	call   0x54ccd0
50a355:	6a 00                	push   $0x0
50a357:	56                   	push   %esi
50a358:	6a 74                	push   $0x74
50a35a:	57                   	push   %edi
50a35b:	e8 80 77 03 00       	call   0x541ae0
50a360:	8b 5d f8             	mov    -0x8(%ebp),%ebx
50a363:	83 c4 28             	add    $0x28,%esp
50a366:	8b 7d 9c             	mov    -0x64(%ebp),%edi
50a369:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
50a36d:	75 09                	jne    0x50a378
50a36f:	53                   	push   %ebx
50a370:	e8 bb f8 03 00       	call   0x549c30
50a375:	83 c4 04             	add    $0x4,%esp
50a378:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
50a37c:	0f 85 17 01 00 00    	jne    0x50a499
50a382:	f6 47 04 20          	testb  $0x20,0x4(%edi)
50a386:	0f 84 0d 01 00 00    	je     0x50a499
50a38c:	8b 47 1c             	mov    0x1c(%edi),%eax
50a38f:	6a 01                	push   $0x1
50a391:	8b 00                	mov    (%eax),%eax
50a393:	50                   	push   %eax
50a394:	ff 75 98             	push   -0x68(%ebp)
50a397:	89 45 a0             	mov    %eax,-0x60(%ebp)
50a39a:	e8 11 58 02 00       	call   0x52fbb0
50a39f:	8b f0                	mov    %eax,%esi
50a3a1:	83 c4 0c             	add    $0xc,%esp
50a3a4:	89 75 88             	mov    %esi,-0x78(%ebp)
50a3a7:	85 f6                	test   %esi,%esi
50a3a9:	75 08                	jne    0x50a3b3
50a3ab:	8d 58 07             	lea    0x7(%eax),%ebx
50a3ae:	e9 e9 00 00 00       	jmp    0x50a49c
50a3b3:	8d 46 14             	lea    0x14(%esi),%eax
50a3b6:	89 45 a4             	mov    %eax,-0x5c(%ebp)
50a3b9:	33 c0                	xor    %eax,%eax
50a3bb:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a3be:	39 45 a0             	cmp    %eax,-0x60(%ebp)
50a3c1:	7e 2e                	jle    0x50a3f1
50a3c3:	8b 75 a4             	mov    -0x5c(%ebp),%esi
50a3c6:	50                   	push   %eax
50a3c7:	57                   	push   %edi
50a3c8:	53                   	push   %ebx
50a3c9:	e8 62 01 00 00       	call   0x50a530
50a3ce:	83 c4 0c             	add    $0xc,%esp
50a3d1:	89 06                	mov    %eax,(%esi)
50a3d3:	85 c0                	test   %eax,%eax
50a3d5:	75 08                	jne    0x50a3df
50a3d7:	8b 45 98             	mov    -0x68(%ebp),%eax
50a3da:	8b 40 08             	mov    0x8(%eax),%eax
50a3dd:	89 06                	mov    %eax,(%esi)
50a3df:	8b 45 ac             	mov    -0x54(%ebp),%eax
50a3e2:	83 c6 04             	add    $0x4,%esi
50a3e5:	40                   	inc    %eax
50a3e6:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a3e9:	3b 45 a0             	cmp    -0x60(%ebp),%eax
50a3ec:	7c d8                	jl     0x50a3c6
50a3ee:	8b 75 88             	mov    -0x78(%ebp),%esi
50a3f1:	8b 5d 94             	mov    -0x6c(%ebp),%ebx
50a3f4:	83 c7 14             	add    $0x14,%edi
50a3f7:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
50a3fe:	66 90                	xchg   %ax,%ax
50a400:	8b 17                	mov    (%edi),%edx
50a402:	85 d2                	test   %edx,%edx
50a404:	78 71                	js     0x50a477
50a406:	8b 03                	mov    (%ebx),%eax
50a408:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50a40c:	74 07                	je     0x50a415
50a40e:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
50a413:	eb 09                	jmp    0x50a41e
50a415:	8b 43 68             	mov    0x68(%ebx),%eax
50a418:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50a41b:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50a41e:	8b 4d a0             	mov    -0x60(%ebp),%ecx
50a421:	89 48 08             	mov    %ecx,0x8(%eax)
50a424:	ff 06                	incl   (%esi)
50a426:	8b 03                	mov    (%ebx),%eax
50a428:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50a42c:	74 0e                	je     0x50a43c
50a42e:	56                   	push   %esi
50a42f:	6a f7                	push   $0xfffffff7
50a431:	50                   	push   %eax
50a432:	e8 79 98 ff ff       	call   0x503cb0
50a437:	83 c4 0c             	add    $0xc,%esp
50a43a:	eb 26                	jmp    0x50a462
50a43c:	8b 43 68             	mov    0x68(%ebx),%eax
50a43f:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50a442:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
50a447:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50a44a:	74 0f                	je     0x50a45b
50a44c:	6a f7                	push   $0xfffffff7
50a44e:	56                   	push   %esi
50a44f:	50                   	push   %eax
50a450:	53                   	push   %ebx
50a451:	e8 ea f7 04 00       	call   0x559c40
50a456:	83 c4 10             	add    $0x10,%esp
50a459:	eb 07                	jmp    0x50a462
50a45b:	89 70 10             	mov    %esi,0x10(%eax)
50a45e:	c6 40 01 f7          	movb   $0xf7,0x1(%eax)
50a462:	8b 45 ac             	mov    -0x54(%ebp),%eax
50a465:	40                   	inc    %eax
50a466:	c7 07 ff ff ff ff    	movl   $0xffffffff,(%edi)
50a46c:	83 c7 04             	add    $0x4,%edi
50a46f:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a472:	83 f8 02             	cmp    $0x2,%eax
50a475:	7c 89                	jl     0x50a400
50a477:	8b 7d 9c             	mov    -0x64(%ebp),%edi
50a47a:	8b 7f 34             	mov    0x34(%edi),%edi
50a47d:	89 7d 9c             	mov    %edi,-0x64(%ebp)
50a480:	85 ff                	test   %edi,%edi
50a482:	0f 85 69 ff ff ff    	jne    0x50a3f1
50a488:	83 06 ff             	addl   $0xffffffff,(%esi)
50a48b:	75 0c                	jne    0x50a499
50a48d:	56                   	push   %esi
50a48e:	ff 76 0c             	push   0xc(%esi)
50a491:	e8 da 6e 01 00       	call   0x521370
50a496:	83 c4 08             	add    $0x8,%esp
50a499:	8b 5d a8             	mov    -0x58(%ebp),%ebx
50a49c:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
50a49f:	8b 45 e8             	mov    -0x18(%ebp),%eax
50a4a2:	89 41 08             	mov    %eax,0x8(%ecx)
50a4a5:	8b 45 ec             	mov    -0x14(%ebp),%eax
50a4a8:	89 41 0c             	mov    %eax,0xc(%ecx)
50a4ab:	8b 45 90             	mov    -0x70(%ebp),%eax
50a4ae:	85 c0                	test   %eax,%eax
50a4b0:	74 0e                	je     0x50a4c0
50a4b2:	6a 01                	push   $0x1
50a4b4:	50                   	push   %eax
50a4b5:	ff 75 98             	push   -0x68(%ebp)
50a4b8:	e8 33 e9 fe ff       	call   0x4f8df0
50a4bd:	83 c4 0c             	add    $0xc,%esp
50a4c0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a4c3:	8b c3                	mov    %ebx,%eax
50a4c5:	5f                   	pop    %edi
50a4c6:	5e                   	pop    %esi
50a4c7:	33 cd                	xor    %ebp,%ecx
50a4c9:	5b                   	pop    %ebx
50a4ca:	e8 0b 70 0d 00       	call   0x5e14da
50a4cf:	8b e5                	mov    %ebp,%esp
50a4d1:	5d                   	pop    %ebp
50a4d2:	c3                   	ret
50a4d3:	0f b6 07             	movzbl (%edi),%eax
50a4d6:	2d 85 00 00 00       	sub    $0x85,%eax
50a4db:	74 1f                	je     0x50a4fc
50a4dd:	83 e8 01             	sub    $0x1,%eax
50a4e0:	74 13                	je     0x50a4f5
50a4e2:	83 e8 01             	sub    $0x1,%eax
50a4e5:	74 07                	je     0x50a4ee
50a4e7:	b8 08 af 6b 00       	mov    $0x6baf08,%eax
50a4ec:	eb 13                	jmp    0x50a501
50a4ee:	b8 f4 ae 6b 00       	mov    $0x6baef4,%eax
50a4f3:	eb 0c                	jmp    0x50a501
50a4f5:	b8 00 af 6b 00       	mov    $0x6baf00,%eax
50a4fa:	eb 05                	jmp    0x50a501
50a4fc:	b8 e8 ae 6b 00       	mov    $0x6baee8,%eax
50a501:	50                   	push   %eax
50a502:	85 c9                	test   %ecx,%ecx
50a504:	ba dc af 6b 00       	mov    $0x6bafdc,%edx
50a509:	b8 d0 af 6b 00       	mov    $0x6bafd0,%eax
50a50e:	0f 44 c2             	cmove  %edx,%eax
50a511:	50                   	push   %eax
50a512:	68 e4 af 6b 00       	push   $0x6bafe4
50a517:	53                   	push   %ebx
50a518:	e8 43 8d 01 00       	call   0x523260
50a51d:	83 c4 10             	add    $0x10,%esp
50a520:	bb 01 00 00 00       	mov    $0x1,%ebx
50a525:	e9 72 ff ff ff       	jmp    0x50a49c
50a52a:	cc                   	int3
50a52b:	cc                   	int3
50a52c:	cc                   	int3
50a52d:	cc                   	int3
50a52e:	cc                   	int3
50a52f:	cc                   	int3
50a530:	55                   	push   %ebp
50a531:	8b ec                	mov    %esp,%ebp
50a533:	56                   	push   %esi
50a534:	8b 75 10             	mov    0x10(%ebp),%esi
50a537:	57                   	push   %edi
50a538:	8b 7d 0c             	mov    0xc(%ebp),%edi
50a53b:	8b 47 34             	mov    0x34(%edi),%eax
50a53e:	85 c0                	test   %eax,%eax
50a540:	74 15                	je     0x50a557
50a542:	56                   	push   %esi
50a543:	50                   	push   %eax
50a544:	ff 75 08             	push   0x8(%ebp)
50a547:	e8 e4 ff ff ff       	call   0x50a530
50a54c:	83 c4 0c             	add    $0xc,%esp
50a54f:	85 c0                	test   %eax,%eax
50a551:	74 06                	je     0x50a559
50a553:	5f                   	pop    %edi
50a554:	5e                   	pop    %esi
50a555:	5d                   	pop    %ebp
50a556:	c3                   	ret
50a557:	33 c0                	xor    %eax,%eax
50a559:	8b 4f 1c             	mov    0x1c(%edi),%ecx
50a55c:	3b 31                	cmp    (%ecx),%esi
50a55e:	7d 12                	jge    0x50a572
50a560:	8d 04 b6             	lea    (%esi,%esi,4),%eax
50a563:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
50a567:	ff 75 08             	push   0x8(%ebp)
50a56a:	e8 71 bd 01 00       	call   0x5262e0
50a56f:	83 c4 08             	add    $0x8,%esp
50a572:	5f                   	pop    %edi
50a573:	5e                   	pop    %esi
50a574:	5d                   	pop    %ebp
50a575:	c3                   	ret
50a576:	cc                   	int3
50a577:	cc                   	int3
50a578:	cc                   	int3
50a579:	cc                   	int3