51a42b:	33 c0                	xor    %eax,%eax
51a42d:	39 44 be 04          	cmp    %eax,0x4(%esi,%edi,4)
51a431:	0f 4e 45 e0          	cmovle -0x20(%ebp),%eax
51a435:	81 e2 ff ff ff 7f    	and    $0x7fffffff,%edx
51a43b:	03 f8                	add    %eax,%edi
51a43d:	8b c2                	mov    %edx,%eax
51a43f:	99                   	cltd
51a440:	f7 7d ec             	idivl  -0x14(%ebp)
51a443:	89 55 f8             	mov    %edx,-0x8(%ebp)
51a446:	8d 72 01             	lea    0x1(%edx),%esi
51a449:	8b d6                	mov    %esi,%edx
51a44b:	8b c6                	mov    %esi,%eax
51a44d:	c1 fa 03             	sar    $0x3,%edx
51a450:	83 e0 07             	and    $0x7,%eax
51a453:	03 55 f0             	add    -0x10(%ebp),%edx
51a456:	0f b6 0a             	movzbl (%edx),%ecx
51a459:	f6 c3 01             	test   $0x1,%bl
51a45c:	74 21                	je     0x51a47f
51a45e:	0f ab c1             	bts    %eax,%ecx
51a461:	88 0a                	mov    %cl,(%edx)
51a463:	83 fb 05             	cmp    $0x5,%ebx
51a466:	74 2b                	je     0x51a493
51a468:	8b 5d e8             	mov    -0x18(%ebp),%ebx
51a46b:	56                   	push   %esi
51a46c:	53                   	push   %ebx
51a46d:	e8 ce 02 00 00       	call   0x51a740
51a472:	83 c4 08             	add    $0x8,%esp
51a475:	85 c0                	test   %eax,%eax
51a477:	0f 85 97 00 00 00    	jne    0x51a514
51a47d:	eb 14                	jmp    0x51a493
51a47f:	ff 75 f4             	push   -0xc(%ebp)
51a482:	0f b3 c1             	btr    %eax,%ecx
51a485:	56                   	push   %esi
51a486:	ff 75 e8             	push   -0x18(%ebp)
51a489:	88 0a                	mov    %cl,(%edx)
51a48b:	e8 c0 00 00 00       	call   0x51a550
51a490:	83 c4 0c             	add    $0xc,%esp
51a493:	8b 75 dc             	mov    -0x24(%ebp),%esi
51a496:	8b 1c be             	mov    (%esi,%edi,4),%ebx
51a499:	85 db                	test   %ebx,%ebx
51a49b:	0f 85 48 ff ff ff    	jne    0x51a3e9
51a4a1:	8b 5d e8             	mov    -0x18(%ebp),%ebx
51a4a4:	6a 00                	push   $0x0
51a4a6:	53                   	push   %ebx
51a4a7:	e8 94 04 00 00       	call   0x51a940
51a4ac:	f7 d8                	neg    %eax
51a4ae:	1b f6                	sbb    %esi,%esi
51a4b0:	8b 45 ec             	mov    -0x14(%ebp),%eax
51a4b3:	40                   	inc    %eax
51a4b4:	f7 de                	neg    %esi
51a4b6:	50                   	push   %eax
51a4b7:	53                   	push   %ebx
51a4b8:	e8 53 04 00 00       	call   0x51a910
51a4bd:	8b 13                	mov    (%ebx),%edx
51a4bf:	03 c6                	add    %esi,%eax
51a4c1:	2b 55 ec             	sub    -0x14(%ebp),%edx
51a4c4:	bf 01 00 00 00       	mov    $0x1,%edi
51a4c9:	03 d0                	add    %eax,%edx
51a4cb:	83 c4 10             	add    $0x10,%esp
51a4ce:	89 55 e4             	mov    %edx,-0x1c(%ebp)
51a4d1:	39 7d ec             	cmp    %edi,-0x14(%ebp)
51a4d4:	7c 3e                	jl     0x51a514
51a4d6:	57                   	push   %edi
51a4d7:	53                   	push   %ebx
51a4d8:	e8 63 04 00 00       	call   0x51a940
51a4dd:	83 c4 08             	add    $0x8,%esp
51a4e0:	8b cf                	mov    %edi,%ecx
51a4e2:	f7 d8                	neg    %eax
51a4e4:	ba 01 00 00 00       	mov    $0x1,%edx
51a4e9:	1b f6                	sbb    %esi,%esi
51a4eb:	83 e1 07             	and    $0x7,%ecx
51a4ee:	d3 e2                	shl    %cl,%edx
51a4f0:	8b c7                	mov    %edi,%eax
51a4f2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
51a4f5:	f7 de                	neg    %esi
51a4f7:	c1 f8 03             	sar    $0x3,%eax
51a4fa:	84 14 08             	test   %dl,(%eax,%ecx,1)
51a4fd:	b8 00 00 00 00       	mov    $0x0,%eax
51a502:	0f 95 c0             	setne  %al
51a505:	3b c6                	cmp    %esi,%eax
51a507:	75 08                	jne    0x51a511
51a509:	47                   	inc    %edi
51a50a:	3b 7d ec             	cmp    -0x14(%ebp),%edi
51a50d:	7e c7                	jle    0x51a4d6
51a50f:	eb 03                	jmp    0x51a514
51a511:	89 7d e4             	mov    %edi,-0x1c(%ebp)
51a514:	ff 75 f4             	push   -0xc(%ebp)
51a517:	e8 74 08 fd ff       	call   0x4ead90
51a51c:	ff 75 f0             	push   -0x10(%ebp)
51a51f:	e8 6c 08 fd ff       	call   0x4ead90
51a524:	53                   	push   %ebx
51a525:	e8 86 01 00 00       	call   0x51a6b0
51a52a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51a52d:	83 c4 0c             	add    $0xc,%esp
51a530:	8b 45 e4             	mov    -0x1c(%ebp),%eax
51a533:	33 cd                	xor    %ebp,%ecx
51a535:	5f                   	pop    %edi
51a536:	5e                   	pop    %esi
51a537:	5b                   	pop    %ebx
51a538:	e8 9d 6f 0c 00       	call   0x5e14da
51a53d:	8b e5                	mov    %ebp,%esp
51a53f:	5d                   	pop    %ebp
51a540:	c3                   	ret
51a541:	cc                   	int3
51a542:	cc                   	int3
51a543:	cc                   	int3
51a544:	cc                   	int3
51a545:	cc                   	int3
51a546:	cc                   	int3
51a547:	cc                   	int3
51a548:	cc                   	int3
51a549:	cc                   	int3
51a54a:	cc                   	int3
51a54b:	cc                   	int3
51a54c:	cc                   	int3
51a54d:	cc                   	int3
51a54e:	cc                   	int3
51a54f:	cc                   	int3
51a550:	55                   	push   %ebp
51a551:	8b ec                	mov    %esp,%ebp
51a553:	53                   	push   %ebx
51a554:	8b 5d 08             	mov    0x8(%ebp),%ebx
51a557:	85 db                	test   %ebx,%ebx
51a559:	0f 84 c1 00 00 00    	je     0x51a620
51a55f:	8b 55 0c             	mov    0xc(%ebp),%edx
51a562:	4a                   	dec    %edx
51a563:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
51a567:	89 55 0c             	mov    %edx,0xc(%ebp)
51a56a:	74 20                	je     0x51a58c
51a56c:	0f 1f 40 00          	nopl   0x0(%eax)
51a570:	8b c2                	mov    %edx,%eax
51a572:	33 d2                	xor    %edx,%edx
51a574:	f7 73 08             	divl   0x8(%ebx)
51a577:	89 55 0c             	mov    %edx,0xc(%ebp)
51a57a:	8b 5c 83 0c          	mov    0xc(%ebx,%eax,4),%ebx
51a57e:	85 db                	test   %ebx,%ebx
51a580:	0f 84 9a 00 00 00    	je     0x51a620
51a586:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
51a58a:	75 e4                	jne    0x51a570
51a58c:	81 3b a0 0f 00 00    	cmpl   $0xfa0,(%ebx)
51a592:	77 17                	ja     0x51a5ab
51a594:	8b ca                	mov    %edx,%ecx
51a596:	83 e2 07             	and    $0x7,%edx
51a599:	c1 e9 03             	shr    $0x3,%ecx
51a59c:	0f b6 44 19 0c       	movzbl 0xc(%ecx,%ebx,1),%eax
51a5a1:	0f b3 d0             	btr    %edx,%eax
51a5a4:	88 44 19 0c          	mov    %al,0xc(%ecx,%ebx,1)
51a5a8:	5b                   	pop    %ebx
51a5a9:	5d                   	pop    %ebp
51a5aa:	c3                   	ret
51a5ab:	56                   	push   %esi
51a5ac:	57                   	push   %edi
51a5ad:	8b 7d 10             	mov    0x10(%ebp),%edi
51a5b0:	8d 43 0c             	lea    0xc(%ebx),%eax
51a5b3:	68 f4 01 00 00       	push   $0x1f4
51a5b8:	b9 7d 00 00 00       	mov    $0x7d,%ecx
51a5bd:	8b f0                	mov    %eax,%esi
51a5bf:	89 4d 08             	mov    %ecx,0x8(%ebp)
51a5c2:	6a 00                	push   $0x0
51a5c4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
51a5c6:	50                   	push   %eax
51a5c7:	e8 34 94 0c 00       	call   0x5e3a00
51a5cc:	8b 75 0c             	mov    0xc(%ebp),%esi
51a5cf:	83 c4 0c             	add    $0xc,%esp
51a5d2:	8b 7d 10             	mov    0x10(%ebp),%edi
51a5d5:	33 c9                	xor    %ecx,%ecx
51a5d7:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
51a5de:	66 90                	xchg   %ax,%ax
51a5e0:	8b 14 8f             	mov    (%edi,%ecx,4),%edx
51a5e3:	85 d2                	test   %edx,%edx
51a5e5:	74 31                	je     0x51a618
51a5e7:	8d 46 01             	lea    0x1(%esi),%eax
51a5ea:	3b d0                	cmp    %eax,%edx
51a5ec:	74 2a                	je     0x51a618
51a5ee:	8d 42 ff             	lea    -0x1(%edx),%eax
51a5f1:	ff 43 04             	incl   0x4(%ebx)
51a5f4:	33 d2                	xor    %edx,%edx
51a5f6:	f7 75 08             	divl   0x8(%ebp)
51a5f9:	83 7c 93 0c 00       	cmpl   $0x0,0xc(%ebx,%edx,4)
51a5fe:	74 11                	je     0x51a611
51a600:	8d 42 01             	lea    0x1(%edx),%eax
51a603:	83 f8 7d             	cmp    $0x7d,%eax
51a606:	1b d2                	sbb    %edx,%edx
51a608:	23 d0                	and    %eax,%edx
51a60a:	83 7c 93 0c 00       	cmpl   $0x0,0xc(%ebx,%edx,4)
51a60f:	75 ef                	jne    0x51a600
51a611:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
51a614:	89 44 93 0c          	mov    %eax,0xc(%ebx,%edx,4)
51a618:	41                   	inc    %ecx
51a619:	83 f9 7d             	cmp    $0x7d,%ecx
51a61c:	72 c2                	jb     0x51a5e0
51a61e:	5f                   	pop    %edi
51a61f:	5e                   	pop    %esi
51a620:	5b                   	pop    %ebx
51a621:	5d                   	pop    %ebp
51a622:	c3                   	ret
51a623:	cc                   	int3
51a624:	cc                   	int3
51a625:	cc                   	int3
51a626:	cc                   	int3
51a627:	cc                   	int3
51a628:	cc                   	int3
51a629:	cc                   	int3
51a62a:	cc                   	int3
51a62b:	cc                   	int3
51a62c:	cc                   	int3
51a62d:	cc                   	int3
51a62e:	cc                   	int3
51a62f:	cc                   	int3
51a630:	55                   	push   %ebp
51a631:	8b ec                	mov    %esp,%ebp
51a633:	51                   	push   %ecx
51a634:	83 3d 10 18 72 00 00 	cmpl   $0x0,0x721810
51a63b:	56                   	push   %esi
51a63c:	74 3e                	je     0x51a67c
51a63e:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a643:	85 c0                	test   %eax,%eax
51a645:	74 0a                	je     0x51a651
51a647:	50                   	push   %eax
51a648:	ff 15 60 18 72 00    	call   *0x721860
51a64e:	83 c4 04             	add    $0x4,%esp
51a651:	8d 45 fc             	lea    -0x4(%ebp),%eax
51a654:	50                   	push   %eax
51a655:	68 00 02 00 00       	push   $0x200
51a65a:	e8 a1 ec fe ff       	call   0x509300
51a65f:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a664:	83 c4 08             	add    $0x8,%esp
51a667:	85 c0                	test   %eax,%eax
51a669:	74 0c                	je     0x51a677
51a66b:	50                   	push   %eax
51a66c:	ff 15 68 18 72 00    	call   *0x721868
51a672:	8b 75 fc             	mov    -0x4(%ebp),%esi
51a675:	eb 12                	jmp    0x51a689
51a677:	8b 75 fc             	mov    -0x4(%ebp),%esi
51a67a:	eb 10                	jmp    0x51a68c
51a67c:	68 00 02 00 00       	push   $0x200
51a681:	ff 15 30 18 72 00    	call   *0x721830
51a687:	8b f0                	mov    %eax,%esi
51a689:	83 c4 04             	add    $0x4,%esp
51a68c:	85 f6                	test   %esi,%esi
51a68e:	74 15                	je     0x51a6a5
51a690:	68 00 02 00 00       	push   $0x200
51a695:	6a 00                	push   $0x0
51a697:	56                   	push   %esi
51a698:	e8 63 93 0c 00       	call   0x5e3a00
51a69d:	8b 45 08             	mov    0x8(%ebp),%eax
51a6a0:	83 c4 0c             	add    $0xc,%esp
51a6a3:	89 06                	mov    %eax,(%esi)
51a6a5:	8b c6                	mov    %esi,%eax
51a6a7:	5e                   	pop    %esi
51a6a8:	8b e5                	mov    %ebp,%esp
51a6aa:	5d                   	pop    %ebp
51a6ab:	c3                   	ret
51a6ac:	cc                   	int3
51a6ad:	cc                   	int3
51a6ae:	cc                   	int3
51a6af:	cc                   	int3
51a6b0:	55                   	push   %ebp
51a6b1:	8b ec                	mov    %esp,%ebp
51a6b3:	57                   	push   %edi
51a6b4:	8b 7d 08             	mov    0x8(%ebp),%edi
51a6b7:	85 ff                	test   %edi,%edi
51a6b9:	0f 84 7c 00 00 00    	je     0x51a73b
51a6bf:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
51a6c3:	74 1f                	je     0x51a6e4
51a6c5:	53                   	push   %ebx
51a6c6:	56                   	push   %esi
51a6c7:	8d 77 0c             	lea    0xc(%edi),%esi
51a6ca:	bb 7d 00 00 00       	mov    $0x7d,%ebx
51a6cf:	90                   	nop
51a6d0:	ff 36                	push   (%esi)
51a6d2:	e8 d9 ff ff ff       	call   0x51a6b0
51a6d7:	83 c4 04             	add    $0x4,%esp
51a6da:	8d 76 04             	lea    0x4(%esi),%esi
51a6dd:	83 eb 01             	sub    $0x1,%ebx
51a6e0:	75 ee                	jne    0x51a6d0
51a6e2:	5e                   	pop    %esi
51a6e3:	5b                   	pop    %ebx
51a6e4:	83 3d 10 18 72 00 00 	cmpl   $0x0,0x721810
51a6eb:	74 44                	je     0x51a731
51a6ed:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a6f2:	85 c0                	test   %eax,%eax
51a6f4:	74 0a                	je     0x51a700
51a6f6:	50                   	push   %eax
51a6f7:	ff 15 60 18 72 00    	call   *0x721860
51a6fd:	83 c4 04             	add    $0x4,%esp
51a700:	57                   	push   %edi
51a701:	ff 15 3c 18 72 00    	call   *0x72183c
51a707:	29 05 20 00 73 00    	sub    %eax,0x730020
51a70d:	ff 0d 44 00 73 00    	decl   0x730044
51a713:	57                   	push   %edi
51a714:	ff 15 34 18 72 00    	call   *0x721834
51a71a:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a71f:	83 c4 08             	add    $0x8,%esp
51a722:	85 c0                	test   %eax,%eax
51a724:	74 15                	je     0x51a73b
51a726:	5f                   	pop    %edi
51a727:	89 45 08             	mov    %eax,0x8(%ebp)
51a72a:	5d                   	pop    %ebp
51a72b:	ff 25 68 18 72 00    	jmp    *0x721868
51a731:	57                   	push   %edi
51a732:	ff 15 34 18 72 00    	call   *0x721834
51a738:	83 c4 04             	add    $0x4,%esp
51a73b:	5f                   	pop    %edi
51a73c:	5d                   	pop    %ebp
51a73d:	c3                   	ret
51a73e:	cc                   	int3
51a73f:	cc                   	int3
51a740:	55                   	push   %ebp
51a741:	8b ec                	mov    %esp,%ebp
51a743:	51                   	push   %ecx
51a744:	53                   	push   %ebx
51a745:	8b 5d 08             	mov    0x8(%ebp),%ebx
51a748:	85 db                	test   %ebx,%ebx
51a74a:	75 07                	jne    0x51a753
51a74c:	33 c0                	xor    %eax,%eax
51a74e:	5b                   	pop    %ebx
51a74f:	8b e5                	mov    %ebp,%esp
51a751:	5d                   	pop    %ebp
51a752:	c3                   	ret
51a753:	56                   	push   %esi
51a754:	8b 75 0c             	mov    0xc(%ebp),%esi
51a757:	4e                   	dec    %esi
51a758:	81 3b a0 0f 00 00    	cmpl   $0xfa0,(%ebx)
51a75e:	0f 86 89 01 00 00    	jbe    0x51a8ed
51a764:	8b 4b 08             	mov    0x8(%ebx),%ecx
51a767:	85 c9                	test   %ecx,%ecx
51a769:	74 31                	je     0x51a79c
51a76b:	8b c6                	mov    %esi,%eax
51a76d:	33 d2                	xor    %edx,%edx
51a76f:	f7 f1                	div    %ecx
51a771:	83 7c 83 0c 00       	cmpl   $0x0,0xc(%ebx,%eax,4)
51a776:	8b f2                	mov    %edx,%esi
51a778:	8d 1c 83             	lea    (%ebx,%eax,4),%ebx
51a77b:	75 14                	jne    0x51a791
51a77d:	51                   	push   %ecx
51a77e:	e8 ad fe ff ff       	call   0x51a630
51a783:	83 c4 04             	add    $0x4,%esp
51a786:	89 43 0c             	mov    %eax,0xc(%ebx)
51a789:	85 c0                	test   %eax,%eax
51a78b:	0f 84 cf 00 00 00    	je     0x51a860
51a791:	8b 5b 0c             	mov    0xc(%ebx),%ebx
51a794:	81 3b a0 0f 00 00    	cmpl   $0xfa0,(%ebx)
51a79a:	77 c8                	ja     0x51a764
51a79c:	81 3b a0 0f 00 00    	cmpl   $0xfa0,(%ebx)
51a7a2:	0f 86 45 01 00 00    	jbe    0x51a8ed
51a7a8:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
51a7ad:	8b ce                	mov    %esi,%ecx
51a7af:	f7 e6                	mul    %esi
51a7b1:	46                   	inc    %esi