51251c:	33 db                	xor    %ebx,%ebx
51251e:	39 1e                	cmp    %ebx,(%esi)
512520:	7e 4a                	jle    0x51256c
512522:	8b 4d 14             	mov    0x14(%ebp),%ecx
512525:	83 c6 10             	add    $0x10,%esi
512528:	8b 45 10             	mov    0x10(%ebp),%eax
51252b:	57                   	push   %edi
51252c:	0f 1f 40 00          	nopl   0x0(%eax)
512530:	f6 06 03             	testb  $0x3,(%esi)
512533:	8b 7e f8             	mov    -0x8(%esi),%edi
512536:	75 2b                	jne    0x512563
512538:	85 ff                	test   %edi,%edi
51253a:	74 27                	je     0x512563
51253c:	85 c9                	test   %ecx,%ecx
51253e:	74 23                	je     0x512563
512540:	51                   	push   %ecx
512541:	57                   	push   %edi
512542:	e8 e9 b6 02 00       	call   0x53dc30
512547:	83 c4 08             	add    $0x8,%esp
51254a:	85 c0                	test   %eax,%eax
51254c:	75 0f                	jne    0x51255d
51254e:	57                   	push   %edi
51254f:	ff 75 0c             	push   0xc(%ebp)
512552:	ff 75 08             	push   0x8(%ebp)
512555:	e8 26 0b 00 00       	call   0x513080
51255a:	83 c4 0c             	add    $0xc,%esp
51255d:	8b 4d 14             	mov    0x14(%ebp),%ecx
512560:	8b 45 10             	mov    0x10(%ebp),%eax
512563:	43                   	inc    %ebx
512564:	83 c6 14             	add    $0x14,%esi
512567:	3b 18                	cmp    (%eax),%ebx
512569:	7c c5                	jl     0x512530
51256b:	5f                   	pop    %edi
51256c:	5b                   	pop    %ebx
51256d:	5e                   	pop    %esi
51256e:	5d                   	pop    %ebp
51256f:	c3                   	ret
512570:	55                   	push   %ebp
512571:	8b ec                	mov    %esp,%ebp
512573:	8b 4d 0c             	mov    0xc(%ebp),%ecx
512576:	53                   	push   %ebx
512577:	56                   	push   %esi
512578:	8b 75 08             	mov    0x8(%ebp),%esi
51257b:	8a 19                	mov    (%ecx),%bl
51257d:	57                   	push   %edi
51257e:	8b 56 18             	mov    0x18(%esi),%edx
512581:	80 fb 4d             	cmp    $0x4d,%bl
512584:	75 25                	jne    0x5125ab
512586:	0f bf 41 20          	movswl 0x20(%ecx),%eax
51258a:	3b 42 08             	cmp    0x8(%edx),%eax
51258d:	75 1c                	jne    0x5125ab
51258f:	8b 3e                	mov    (%esi),%edi
512591:	8b 47 78             	mov    0x78(%edi),%eax
512594:	3b 42 0c             	cmp    0xc(%edx),%eax
512597:	75 12                	jne    0x5125ab
512599:	51                   	push   %ecx
51259a:	52                   	push   %edx
51259b:	57                   	push   %edi
51259c:	e8 df 0a 00 00       	call   0x513080
5125a1:	83 c4 0c             	add    $0xc,%esp
5125a4:	33 c0                	xor    %eax,%eax
5125a6:	5f                   	pop    %edi
5125a7:	5e                   	pop    %esi
5125a8:	5b                   	pop    %ebx
5125a9:	5d                   	pop    %ebp
5125aa:	c3                   	ret
5125ab:	80 fb a4             	cmp    $0xa4,%bl
5125ae:	75 1d                	jne    0x5125cd
5125b0:	0f bf 41 20          	movswl 0x20(%ecx),%eax
5125b4:	3b 42 08             	cmp    0x8(%edx),%eax
5125b7:	75 14                	jne    0x5125cd
5125b9:	8b 42 0c             	mov    0xc(%edx),%eax
5125bc:	3b 41 2c             	cmp    0x2c(%ecx),%eax
5125bf:	75 0c                	jne    0x5125cd
5125c1:	51                   	push   %ecx
5125c2:	52                   	push   %edx
5125c3:	ff 36                	push   (%esi)
5125c5:	e8 b6 0a 00 00       	call   0x513080
5125ca:	83 c4 0c             	add    $0xc,%esp
5125cd:	5f                   	pop    %edi
5125ce:	5e                   	pop    %esi
5125cf:	33 c0                	xor    %eax,%eax
5125d1:	5b                   	pop    %ebx
5125d2:	5d                   	pop    %ebp
5125d3:	c3                   	ret
5125d4:	cc                   	int3
5125d5:	cc                   	int3
5125d6:	cc                   	int3
5125d7:	cc                   	int3
5125d8:	cc                   	int3
5125d9:	cc                   	int3
5125da:	cc                   	int3
5125db:	cc                   	int3
5125dc:	cc                   	int3
5125dd:	cc                   	int3
5125de:	cc                   	int3
5125df:	cc                   	int3
5125e0:	55                   	push   %ebp
5125e1:	8b ec                	mov    %esp,%ebp
5125e3:	53                   	push   %ebx
5125e4:	8b 5d 10             	mov    0x10(%ebp),%ebx
5125e7:	85 db                	test   %ebx,%ebx
5125e9:	74 6c                	je     0x512657
5125eb:	57                   	push   %edi
5125ec:	33 ff                	xor    %edi,%edi
5125ee:	39 7b 04             	cmp    %edi,0x4(%ebx)
5125f1:	7e 63                	jle    0x512656
5125f3:	8b 4d 14             	mov    0x14(%ebp),%ecx
5125f6:	56                   	push   %esi
5125f7:	8b 03                	mov    (%ebx),%eax
5125f9:	8b 34 f8             	mov    (%eax,%edi,8),%esi
5125fc:	85 f6                	test   %esi,%esi
5125fe:	75 08                	jne    0x512608
512600:	8b c1                	mov    %ecx,%eax
512602:	f7 d8                	neg    %eax
512604:	1b c0                	sbb    %eax,%eax
512606:	eb 0e                	jmp    0x512616
512608:	85 c9                	test   %ecx,%ecx
51260a:	74 40                	je     0x51264c
51260c:	51                   	push   %ecx
51260d:	56                   	push   %esi
51260e:	e8 1d b6 02 00       	call   0x53dc30
512613:	83 c4 08             	add    $0x8,%esp
512616:	85 c0                	test   %eax,%eax
512618:	75 32                	jne    0x51264c
51261a:	8b 45 08             	mov    0x8(%ebp),%eax
51261d:	05 10 01 00 00       	add    $0x110,%eax
512622:	83 38 00             	cmpl   $0x0,(%eax)
512625:	74 25                	je     0x51264c
512627:	8b 08                	mov    (%eax),%ecx
512629:	39 31                	cmp    %esi,(%ecx)
51262b:	74 0b                	je     0x512638
51262d:	83 79 0c 00          	cmpl   $0x0,0xc(%ecx)
512631:	8d 41 0c             	lea    0xc(%ecx),%eax
512634:	75 f1                	jne    0x512627
512636:	eb 14                	jmp    0x51264c
512638:	8b d1                	mov    %ecx,%edx
51263a:	8b 4a 0c             	mov    0xc(%edx),%ecx
51263d:	89 08                	mov    %ecx,(%eax)
51263f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
512642:	8b 01                	mov    (%ecx),%eax
512644:	89 42 0c             	mov    %eax,0xc(%edx)
512647:	ff 41 04             	incl   0x4(%ecx)
51264a:	89 11                	mov    %edx,(%ecx)
51264c:	8b 4d 14             	mov    0x14(%ebp),%ecx
51264f:	47                   	inc    %edi
512650:	3b 7b 04             	cmp    0x4(%ebx),%edi
512653:	7c a2                	jl     0x5125f7
512655:	5e                   	pop    %esi
512656:	5f                   	pop    %edi
512657:	5b                   	pop    %ebx
512658:	5d                   	pop    %ebp
512659:	c3                   	ret
51265a:	cc                   	int3
51265b:	cc                   	int3
51265c:	cc                   	int3
51265d:	cc                   	int3
51265e:	cc                   	int3
51265f:	cc                   	int3
512660:	55                   	push   %ebp
512661:	8b ec                	mov    %esp,%ebp
512663:	8b 4d 10             	mov    0x10(%ebp),%ecx
512666:	56                   	push   %esi
512667:	85 c9                	test   %ecx,%ecx
512669:	75 04                	jne    0x51266f
51266b:	33 f6                	xor    %esi,%esi
51266d:	eb 33                	jmp    0x5126a2
51266f:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
512673:	8b c2                	mov    %edx,%eax
512675:	25 02 02 00 00       	and    $0x202,%eax
51267a:	3d 02 02 00 00       	cmp    $0x202,%eax
51267f:	75 0b                	jne    0x51268c
512681:	80 79 0a 01          	cmpb   $0x1,0xa(%ecx)
512685:	75 05                	jne    0x51268c
512687:	8b 71 10             	mov    0x10(%ecx),%esi
51268a:	eb 16                	jmp    0x5126a2
51268c:	f6 c2 01             	test   $0x1,%dl
51268f:	74 04                	je     0x512695
512691:	33 f6                	xor    %esi,%esi
512693:	eb 0d                	jmp    0x5126a2
512695:	6a 01                	push   $0x1
512697:	51                   	push   %ecx
512698:	e8 f3 74 04 00       	call   0x559b90
51269d:	83 c4 08             	add    $0x8,%esp
5126a0:	8b f0                	mov    %eax,%esi
5126a2:	8b 4d 14             	mov    0x14(%ebp),%ecx
5126a5:	85 c9                	test   %ecx,%ecx
5126a7:	75 04                	jne    0x5126ad
5126a9:	33 c0                	xor    %eax,%eax
5126ab:	eb 2d                	jmp    0x5126da
5126ad:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
5126b1:	8b c2                	mov    %edx,%eax
5126b3:	25 02 02 00 00       	and    $0x202,%eax
5126b8:	3d 02 02 00 00       	cmp    $0x202,%eax
5126bd:	75 0b                	jne    0x5126ca
5126bf:	80 79 0a 01          	cmpb   $0x1,0xa(%ecx)
5126c3:	75 05                	jne    0x5126ca
5126c5:	8b 41 10             	mov    0x10(%ecx),%eax
5126c8:	eb 10                	jmp    0x5126da
5126ca:	f6 c2 01             	test   $0x1,%dl
5126cd:	75 da                	jne    0x5126a9
5126cf:	6a 01                	push   $0x1
5126d1:	51                   	push   %ecx
5126d2:	e8 b9 74 04 00       	call   0x559b90
5126d7:	83 c4 08             	add    $0x8,%esp
5126da:	8b 4d 18             	mov    0x18(%ebp),%ecx
5126dd:	ba ad 57 6e 00       	mov    $0x6e57ad,%edx
5126e2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5126e6:	ff 71 04             	push   0x4(%ecx)
5126e9:	b9 e8 9a 6b 00       	mov    $0x6b9ae8,%ecx
5126ee:	0f 44 ca             	cmove  %edx,%ecx
5126f1:	51                   	push   %ecx
5126f2:	50                   	push   %eax
5126f3:	56                   	push   %esi
5126f4:	68 f8 9a 6b 00       	push   $0x6b9af8
5126f9:	e8 52 7e fd ff       	call   0x4ea550
5126fe:	8b 4d 08             	mov    0x8(%ebp),%ecx
512701:	8b f0                	mov    %eax,%esi
512703:	6a ff                	push   $0xffffffff
512705:	6a 01                	push   $0x1
512707:	6a ff                	push   $0xffffffff
512709:	56                   	push   %esi
51270a:	ff 31                	push   (%ecx)
51270c:	c7 41 14 01 00 00 00 	movl   $0x1,0x14(%ecx)
512713:	e8 c8 93 03 00       	call   0x54bae0
512718:	56                   	push   %esi
512719:	e8 72 86 fd ff       	call   0x4ead90
51271e:	83 c4 2c             	add    $0x2c,%esp
512721:	5e                   	pop    %esi
512722:	5d                   	pop    %ebp
512723:	c3                   	ret
512724:	cc                   	int3
512725:	cc                   	int3
512726:	cc                   	int3
512727:	cc                   	int3
512728:	cc                   	int3
512729:	cc                   	int3
51272a:	cc                   	int3
51272b:	cc                   	int3
51272c:	cc                   	int3
51272d:	cc                   	int3
51272e:	cc                   	int3
51272f:	cc                   	int3
512730:	55                   	push   %ebp
512731:	8b ec                	mov    %esp,%ebp
512733:	8b 45 0c             	mov    0xc(%ebp),%eax
512736:	f7 40 04 00 00 20 00 	testl  $0x200000,0x4(%eax)
51273d:	74 07                	je     0x512746
51273f:	b8 01 00 00 00       	mov    $0x1,%eax
512744:	5d                   	pop    %ebp
512745:	c3                   	ret
512746:	50                   	push   %eax
512747:	ff 75 08             	push   0x8(%ebp)
51274a:	e8 a1 0c 00 00       	call   0x5133f0
51274f:	83 c4 08             	add    $0x8,%esp
512752:	33 c0                	xor    %eax,%eax
512754:	5d                   	pop    %ebp
512755:	c3                   	ret
512756:	cc                   	int3
512757:	cc                   	int3
512758:	cc                   	int3
512759:	cc                   	int3
51275a:	cc                   	int3
51275b:	cc                   	int3
51275c:	cc                   	int3
51275d:	cc                   	int3
51275e:	cc                   	int3
51275f:	cc                   	int3
512760:	55                   	push   %ebp
512761:	8b ec                	mov    %esp,%ebp
512763:	8b 55 14             	mov    0x14(%ebp),%edx
512766:	83 ec 20             	sub    $0x20,%esp
512769:	53                   	push   %ebx
51276a:	56                   	push   %esi
51276b:	57                   	push   %edi
51276c:	85 d2                	test   %edx,%edx
51276e:	75 04                	jne    0x512774
512770:	33 db                	xor    %ebx,%ebx
512772:	eb 1b                	jmp    0x51278f
512774:	8b da                	mov    %edx,%ebx
512776:	8d 4b 01             	lea    0x1(%ebx),%ecx
512779:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
512780:	8a 03                	mov    (%ebx),%al
512782:	43                   	inc    %ebx
512783:	84 c0                	test   %al,%al
512785:	75 f9                	jne    0x512780
512787:	2b d9                	sub    %ecx,%ebx
512789:	81 e3 ff ff ff 3f    	and    $0x3fffffff,%ebx
51278f:	8b 45 10             	mov    0x10(%ebp),%eax
512792:	85 c0                	test   %eax,%eax
512794:	75 04                	jne    0x51279a
512796:	33 ff                	xor    %edi,%edi
512798:	eb 15                	jmp    0x5127af
51279a:	8b f8                	mov    %eax,%edi
51279c:	8d 4f 01             	lea    0x1(%edi),%ecx
51279f:	90                   	nop
5127a0:	8a 07                	mov    (%edi),%al
5127a2:	47                   	inc    %edi
5127a3:	84 c0                	test   %al,%al
5127a5:	75 f9                	jne    0x5127a0
5127a7:	2b f9                	sub    %ecx,%edi
5127a9:	81 e7 ff ff ff 3f    	and    $0x3fffffff,%edi
5127af:	8b 45 08             	mov    0x8(%ebp),%eax
5127b2:	52                   	push   %edx
5127b3:	68 10 9b 6b 00       	push   $0x6b9b10
5127b8:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5127bf:	8b 00                	mov    (%eax),%eax
5127c1:	8b 40 20             	mov    0x20(%eax),%eax
5127c4:	50                   	push   %eax
5127c5:	89 45 f4             	mov    %eax,-0xc(%ebp)
5127c8:	e8 73 e7 01 00       	call   0x530f40
5127cd:	8b f0                	mov    %eax,%esi
5127cf:	83 c4 0c             	add    $0xc,%esp
5127d2:	89 75 ec             	mov    %esi,-0x14(%ebp)
5127d5:	85 f6                	test   %esi,%esi
5127d7:	75 0a                	jne    0x5127e3
5127d9:	5f                   	pop    %edi
5127da:	8d 46 07             	lea    0x7(%esi),%eax
5127dd:	5e                   	pop    %esi
5127de:	5b                   	pop    %ebx
5127df:	8b e5                	mov    %ebp,%esp
5127e1:	5d                   	pop    %ebp
5127e2:	c3                   	ret
5127e3:	8b ce                	mov    %esi,%ecx
5127e5:	8d 51 01             	lea    0x1(%ecx),%edx
5127e8:	8a 01                	mov    (%ecx),%al
5127ea:	41                   	inc    %ecx
5127eb:	84 c0                	test   %al,%al
5127ed:	75 f9                	jne    0x5127e8
5127ef:	2b ca                	sub    %edx,%ecx
5127f1:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
5127f7:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
5127fb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5127fe:	74 05                	je     0x512805
512800:	89 75 14             	mov    %esi,0x14(%ebp)
512803:	8b d9                	mov    %ecx,%ebx
512805:	8b 45 0c             	mov    0xc(%ebp),%eax
512808:	8b 40 04             	mov    0x4(%eax),%eax
51280b:	0f af c1             	imul   %ecx,%eax
51280e:	40                   	inc    %eax
51280f:	03 c7                	add    %edi,%eax
512811:	99                   	cltd
512812:	8b f0                	mov    %eax,%esi
512814:	8b 45 f4             	mov    -0xc(%ebp),%eax
512817:	52                   	push   %edx
512818:	56                   	push   %esi
512819:	85 c0                	test   %eax,%eax
51281b:	74 0b                	je     0x512828
51281d:	50                   	push   %eax
51281e:	e8 bd eb 00 00       	call   0x5213e0