52f358:	83 c0 02             	add    $0x2,%eax
52f35b:	50                   	push   %eax
52f35c:	ff 75 c0             	push   -0x40(%ebp)
52f35f:	6a 32                	push   $0x32
52f361:	53                   	push   %ebx
52f362:	e8 79 27 01 00       	call   0x541ae0
52f367:	83 c4 10             	add    $0x10,%esp
52f36a:	ff 75 c0             	push   -0x40(%ebp)
52f36d:	6a 0f                	push   $0xf
52f36f:	53                   	push   %ebx
52f370:	e8 0b 27 01 00       	call   0x541a80
52f375:	83 c4 0c             	add    $0xc,%esp
52f378:	eb 3f                	jmp    0x52f3b9
52f37a:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
52f37e:	75 26                	jne    0x52f3a6
52f380:	80 bd 50 ff ff ff 00 	cmpb   $0x0,-0xb0(%ebp)
52f387:	75 1d                	jne    0x52f3a6
52f389:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
52f38f:	ff 75 c0             	push   -0x40(%ebp)
52f392:	ff 75 9c             	push   -0x64(%ebp)
52f395:	6a 78                	push   $0x78
52f397:	53                   	push   %ebx
52f398:	e8 a3 27 01 00       	call   0x541b40
52f39d:	83 c4 14             	add    $0x14,%esp
52f3a0:	c6 45 c7 01          	movb   $0x1,-0x39(%ebp)
52f3a4:	eb 10                	jmp    0x52f3b6
52f3a6:	ff 75 c0             	push   -0x40(%ebp)
52f3a9:	6a 00                	push   $0x0
52f3ab:	6a 48                	push   $0x48
52f3ad:	53                   	push   %ebx
52f3ae:	e8 2d 27 01 00       	call   0x541ae0
52f3b3:	83 c4 10             	add    $0x10,%esp
52f3b6:	8b 7d d8             	mov    -0x28(%ebp),%edi
52f3b9:	ff 75 c0             	push   -0x40(%ebp)
52f3bc:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
52f3c2:	56                   	push   %esi
52f3c3:	e8 d8 48 fc ff       	call   0x4f3ca0
52f3c8:	83 c4 0c             	add    $0xc,%esp
52f3cb:	f6 47 24 60          	testb  $0x60,0x24(%edi)
52f3cf:	74 0d                	je     0x52f3de
52f3d1:	57                   	push   %edi
52f3d2:	ff 75 a0             	push   -0x60(%ebp)
52f3d5:	56                   	push   %esi
52f3d6:	e8 e5 07 ff ff       	call   0x51fbc0
52f3db:	83 c4 0c             	add    $0xc,%esp
52f3de:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
52f3e2:	74 7c                	je     0x52f460
52f3e4:	8b 7f 40             	mov    0x40(%edi),%edi
52f3e7:	85 ff                	test   %edi,%edi
52f3e9:	74 11                	je     0x52f3fc
52f3eb:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
52f3f1:	39 07                	cmp    %eax,(%edi)
52f3f3:	74 07                	je     0x52f3fc
52f3f5:	8b 7f 18             	mov    0x18(%edi),%edi
52f3f8:	85 ff                	test   %edi,%edi
52f3fa:	75 f5                	jne    0x52f3f1
52f3fc:	8b 55 d8             	mov    -0x28(%ebp),%edx
52f3ff:	52                   	push   %edx
52f400:	56                   	push   %esi
52f401:	e8 6a f4 01 00       	call   0x54e870
52f406:	6a f4                	push   $0xfffffff4
52f408:	57                   	push   %edi
52f409:	8b 7d d8             	mov    -0x28(%ebp),%edi
52f40c:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
52f412:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
52f416:	83 c0 02             	add    $0x2,%eax
52f419:	50                   	push   %eax
52f41a:	6a 01                	push   $0x1
52f41c:	6a 0a                	push   $0xa
52f41e:	53                   	push   %ebx
52f41f:	e8 6c 27 01 00       	call   0x541b90
52f424:	8b 43 6c             	mov    0x6c(%ebx),%eax
52f427:	83 c4 24             	add    $0x24,%esp
52f42a:	85 c0                	test   %eax,%eax
52f42c:	7e 1f                	jle    0x52f44d
52f42e:	8b 4d 18             	mov    0x18(%ebp),%ecx
52f431:	83 f9 0b             	cmp    $0xb,%ecx
52f434:	0f b7 d1             	movzwl %cx,%edx
52f437:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52f43a:	8b 43 68             	mov    0x68(%ebx),%eax
52f43d:	c7 45 b4 02 00 00 00 	movl   $0x2,-0x4c(%ebp)
52f444:	0f 44 55 b4          	cmove  -0x4c(%ebp),%edx
52f448:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52f44d:	8b 46 74             	mov    0x74(%esi),%eax
52f450:	8b ce                	mov    %esi,%ecx
52f452:	85 c0                	test   %eax,%eax
52f454:	0f 45 c8             	cmovne %eax,%ecx
52f457:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
52f45b:	e9 91 00 00 00       	jmp    0x52f4f1
52f460:	8b 8d 60 ff ff ff    	mov    -0xa0(%ebp),%ecx
52f466:	8d 45 b4             	lea    -0x4c(%ebp),%eax
52f469:	51                   	push   %ecx
52f46a:	6a 00                	push   $0x0
52f46c:	50                   	push   %eax
52f46d:	ff 75 ac             	push   -0x54(%ebp)
52f470:	8b 45 b0             	mov    -0x50(%ebp),%eax
52f473:	ff 75 18             	push   0x18(%ebp)
52f476:	c1 e8 1f             	shr    $0x1f,%eax
52f479:	34 01                	xor    $0x1,%al
52f47b:	0f b6 c0             	movzbl %al,%eax
52f47e:	50                   	push   %eax
52f47f:	6a 00                	push   $0x0
52f481:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
52f487:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
52f48d:	ff 75 9c             	push   -0x64(%ebp)
52f490:	ff 75 8c             	push   -0x74(%ebp)
52f493:	57                   	push   %edi
52f494:	56                   	push   %esi
52f495:	e8 46 b0 ff ff       	call   0x52a4e0
52f49a:	6a 00                	push   $0x0
52f49c:	6a 00                	push   $0x0
52f49e:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
52f4a4:	6a 00                	push   $0x0
52f4a6:	57                   	push   %edi
52f4a7:	56                   	push   %esi
52f4a8:	e8 33 a0 ff ff       	call   0x5294e0
52f4ad:	83 c4 4c             	add    $0x4c,%esp
52f4b0:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
52f4b4:	74 0d                	je     0x52f4c3
52f4b6:	83 bb d8 00 00 00 00 	cmpl   $0x0,0xd8(%ebx)
52f4bd:	74 04                	je     0x52f4c3
52f4bf:	33 c0                	xor    %eax,%eax
52f4c1:	eb 05                	jmp    0x52f4c8
52f4c3:	b8 01 00 00 00       	mov    $0x1,%eax
52f4c8:	50                   	push   %eax
52f4c9:	0f b6 45 c7          	movzbl -0x39(%ebp),%eax
52f4cd:	50                   	push   %eax
52f4ce:	6a 00                	push   $0x0
52f4d0:	ff 75 8c             	push   -0x74(%ebp)
52f4d3:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
52f4d9:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
52f4df:	ff 75 9c             	push   -0x64(%ebp)
52f4e2:	57                   	push   %edi
52f4e3:	56                   	push   %esi
52f4e4:	e8 b7 04 ff ff       	call   0x51f9a0
52f4e9:	83 c4 24             	add    $0x24,%esp
52f4ec:	eb 03                	jmp    0x52f4f1
52f4ee:	8b 7d d8             	mov    -0x28(%ebp),%edi
52f4f1:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
52f4f7:	85 c0                	test   %eax,%eax
52f4f9:	74 0e                	je     0x52f509
52f4fb:	6a 01                	push   $0x1
52f4fd:	50                   	push   %eax
52f4fe:	6a 52                	push   $0x52
52f500:	53                   	push   %ebx
52f501:	e8 da 25 01 00       	call   0x541ae0
52f506:	83 c4 10             	add    $0x10,%esp
52f509:	8b 95 6c ff ff ff    	mov    -0x94(%ebp),%edx
52f50f:	85 d2                	test   %edx,%edx
52f511:	74 24                	je     0x52f537
52f513:	ff 75 ac             	push   -0x54(%ebp)
52f516:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
52f51a:	ff 75 18             	push   0x18(%ebp)
52f51d:	8b 4d a0             	mov    -0x60(%ebp),%ecx
52f520:	2b c8                	sub    %eax,%ecx
52f522:	83 e9 02             	sub    $0x2,%ecx
52f525:	51                   	push   %ecx
52f526:	57                   	push   %edi
52f527:	6a 02                	push   $0x2
52f529:	6a 00                	push   $0x0
52f52b:	6a 7d                	push   $0x7d
52f52d:	52                   	push   %edx
52f52e:	56                   	push   %esi
52f52f:	e8 bc f8 fe ff       	call   0x51edf0
52f534:	83 c4 24             	add    $0x24,%esp
52f537:	8b 4b 0c             	mov    0xc(%ebx),%ecx
52f53a:	8b 55 ac             	mov    -0x54(%ebp),%edx
52f53d:	f7 d2                	not    %edx
52f53f:	8b 41 3c             	mov    0x3c(%ecx),%eax
52f542:	03 41 38             	add    0x38(%ecx),%eax
52f545:	79 0d                	jns    0x52f554
52f547:	52                   	push   %edx
52f548:	53                   	push   %ebx
52f549:	51                   	push   %ecx
52f54a:	e8 51 42 fe ff       	call   0x5137a0
52f54f:	83 c4 0c             	add    $0xc,%esp
52f552:	eb 09                	jmp    0x52f55d
52f554:	8b 49 40             	mov    0x40(%ecx),%ecx
52f557:	8b 43 6c             	mov    0x6c(%ebx),%eax
52f55a:	89 04 91             	mov    %eax,(%ecx,%edx,4)
52f55d:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52f561:	74 5d                	je     0x52f5c0
52f563:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
52f569:	8b 7d a8             	mov    -0x58(%ebp),%edi
52f56c:	57                   	push   %edi
52f56d:	6a 05                	push   $0x5
52f56f:	53                   	push   %ebx
52f570:	e8 6b 25 01 00       	call   0x541ae0
52f575:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
52f57b:	83 c4 10             	add    $0x10,%esp
52f57e:	8b 53 6c             	mov    0x6c(%ebx),%edx
52f581:	85 c9                	test   %ecx,%ecx
52f583:	79 03                	jns    0x52f588
52f585:	8d 4a ff             	lea    -0x1(%edx),%ecx
52f588:	8b 03                	mov    (%ebx),%eax
52f58a:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52f58e:	74 16                	je     0x52f5a6
52f590:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52f595:	57                   	push   %edi
52f596:	6a 74                	push   $0x74
52f598:	53                   	push   %ebx
52f599:	89 50 08             	mov    %edx,0x8(%eax)
52f59c:	e8 df 24 01 00       	call   0x541a80
52f5a1:	83 c4 0c             	add    $0xc,%esp
52f5a4:	eb 5a                	jmp    0x52f600
52f5a6:	8b 43 68             	mov    0x68(%ebx),%eax
52f5a9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52f5ac:	57                   	push   %edi
52f5ad:	6a 74                	push   $0x74
52f5af:	53                   	push   %ebx
52f5b0:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52f5b3:	89 50 08             	mov    %edx,0x8(%eax)
52f5b6:	e8 c5 24 01 00       	call   0x541a80
52f5bb:	83 c4 0c             	add    $0xc,%esp
52f5be:	eb 40                	jmp    0x52f600
52f5c0:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52f5c4:	74 3a                	je     0x52f600
52f5c6:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
52f5cc:	53                   	push   %ebx
52f5cd:	e8 ce aa 01 00       	call   0x54a0a0
52f5d2:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
52f5d8:	83 c4 08             	add    $0x8,%esp
52f5db:	8b 53 6c             	mov    0x6c(%ebx),%edx
52f5de:	85 c9                	test   %ecx,%ecx
52f5e0:	79 03                	jns    0x52f5e5
52f5e2:	8d 4a ff             	lea    -0x1(%edx),%ecx
52f5e5:	8b 03                	mov    (%ebx),%eax
52f5e7:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52f5eb:	74 07                	je     0x52f5f4
52f5ed:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52f5f2:	eb 09                	jmp    0x52f5fd
52f5f4:	8b 43 68             	mov    0x68(%ebx),%eax
52f5f7:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52f5fa:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52f5fd:	89 50 08             	mov    %edx,0x8(%eax)
52f600:	80 7e 12 00          	cmpb   $0x0,0x12(%esi)
52f604:	75 15                	jne    0x52f61b
52f606:	83 7e 78 00          	cmpl   $0x0,0x78(%esi)
52f60a:	75 0f                	jne    0x52f61b
52f60c:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
52f610:	74 09                	je     0x52f61b
52f612:	56                   	push   %esi
52f613:	e8 f8 46 fc ff       	call   0x4f3d10
52f618:	83 c4 04             	add    $0x4,%esp
52f61b:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
52f621:	85 c0                	test   %eax,%eax
52f623:	74 5d                	je     0x52f682
52f625:	6a 01                	push   $0x1
52f627:	50                   	push   %eax
52f628:	6a 50                	push   $0x50
52f62a:	53                   	push   %ebx
52f62b:	e8 b0 24 01 00       	call   0x541ae0
52f630:	6a 01                	push   $0x1
52f632:	53                   	push   %ebx
52f633:	e8 88 d9 01 00       	call   0x54cfc0
52f638:	8b 03                	mov    (%ebx),%eax
52f63a:	83 c4 18             	add    $0x18,%esp
52f63d:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52f641:	75 3f                	jne    0x52f682
52f643:	8b 73 74             	mov    0x74(%ebx),%esi
52f646:	b8 00 24 00 00       	mov    $0x2400,%eax
52f64b:	66 85 46 08          	test   %ax,0x8(%esi)
52f64f:	75 06                	jne    0x52f657
52f651:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
52f655:	74 09                	je     0x52f660
52f657:	56                   	push   %esi
52f658:	e8 b3 b7 02 00       	call   0x55ae10
52f65d:	83 c4 04             	add    $0x4,%esp
52f660:	b8 02 0a 00 00       	mov    $0xa02,%eax
52f665:	c7 46 10 80 a9 6b 00 	movl   $0x6ba980,0x10(%esi)
52f66c:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
52f673:	c7 46 0c 0d 00 00 00 	movl   $0xd,0xc(%esi)
52f67a:	66 89 46 08          	mov    %ax,0x8(%esi)
52f67e:	c6 46 0a 01          	movb   $0x1,0xa(%esi)
52f682:	8b 7d d4             	mov    -0x2c(%ebp),%edi
52f685:	ff 75 84             	push   -0x7c(%ebp)
52f688:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
52f68e:	56                   	push   %esi
52f68f:	e8 dc d6 00 00       	call   0x53cd70
52f694:	8b 45 90             	mov    -0x70(%ebp),%eax
52f697:	83 c4 08             	add    $0x8,%esp
52f69a:	85 c0                	test   %eax,%eax
52f69c:	74 0a                	je     0x52f6a8
52f69e:	50                   	push   %eax
52f69f:	56                   	push   %esi
52f6a0:	e8 5b 19 fd ff       	call   0x501000
52f6a5:	83 c4 08             	add    $0x8,%esp
52f6a8:	8b 9d 60 ff ff ff    	mov    -0xa0(%ebp),%ebx
52f6ae:	85 db                	test   %ebx,%ebx
52f6b0:	74 4d                	je     0x52f6ff
52f6b2:	8b 03                	mov    (%ebx),%eax
52f6b4:	85 c0                	test   %eax,%eax
52f6b6:	74 0a                	je     0x52f6c2
52f6b8:	50                   	push   %eax
52f6b9:	56                   	push   %esi
52f6ba:	e8 41 19 fd ff       	call   0x501000
52f6bf:	83 c4 08             	add    $0x8,%esp
52f6c2:	8b 43 04             	mov    0x4(%ebx),%eax
52f6c5:	85 c0                	test   %eax,%eax
52f6c7:	74 0a                	je     0x52f6d3
52f6c9:	50                   	push   %eax
52f6ca:	56                   	push   %esi
52f6cb:	e8 e0 70 ff ff       	call   0x5267b0
52f6d0:	83 c4 08             	add    $0x8,%esp
52f6d3:	8b 43 08             	mov    0x8(%ebx),%eax
52f6d6:	85 c0                	test   %eax,%eax
52f6d8:	74 0a                	je     0x52f6e4
52f6da:	50                   	push   %eax
52f6db:	56                   	push   %esi
52f6dc:	e8 1f 19 fd ff       	call   0x501000
52f6e1:	83 c4 08             	add    $0x8,%esp
52f6e4:	8b 43 0c             	mov    0xc(%ebx),%eax
52f6e7:	85 c0                	test   %eax,%eax
52f6e9:	74 0a                	je     0x52f6f5
52f6eb:	50                   	push   %eax
52f6ec:	56                   	push   %esi
52f6ed:	e8 be 70 ff ff       	call   0x5267b0
52f6f2:	83 c4 08             	add    $0x8,%esp
52f6f5:	53                   	push   %ebx
52f6f6:	56                   	push   %esi
52f6f7:	e8 74 1c ff ff       	call   0x521370
52f6fc:	83 c4 08             	add    $0x8,%esp
52f6ff:	8b 45 b8             	mov    -0x48(%ebp),%eax
52f702:	85 c0                	test   %eax,%eax
52f704:	74 0c                	je     0x52f712
52f706:	6a 01                	push   $0x1
52f708:	50                   	push   %eax
52f709:	56                   	push   %esi
52f70a:	e8 e1 96 fc ff       	call   0x4f8df0
52f70f:	83 c4 0c             	add    $0xc,%esp
52f712:	57                   	push   %edi
52f713:	56                   	push   %esi
52f714:	e8 47 e6 ff ff       	call   0x52dd60
52f719:	8b 45 8c             	mov    -0x74(%ebp),%eax
52f71c:	83 c4 08             	add    $0x8,%esp
52f71f:	85 c0                	test   %eax,%eax
52f721:	74 0a                	je     0x52f72d
52f723:	50                   	push   %eax
52f724:	56                   	push   %esi
52f725:	e8 46 1c ff ff       	call   0x521370
52f72a:	83 c4 08             	add    $0x8,%esp
52f72d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52f730:	5f                   	pop    %edi
52f731:	5e                   	pop    %esi
52f732:	33 cd                	xor    %ebp,%ecx
52f734:	5b                   	pop    %ebx
52f735:	e8 a0 1d 0b 00       	call   0x5e14da
52f73a:	8b e5                	mov    %ebp,%esp
52f73c:	5d                   	pop    %ebp
52f73d:	c3                   	ret