52a368:	8b 7d 08             	mov    0x8(%ebp),%edi
52a36b:	8b 46 24             	mov    0x24(%esi),%eax
52a36e:	85 c0                	test   %eax,%eax
52a370:	74 0a                	je     0x52a37c
52a372:	50                   	push   %eax
52a373:	57                   	push   %edi
52a374:	e8 37 c4 ff ff       	call   0x5267b0
52a379:	83 c4 08             	add    $0x8,%esp
52a37c:	8b 46 28             	mov    0x28(%esi),%eax
52a37f:	85 c0                	test   %eax,%eax
52a381:	74 0a                	je     0x52a38d
52a383:	50                   	push   %eax
52a384:	57                   	push   %edi
52a385:	e8 76 6c fd ff       	call   0x501000
52a38a:	83 c4 08             	add    $0x8,%esp
52a38d:	8b 46 10             	mov    0x10(%esi),%eax
52a390:	85 c0                	test   %eax,%eax
52a392:	74 0a                	je     0x52a39e
52a394:	50                   	push   %eax
52a395:	57                   	push   %edi
52a396:	e8 d5 6f ff ff       	call   0x521370
52a39b:	83 c4 08             	add    $0x8,%esp
52a39e:	f6 46 38 10          	testb  $0x10,0x38(%esi)
52a3a2:	74 11                	je     0x52a3b5
52a3a4:	8b 46 20             	mov    0x20(%esi),%eax
52a3a7:	85 c0                	test   %eax,%eax
52a3a9:	74 0a                	je     0x52a3b5
52a3ab:	50                   	push   %eax
52a3ac:	57                   	push   %edi
52a3ad:	e8 be 6f ff ff       	call   0x521370
52a3b2:	83 c4 08             	add    $0x8,%esp
52a3b5:	56                   	push   %esi
52a3b6:	57                   	push   %edi
52a3b7:	e8 b4 6f ff ff       	call   0x521370
52a3bc:	83 c4 08             	add    $0x8,%esp
52a3bf:	5f                   	pop    %edi
52a3c0:	5e                   	pop    %esi
52a3c1:	5d                   	pop    %ebp
52a3c2:	c3                   	ret
52a3c3:	cc                   	int3
52a3c4:	cc                   	int3
52a3c5:	cc                   	int3
52a3c6:	cc                   	int3
52a3c7:	cc                   	int3
52a3c8:	cc                   	int3
52a3c9:	cc                   	int3
52a3ca:	cc                   	int3
52a3cb:	cc                   	int3
52a3cc:	cc                   	int3
52a3cd:	cc                   	int3
52a3ce:	cc                   	int3
52a3cf:	cc                   	int3
52a3d0:	55                   	push   %ebp
52a3d1:	8b ec                	mov    %esp,%ebp
52a3d3:	8b 45 08             	mov    0x8(%ebp),%eax
52a3d6:	53                   	push   %ebx
52a3d7:	56                   	push   %esi
52a3d8:	57                   	push   %edi
52a3d9:	8b 3c 85 c0 ff 72 00 	mov    0x72ffc0(,%eax,4),%edi
52a3e0:	85 ff                	test   %edi,%edi
52a3e2:	74 3e                	je     0x52a422
52a3e4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52a3e7:	8b 47 20             	mov    0x20(%edi),%eax
52a3ea:	8b f3                	mov    %ebx,%esi
52a3ec:	2b f0                	sub    %eax,%esi
52a3ee:	66 90                	xchg   %ax,%ax
52a3f0:	0f b6 10             	movzbl (%eax),%edx
52a3f3:	0f b6 0c 06          	movzbl (%esi,%eax,1),%ecx
52a3f7:	3b d1                	cmp    %ecx,%edx
52a3f9:	75 0b                	jne    0x52a406
52a3fb:	85 d2                	test   %edx,%edx
52a3fd:	75 19                	jne    0x52a418
52a3ff:	8b c7                	mov    %edi,%eax
52a401:	5f                   	pop    %edi
52a402:	5e                   	pop    %esi
52a403:	5b                   	pop    %ebx
52a404:	5d                   	pop    %ebp
52a405:	c3                   	ret
52a406:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
52a40d:	0f b6 92 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%edx
52a414:	2b d1                	sub    %ecx,%edx
52a416:	75 03                	jne    0x52a41b
52a418:	40                   	inc    %eax
52a419:	eb d5                	jmp    0x52a3f0
52a41b:	8b 7f 24             	mov    0x24(%edi),%edi
52a41e:	85 ff                	test   %edi,%edi
52a420:	75 c5                	jne    0x52a3e7
52a422:	5f                   	pop    %edi
52a423:	5e                   	pop    %esi
52a424:	33 c0                	xor    %eax,%eax
52a426:	5b                   	pop    %ebx
52a427:	5d                   	pop    %ebp
52a428:	c3                   	ret
52a429:	cc                   	int3
52a42a:	cc                   	int3
52a42b:	cc                   	int3
52a42c:	cc                   	int3
52a42d:	cc                   	int3
52a42e:	cc                   	int3
52a42f:	cc                   	int3
52a430:	55                   	push   %ebp
52a431:	8b ec                	mov    %esp,%ebp
52a433:	83 ec 2c             	sub    $0x2c,%esp
52a436:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52a43b:	33 c5                	xor    %ebp,%eax
52a43d:	89 45 fc             	mov    %eax,-0x4(%ebp)
52a440:	56                   	push   %esi
52a441:	8b 75 08             	mov    0x8(%ebp),%esi
52a444:	8d 45 f0             	lea    -0x10(%ebp),%eax
52a447:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
52a44e:	0f 57 c0             	xorps  %xmm0,%xmm0
52a451:	89 45 ec             	mov    %eax,-0x14(%ebp)
52a454:	8b 45 0c             	mov    0xc(%ebp),%eax
52a457:	ff 76 14             	push   0x14(%esi)
52a45a:	89 45 f0             	mov    %eax,-0x10(%ebp)
52a45d:	8d 45 d4             	lea    -0x2c(%ebp),%eax
52a460:	0f 11 45 d4          	movups %xmm0,-0x2c(%ebp)
52a464:	50                   	push   %eax
52a465:	66 0f d6 45 e4       	movq   %xmm0,-0x1c(%ebp)
52a46a:	c7 45 d8 70 17 50 00 	movl   $0x501770,-0x28(%ebp)
52a471:	c7 45 dc e0 db 43 00 	movl   $0x43dbe0,-0x24(%ebp)
52a478:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
52a47f:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
52a486:	e8 15 59 02 00       	call   0x54fda0
52a48b:	83 c4 08             	add    $0x8,%esp
52a48e:	f7 46 04 00 00 00 01 	testl  $0x1000000,0x4(%esi)
52a495:	74 17                	je     0x52a4ae
52a497:	8b 46 2c             	mov    0x2c(%esi),%eax
52a49a:	8b 40 28             	mov    0x28(%eax),%eax
52a49d:	85 c0                	test   %eax,%eax
52a49f:	74 0d                	je     0x52a4ae
52a4a1:	50                   	push   %eax
52a4a2:	8d 45 d4             	lea    -0x2c(%ebp),%eax
52a4a5:	50                   	push   %eax
52a4a6:	e8 05 5b 03 00       	call   0x55ffb0
52a4ab:	83 c4 08             	add    $0x8,%esp
52a4ae:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
52a4b2:	5e                   	pop    %esi
52a4b3:	7f 16                	jg     0x52a4cb
52a4b5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
52a4b9:	74 10                	je     0x52a4cb
52a4bb:	33 c0                	xor    %eax,%eax
52a4bd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52a4c0:	33 cd                	xor    %ebp,%ecx
52a4c2:	e8 13 70 0b 00       	call   0x5e14da
52a4c7:	8b e5                	mov    %ebp,%esp
52a4c9:	5d                   	pop    %ebp
52a4ca:	c3                   	ret
52a4cb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52a4ce:	b8 01 00 00 00       	mov    $0x1,%eax
52a4d3:	33 cd                	xor    %ebp,%ecx
52a4d5:	e8 00 70 0b 00       	call   0x5e14da
52a4da:	8b e5                	mov    %ebp,%esp
52a4dc:	5d                   	pop    %ebp
52a4dd:	c3                   	ret
52a4de:	cc                   	int3
52a4df:	cc                   	int3
52a4e0:	55                   	push   %ebp
52a4e1:	8b ec                	mov    %esp,%ebp
52a4e3:	81 ec b4 00 00 00    	sub    $0xb4,%esp
52a4e9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52a4ee:	33 c5                	xor    %ebp,%eax
52a4f0:	89 45 fc             	mov    %eax,-0x4(%ebp)
52a4f3:	8b 45 10             	mov    0x10(%ebp),%eax
52a4f6:	8b 55 0c             	mov    0xc(%ebp),%edx
52a4f9:	89 45 b8             	mov    %eax,-0x48(%ebp)
52a4fc:	8b 45 30             	mov    0x30(%ebp),%eax
52a4ff:	53                   	push   %ebx
52a500:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
52a506:	8b 45 34             	mov    0x34(%ebp),%eax
52a509:	56                   	push   %esi
52a50a:	89 45 c4             	mov    %eax,-0x3c(%ebp)
52a50d:	8b 45 38             	mov    0x38(%ebp),%eax
52a510:	57                   	push   %edi
52a511:	8b 7d 08             	mov    0x8(%ebp),%edi
52a514:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
52a51a:	33 c0                	xor    %eax,%eax
52a51c:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
52a522:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
52a528:	8b 77 08             	mov    0x8(%edi),%esi
52a52b:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
52a531:	89 45 88             	mov    %eax,-0x78(%ebp)
52a534:	89 45 8c             	mov    %eax,-0x74(%ebp)
52a537:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
52a53d:	8b 07                	mov    (%edi),%eax
52a53f:	89 7d dc             	mov    %edi,-0x24(%ebp)
52a542:	89 55 d8             	mov    %edx,-0x28(%ebp)
52a545:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
52a54c:	00 00 00
52a54f:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
52a556:	00 00 00
52a559:	c6 45 af 00          	movb   $0x0,-0x51(%ebp)
52a55d:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
52a563:	89 75 90             	mov    %esi,-0x70(%ebp)
52a566:	85 f6                	test   %esi,%esi
52a568:	75 20                	jne    0x52a58a
52a56a:	39 77 74             	cmp    %esi,0x74(%edi)
52a56d:	75 0a                	jne    0x52a579
52a56f:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
52a573:	75 04                	jne    0x52a579
52a575:	c6 47 17 01          	movb   $0x1,0x17(%edi)
52a579:	57                   	push   %edi
52a57a:	e8 91 7e 01 00       	call   0x542410
52a57f:	8b 55 d8             	mov    -0x28(%ebp),%edx
52a582:	8b f0                	mov    %eax,%esi
52a584:	83 c4 04             	add    $0x4,%esp
52a587:	89 75 90             	mov    %esi,-0x70(%ebp)
52a58a:	0f bf 5a 2a          	movswl 0x2a(%edx),%ebx
52a58e:	8b 4a 24             	mov    0x24(%edx),%ecx
52a591:	89 5d 80             	mov    %ebx,-0x80(%ebp)
52a594:	84 c9                	test   %cl,%cl
52a596:	78 10                	js     0x52a5a8
52a598:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
52a59f:	c7 45 84 01 00 00 00 	movl   $0x1,-0x7c(%ebp)
52a5a6:	eb 24                	jmp    0x52a5cc
52a5a8:	8b 52 08             	mov    0x8(%edx),%edx
52a5ab:	89 55 b0             	mov    %edx,-0x50(%ebp)
52a5ae:	85 d2                	test   %edx,%edx
52a5b0:	74 13                	je     0x52a5c5
52a5b2:	8b 42 38             	mov    0x38(%edx),%eax
52a5b5:	24 03                	and    $0x3,%al
52a5b7:	3c 02                	cmp    $0x2,%al
52a5b9:	74 07                	je     0x52a5c2
52a5bb:	8b 52 14             	mov    0x14(%edx),%edx
52a5be:	85 d2                	test   %edx,%edx
52a5c0:	75 f0                	jne    0x52a5b2
52a5c2:	89 55 b0             	mov    %edx,-0x50(%ebp)
52a5c5:	0f b7 42 32          	movzwl 0x32(%edx),%eax
52a5c9:	89 45 84             	mov    %eax,-0x7c(%ebp)
52a5cc:	f7 c1 00 08 00 00    	test   $0x800,%ecx
52a5d2:	0f 84 d7 02 00 00    	je     0x52a8af
52a5d8:	33 d2                	xor    %edx,%edx
52a5da:	33 ff                	xor    %edi,%edi
52a5dc:	33 c0                	xor    %eax,%eax
52a5de:	89 55 c8             	mov    %edx,-0x38(%ebp)
52a5e1:	89 7d bc             	mov    %edi,-0x44(%ebp)
52a5e4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
52a5e7:	33 c9                	xor    %ecx,%ecx
52a5e9:	89 4d cc             	mov    %ecx,-0x34(%ebp)
52a5ec:	85 db                	test   %ebx,%ebx
52a5ee:	0f 8e 73 02 00 00    	jle    0x52a867
52a5f4:	33 ff                	xor    %edi,%edi
52a5f6:	89 7d b4             	mov    %edi,-0x4c(%ebp)
52a5f9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
52a600:	8b 5d d8             	mov    -0x28(%ebp),%ebx
52a603:	8b 5b 04             	mov    0x4(%ebx),%ebx
52a606:	03 df                	add    %edi,%ebx
52a608:	0f b6 7b 0c          	movzbl 0xc(%ebx),%edi
52a60c:	85 ff                	test   %edi,%edi
52a60e:	0f 84 32 02 00 00    	je     0x52a846
52a614:	8b 45 d8             	mov    -0x28(%ebp),%eax
52a617:	0f bf 40 28          	movswl 0x28(%eax),%eax
52a61b:	3b c8                	cmp    %eax,%ecx
52a61d:	0f 84 20 02 00 00    	je     0x52a843
52a623:	0f b7 43 10          	movzwl 0x10(%ebx),%eax
52a627:	83 e0 60             	and    $0x60,%eax
52a62a:	74 10                	je     0x52a63c
52a62c:	85 d2                	test   %edx,%edx
52a62e:	75 0c                	jne    0x52a63c
52a630:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52a633:	40                   	inc    %eax
52a634:	89 45 d4             	mov    %eax,-0x2c(%ebp)
52a637:	e9 0a 02 00 00       	jmp    0x52a846
52a63c:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
52a640:	8b 55 c8             	mov    -0x38(%ebp),%edx
52a643:	74 14                	je     0x52a659
52a645:	8b 55 c4             	mov    -0x3c(%ebp),%edx
52a648:	83 3c 8a 00          	cmpl   $0x0,(%edx,%ecx,4)
52a64c:	8b 55 c8             	mov    -0x38(%ebp),%edx
52a64f:	7d 08                	jge    0x52a659
52a651:	85 c0                	test   %eax,%eax
52a653:	0f 84 ea 01 00 00    	je     0x52a843
52a659:	80 7d 28 0b          	cmpb   $0xb,0x28(%ebp)
52a65d:	8b 4d cc             	mov    -0x34(%ebp),%ecx
52a660:	74 19                	je     0x52a67b
52a662:	0f b6 7d 28          	movzbl 0x28(%ebp),%edi
52a666:	83 ff 05             	cmp    $0x5,%edi
52a669:	75 1a                	jne    0x52a685
52a66b:	85 d2                	test   %edx,%edx
52a66d:	75 05                	jne    0x52a674
52a66f:	39 53 04             	cmp    %edx,0x4(%ebx)
52a672:	75 1d                	jne    0x52a691
52a674:	bf 02 00 00 00       	mov    $0x2,%edi
52a679:	eb 16                	jmp    0x52a691
52a67b:	83 ff 0b             	cmp    $0xb,%edi
52a67e:	75 e6                	jne    0x52a666
52a680:	bf 02 00 00 00       	mov    $0x2,%edi
52a685:	85 d2                	test   %edx,%edx
52a687:	74 08                	je     0x52a691
52a689:	85 c0                	test   %eax,%eax
52a68b:	0f 84 b2 01 00 00    	je     0x52a843
52a691:	51                   	push   %ecx
52a692:	ff 75 d8             	push   -0x28(%ebp)
52a695:	e8 b6 37 01 00       	call   0x53de50
52a69a:	8b 55 1c             	mov    0x1c(%ebp),%edx
52a69d:	83 c4 08             	add    $0x8,%esp
52a6a0:	98                   	cwtl
52a6a1:	42                   	inc    %edx
52a6a2:	03 d0                	add    %eax,%edx
52a6a4:	8d 47 ff             	lea    -0x1(%edi),%eax
52a6a7:	89 55 c0             	mov    %edx,-0x40(%ebp)
52a6aa:	83 f8 04             	cmp    $0x4,%eax
52a6ad:	0f 87 44 01 00 00    	ja     0x52a7f7
52a6b3:	ff 24 85 04 c5 52 00 	jmp    *0x52c504(,%eax,4)
52a6ba:	52                   	push   %edx
52a6bb:	6a 33                	push   $0x33
52a6bd:	56                   	push   %esi
52a6be:	e8 bd 73 01 00       	call   0x541a80
52a6c3:	ff 45 bc             	incl   -0x44(%ebp)
52a6c6:	8b f8                	mov    %eax,%edi
52a6c8:	8b 43 04             	mov    0x4(%ebx),%eax
52a6cb:	8b 5d c0             	mov    -0x40(%ebp),%ebx
52a6ce:	53                   	push   %ebx
52a6cf:	50                   	push   %eax
52a6d0:	ff 75 dc             	push   -0x24(%ebp)
52a6d3:	89 45 a8             	mov    %eax,-0x58(%ebp)
52a6d6:	e8 75 ab ff ff       	call   0x525250
52a6db:	83 c4 18             	add    $0x18,%esp
52a6de:	3b c3                	cmp    %ebx,%eax
52a6e0:	74 28                	je     0x52a70a
52a6e2:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52a6e5:	8b 49 08             	mov    0x8(%ecx),%ecx
52a6e8:	85 c9                	test   %ecx,%ecx
52a6ea:	74 1e                	je     0x52a70a
52a6ec:	53                   	push   %ebx
52a6ed:	50                   	push   %eax
52a6ee:	8b 45 a8             	mov    -0x58(%ebp),%eax
52a6f1:	8b 40 04             	mov    0x4(%eax),%eax
52a6f4:	25 00 00 20 00       	and    $0x200000,%eax
52a6f9:	f7 d8                	neg    %eax
52a6fb:	1b c0                	sbb    %eax,%eax
52a6fd:	83 c0 4e             	add    $0x4e,%eax
52a700:	50                   	push   %eax
52a701:	51                   	push   %ecx
52a702:	e8 d9 73 01 00       	call   0x541ae0
52a707:	83 c4 10             	add    $0x10,%esp
52a70a:	8b 56 6c             	mov    0x6c(%esi),%edx
52a70d:	85 ff                	test   %edi,%edi
52a70f:	79 03                	jns    0x52a714
52a711:	8d 7a ff             	lea    -0x1(%edx),%edi
52a714:	8b 06                	mov    (%esi),%eax
52a716:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52a71a:	74 0d                	je     0x52a729
52a71c:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52a721:	89 50 08             	mov    %edx,0x8(%eax)
52a724:	e9 17 01 00 00       	jmp    0x52a840
52a729:	8b 46 68             	mov    0x68(%esi),%eax
52a72c:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
52a72f:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52a733:	8d 04 88             	lea    (%eax,%ecx,4),%eax