5d058a:	57                   	push   %edi
5d058b:	8b 7b 08             	mov    0x8(%ebx),%edi
5d058e:	89 45 0c             	mov    %eax,0xc(%ebp)
5d0591:	b8 01 00 00 00       	mov    $0x1,%eax
5d0596:	8b 4b 04             	mov    0x4(%ebx),%ecx
5d0599:	85 c9                	test   %ecx,%ecx
5d059b:	7e 04                	jle    0x5d05a1
5d059d:	85 ff                	test   %edi,%edi
5d059f:	75 52                	jne    0x5d05f3
5d05a1:	f7 d9                	neg    %ecx
5d05a3:	8d bb a8 00 00 00    	lea    0xa8(%ebx),%edi
5d05a9:	83 f9 01             	cmp    $0x1,%ecx
5d05ac:	be 27 00 00 00       	mov    $0x27,%esi
5d05b1:	0f 4c c8             	cmovl  %eax,%ecx
5d05b4:	b8 5f 0b 4e 83       	mov    $0x834e0b5f,%eax
5d05b9:	f7 e9                	imul   %ecx
5d05bb:	03 d1                	add    %ecx,%edx
5d05bd:	c1 fa 10             	sar    $0x10,%edx
5d05c0:	8b c2                	mov    %edx,%eax
5d05c2:	c1 e8 1f             	shr    $0x1f,%eax
5d05c5:	03 c2                	add    %edx,%eax
5d05c7:	69 d1 a7 41 00 00    	imul   $0x41a7,%ecx,%edx
5d05cd:	69 c0 ff ff ff 7f    	imul   $0x7fffffff,%eax,%eax
5d05d3:	2b d0                	sub    %eax,%edx
5d05d5:	8d 8a ff ff ff 7f    	lea    0x7fffffff(%edx),%ecx
5d05db:	0f 49 ca             	cmovns %edx,%ecx
5d05de:	83 fe 20             	cmp    $0x20,%esi
5d05e1:	73 02                	jae    0x5d05e5
5d05e3:	89 0f                	mov    %ecx,(%edi)
5d05e5:	83 ef 04             	sub    $0x4,%edi
5d05e8:	83 ee 01             	sub    $0x1,%esi
5d05eb:	79 c7                	jns    0x5d05b4
5d05ed:	8b 7b 0c             	mov    0xc(%ebx),%edi
5d05f0:	89 7b 08             	mov    %edi,0x8(%ebx)
5d05f3:	b8 5f 0b 4e 83       	mov    $0x834e0b5f,%eax
5d05f8:	f7 e9                	imul   %ecx
5d05fa:	03 d1                	add    %ecx,%edx
5d05fc:	69 c9 a7 41 00 00    	imul   $0x41a7,%ecx,%ecx
5d0602:	c1 fa 10             	sar    $0x10,%edx
5d0605:	8b c2                	mov    %edx,%eax
5d0607:	c1 e8 1f             	shr    $0x1f,%eax
5d060a:	03 c2                	add    %edx,%eax
5d060c:	69 c0 ff ff ff 7f    	imul   $0x7fffffff,%eax,%eax
5d0612:	2b c8                	sub    %eax,%ecx
5d0614:	8b c7                	mov    %edi,%eax
5d0616:	99                   	cltd
5d0617:	8d b1 ff ff ff 7f    	lea    0x7fffffff(%ecx),%esi
5d061d:	0f 49 f1             	cmovns %ecx,%esi
5d0620:	81 e2 ff ff ff 03    	and    $0x3ffffff,%edx
5d0626:	03 c2                	add    %edx,%eax
5d0628:	c1 f8 1a             	sar    $0x1a,%eax
5d062b:	8d 0c 83             	lea    (%ebx,%eax,4),%ecx
5d062e:	8b 41 0c             	mov    0xc(%ecx),%eax
5d0631:	89 43 08             	mov    %eax,0x8(%ebx)
5d0634:	b8 01 00 00 00       	mov    $0x1,%eax
5d0639:	89 71 0c             	mov    %esi,0xc(%ecx)
5d063c:	8b 7b 08             	mov    0x8(%ebx),%edi
5d063f:	89 73 04             	mov    %esi,0x4(%ebx)
5d0642:	3b 7d 0c             	cmp    0xc(%ebp),%edi
5d0645:	0f 87 4b ff ff ff    	ja     0x5d0596
5d064b:	8b c7                	mov    %edi,%eax
5d064d:	33 d2                	xor    %edx,%edx
5d064f:	f7 75 fc             	divl   -0x4(%ebp)
5d0652:	5f                   	pop    %edi
5d0653:	03 55 08             	add    0x8(%ebp),%edx
5d0656:	5e                   	pop    %esi
5d0657:	8b c2                	mov    %edx,%eax
5d0659:	5b                   	pop    %ebx
5d065a:	8b e5                	mov    %ebp,%esp
5d065c:	5d                   	pop    %ebp
5d065d:	c2 08 00             	ret    $0x8
5d0660:	5e                   	pop    %esi
5d0661:	8b c1                	mov    %ecx,%eax
5d0663:	5b                   	pop    %ebx
5d0664:	8b e5                	mov    %ebp,%esp
5d0666:	5d                   	pop    %ebp
5d0667:	c2 08 00             	ret    $0x8
5d066a:	cc                   	int3
5d066b:	cc                   	int3
5d066c:	cc                   	int3
5d066d:	cc                   	int3
5d066e:	cc                   	int3
5d066f:	cc                   	int3
5d0670:	55                   	push   %ebp
5d0671:	8b ec                	mov    %esp,%ebp
5d0673:	8b 45 08             	mov    0x8(%ebp),%eax
5d0676:	99                   	cltd
5d0677:	33 c2                	xor    %edx,%eax
5d0679:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
5d0680:	2b c2                	sub    %edx,%eax
5d0682:	f7 d8                	neg    %eax
5d0684:	89 41 04             	mov    %eax,0x4(%ecx)
5d0687:	5d                   	pop    %ebp
5d0688:	c2 04 00             	ret    $0x4
5d068b:	cc                   	int3
5d068c:	cc                   	int3
5d068d:	cc                   	int3
5d068e:	cc                   	int3
5d068f:	cc                   	int3
5d0690:	55                   	push   %ebp
5d0691:	8b ec                	mov    %esp,%ebp
5d0693:	51                   	push   %ecx
5d0694:	8b 45 08             	mov    0x8(%ebp),%eax
5d0697:	8b 55 10             	mov    0x10(%ebp),%edx
5d069a:	53                   	push   %ebx
5d069b:	56                   	push   %esi
5d069c:	8b 75 0c             	mov    0xc(%ebp),%esi
5d069f:	8b ce                	mov    %esi,%ecx
5d06a1:	57                   	push   %edi
5d06a2:	0f b6 7d 14          	movzbl 0x14(%ebp),%edi
5d06a6:	c1 e9 02             	shr    $0x2,%ecx
5d06a9:	4f                   	dec    %edi
5d06aa:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d06ad:	81 cf df df df df    	or     $0xdfdfdfdf,%edi
5d06b3:	8d 1c 88             	lea    (%eax,%ecx,4),%ebx
5d06b6:	f7 d9                	neg    %ecx
5d06b8:	89 5d 14             	mov    %ebx,0x14(%ebp)
5d06bb:	0f 84 8d 00 00 00    	je     0x5d074e
5d06c1:	f6 c3 03             	test   $0x3,%bl
5d06c4:	75 33                	jne    0x5d06f9
5d06c6:	eb 08                	jmp    0x5d06d0
5d06c8:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
5d06cf:	90                   	nop
5d06d0:	8b 04 8b             	mov    (%ebx,%ecx,4),%eax
5d06d3:	23 c7                	and    %edi,%eax
5d06d5:	69 c0 51 2d 9e cc    	imul   $0xcc9e2d51,%eax,%eax
5d06db:	c1 c8 11             	ror    $0x11,%eax
5d06de:	69 c0 93 35 87 1b    	imul   $0x1b873593,%eax,%eax
5d06e4:	33 d0                	xor    %eax,%edx
5d06e6:	c1 ca 13             	ror    $0x13,%edx
5d06e9:	81 c2 14 af dd fa    	add    $0xfaddaf14,%edx
5d06ef:	8d 14 92             	lea    (%edx,%edx,4),%edx
5d06f2:	83 c1 01             	add    $0x1,%ecx
5d06f5:	75 d9                	jne    0x5d06d0
5d06f7:	eb 55                	jmp    0x5d074e
5d06f9:	8d 73 02             	lea    0x2(%ebx),%esi
5d06fc:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5d06ff:	8d 34 8e             	lea    (%esi,%ecx,4),%esi
5d0702:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
5d0706:	8d 76 04             	lea    0x4(%esi),%esi
5d0709:	0f b6 46 fc          	movzbl -0x4(%esi),%eax
5d070d:	c1 e1 08             	shl    $0x8,%ecx
5d0710:	0b c8                	or     %eax,%ecx
5d0712:	0f b6 46 fb          	movzbl -0x5(%esi),%eax
5d0716:	c1 e1 08             	shl    $0x8,%ecx
5d0719:	0b c8                	or     %eax,%ecx
5d071b:	0f b6 46 fa          	movzbl -0x6(%esi),%eax
5d071f:	c1 e1 08             	shl    $0x8,%ecx
5d0722:	0b c8                	or     %eax,%ecx
5d0724:	23 cf                	and    %edi,%ecx
5d0726:	69 c1 51 2d 9e cc    	imul   $0xcc9e2d51,%ecx,%eax
5d072c:	c1 c8 11             	ror    $0x11,%eax
5d072f:	69 c0 93 35 87 1b    	imul   $0x1b873593,%eax,%eax
5d0735:	33 d0                	xor    %eax,%edx
5d0737:	c1 ca 13             	ror    $0x13,%edx
5d073a:	81 c2 14 af dd fa    	add    $0xfaddaf14,%edx
5d0740:	8d 14 92             	lea    (%edx,%edx,4),%edx
5d0743:	83 eb 01             	sub    $0x1,%ebx
5d0746:	75 ba                	jne    0x5d0702
5d0748:	8b 5d 14             	mov    0x14(%ebp),%ebx
5d074b:	8b 75 0c             	mov    0xc(%ebp),%esi
5d074e:	8b c6                	mov    %esi,%eax
5d0750:	33 c9                	xor    %ecx,%ecx
5d0752:	83 e0 03             	and    $0x3,%eax
5d0755:	83 e8 01             	sub    $0x1,%eax
5d0758:	74 1a                	je     0x5d0774
5d075a:	83 e8 01             	sub    $0x1,%eax
5d075d:	74 0c                	je     0x5d076b
5d075f:	83 e8 01             	sub    $0x1,%eax
5d0762:	75 28                	jne    0x5d078c
5d0764:	0f b6 4b 02          	movzbl 0x2(%ebx),%ecx
5d0768:	c1 e1 10             	shl    $0x10,%ecx
5d076b:	0f b6 43 01          	movzbl 0x1(%ebx),%eax
5d076f:	c1 e0 08             	shl    $0x8,%eax
5d0772:	33 c8                	xor    %eax,%ecx
5d0774:	0f b6 03             	movzbl (%ebx),%eax
5d0777:	33 c1                	xor    %ecx,%eax
5d0779:	23 c7                	and    %edi,%eax
5d077b:	69 c0 51 2d 9e cc    	imul   $0xcc9e2d51,%eax,%eax
5d0781:	c1 c8 11             	ror    $0x11,%eax
5d0784:	69 c0 93 35 87 1b    	imul   $0x1b873593,%eax,%eax
5d078a:	33 d0                	xor    %eax,%edx
5d078c:	33 d6                	xor    %esi,%edx
5d078e:	8b c2                	mov    %edx,%eax
5d0790:	c1 e8 10             	shr    $0x10,%eax
5d0793:	33 c2                	xor    %edx,%eax
5d0795:	69 c8 6b ca eb 85    	imul   $0x85ebca6b,%eax,%ecx
5d079b:	5f                   	pop    %edi
5d079c:	5e                   	pop    %esi
5d079d:	5b                   	pop    %ebx
5d079e:	8b c1                	mov    %ecx,%eax
5d07a0:	c1 e8 0d             	shr    $0xd,%eax
5d07a3:	33 c1                	xor    %ecx,%eax
5d07a5:	69 c8 35 ae b2 c2    	imul   $0xc2b2ae35,%eax,%ecx
5d07ab:	8b c1                	mov    %ecx,%eax
5d07ad:	c1 e8 10             	shr    $0x10,%eax
5d07b0:	33 c1                	xor    %ecx,%eax
5d07b2:	8b e5                	mov    %ebp,%esp
5d07b4:	5d                   	pop    %ebp
5d07b5:	c3                   	ret
5d07b6:	cc                   	int3
5d07b7:	cc                   	int3
5d07b8:	cc                   	int3
5d07b9:	cc                   	int3
5d07ba:	cc                   	int3
5d07bb:	cc                   	int3
5d07bc:	cc                   	int3
5d07bd:	cc                   	int3
5d07be:	cc                   	int3
5d07bf:	cc                   	int3
5d07c0:	55                   	push   %ebp
5d07c1:	8b ec                	mov    %esp,%ebp
5d07c3:	8b 45 08             	mov    0x8(%ebp),%eax
5d07c6:	56                   	push   %esi
5d07c7:	8b f1                	mov    %ecx,%esi
5d07c9:	b9 04 00 00 00       	mov    $0x4,%ecx
5d07ce:	3b c1                	cmp    %ecx,%eax
5d07d0:	0f 42 c1             	cmovb  %ecx,%eax
5d07d3:	8b 4d 10             	mov    0x10(%ebp),%ecx
5d07d6:	89 06                	mov    %eax,(%esi)
5d07d8:	8b 45 0c             	mov    0xc(%ebp),%eax
5d07db:	89 46 04             	mov    %eax,0x4(%esi)
5d07de:	33 c0                	xor    %eax,%eax
5d07e0:	66 89 46 28          	mov    %ax,0x28(%esi)
5d07e4:	89 46 20             	mov    %eax,0x20(%esi)
5d07e7:	89 46 1c             	mov    %eax,0x1c(%esi)
5d07ea:	8d 46 0c             	lea    0xc(%esi),%eax
5d07ed:	89 4e 08             	mov    %ecx,0x8(%esi)
5d07f0:	89 00                	mov    %eax,(%eax)
5d07f2:	89 46 10             	mov    %eax,0x10(%esi)
5d07f5:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
5d07fc:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
5d0803:	85 c9                	test   %ecx,%ecx
5d0805:	75 07                	jne    0x5d080e
5d0807:	8b ce                	mov    %esi,%ecx
5d0809:	e8 82 00 00 00       	call   0x5d0890
5d080e:	8b c6                	mov    %esi,%eax
5d0810:	5e                   	pop    %esi
5d0811:	5d                   	pop    %ebp
5d0812:	c2 0c 00             	ret    $0xc
5d0815:	cc                   	int3
5d0816:	cc                   	int3
5d0817:	cc                   	int3
5d0818:	cc                   	int3
5d0819:	cc                   	int3
5d081a:	cc                   	int3
5d081b:	cc                   	int3
5d081c:	cc                   	int3
5d081d:	cc                   	int3
5d081e:	cc                   	int3
5d081f:	cc                   	int3
5d0820:	55                   	push   %ebp
5d0821:	8b ec                	mov    %esp,%ebp
5d0823:	83 ec 08             	sub    $0x8,%esp
5d0826:	53                   	push   %ebx
5d0827:	57                   	push   %edi
5d0828:	8b f9                	mov    %ecx,%edi
5d082a:	89 7d f8             	mov    %edi,-0x8(%ebp)
5d082d:	8b 4f 20             	mov    0x20(%edi),%ecx
5d0830:	85 c9                	test   %ecx,%ecx
5d0832:	7e 14                	jle    0x5d0848
5d0834:	a1 f8 65 71 00       	mov    0x7165f8,%eax
5d0839:	85 c0                	test   %eax,%eax
5d083b:	74 0b                	je     0x5d0848
5d083d:	51                   	push   %ecx
5d083e:	68 98 0c 67 00       	push   $0x670c98
5d0843:	ff d0                	call   *%eax
5d0845:	83 c4 08             	add    $0x8,%esp
5d0848:	8b 47 10             	mov    0x10(%edi),%eax
5d084b:	8d 5f 0c             	lea    0xc(%edi),%ebx
5d084e:	3b c3                	cmp    %ebx,%eax
5d0850:	74 1f                	je     0x5d0871
5d0852:	8b f8                	mov    %eax,%edi
5d0854:	56                   	push   %esi
5d0855:	8b 77 04             	mov    0x4(%edi),%esi
5d0858:	e8 13 63 ff ff       	call   0x5c6b70
5d085d:	6a 00                	push   $0x0
5d085f:	57                   	push   %edi
5d0860:	8b c8                	mov    %eax,%ecx
5d0862:	8b 10                	mov    (%eax),%edx
5d0864:	ff 52 1c             	call   *0x1c(%edx)
5d0867:	8b fe                	mov    %esi,%edi
5d0869:	3b f3                	cmp    %ebx,%esi
5d086b:	75 e8                	jne    0x5d0855
5d086d:	8b 7d f8             	mov    -0x8(%ebp),%edi
5d0870:	5e                   	pop    %esi
5d0871:	33 c0                	xor    %eax,%eax
5d0873:	89 5f 10             	mov    %ebx,0x10(%edi)
5d0876:	66 89 47 28          	mov    %ax,0x28(%edi)
5d087a:	89 47 20             	mov    %eax,0x20(%edi)
5d087d:	89 47 1c             	mov    %eax,0x1c(%edi)
5d0880:	89 47 2c             	mov    %eax,0x2c(%edi)
5d0883:	89 47 24             	mov    %eax,0x24(%edi)
5d0886:	5f                   	pop    %edi
5d0887:	89 1b                	mov    %ebx,(%ebx)
5d0889:	5b                   	pop    %ebx
5d088a:	8b e5                	mov    %ebp,%esp
5d088c:	5d                   	pop    %ebp
5d088d:	c3                   	ret
5d088e:	cc                   	int3
5d088f:	cc                   	int3
5d0890:	55                   	push   %ebp
5d0891:	8b ec                	mov    %esp,%ebp
5d0893:	83 ec 08             	sub    $0x8,%esp
5d0896:	56                   	push   %esi
5d0897:	8b f1                	mov    %ecx,%esi
5d0899:	0f b7 56 28          	movzwl 0x28(%esi),%edx
5d089d:	8b 46 08             	mov    0x8(%esi),%eax
5d08a0:	8d 4a 01             	lea    0x1(%edx),%ecx
5d08a3:	83 f8 02             	cmp    $0x2,%eax
5d08a6:	74 33                	je     0x5d08db
5d08a8:	83 f8 03             	cmp    $0x3,%eax
5d08ab:	74 2e                	je     0x5d08db
5d08ad:	85 c0                	test   %eax,%eax
5d08af:	75 2f                	jne    0x5d08e0
5d08b1:	66 85 d2             	test   %dx,%dx
5d08b4:	74 2a                	je     0x5d08e0
5d08b6:	68 c8 0c 67 00       	push   $0x670cc8
5d08bb:	68 cb 00 00 00       	push   $0xcb
5d08c0:	68 f8 0c 67 00       	push   $0x670cf8
5d08c5:	e8 96 ab fe ff       	call   0x5bb460
5d08ca:	83 c4 0c             	add    $0xc,%esp
5d08cd:	84 c0                	test   %al,%al
5d08cf:	0f 85 54 01 00 00    	jne    0x5d0a29
5d08d5:	cc                   	int3
5d08d6:	5e                   	pop    %esi
5d08d7:	8b e5                	mov    %ebp,%esp
5d08d9:	5d                   	pop    %ebp
5d08da:	c3                   	ret
5d08db:	b9 01 00 00 00       	mov    $0x1,%ecx
5d08e0:	53                   	push   %ebx
5d08e1:	57                   	push   %edi
5d08e2:	8b 3e                	mov    (%esi),%edi
5d08e4:	ba 00 00 00 10       	mov    $0x10000000,%edx
5d08e9:	83 c7 04             	add    $0x4,%edi
5d08ec:	bb ef ff ff 7f       	mov    $0x7fffffef,%ebx
5d08f1:	85 c0                	test   %eax,%eax
5d08f3:	0f 45 da             	cmovne %edx,%ebx
5d08f6:	8b 56 04             	mov    0x4(%esi),%edx
5d08f9:	0f af d1             	imul   %ecx,%edx
5d08fc:	8b c2                	mov    %edx,%eax
5d08fe:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d0901:	0f af c7             	imul   %edi,%eax
5d0904:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d0907:	3b c3                	cmp    %ebx,%eax
5d0909:	76 32                	jbe    0x5d093d
5d090b:	33 d2                	xor    %edx,%edx
5d090d:	8b c3                	mov    %ebx,%eax
5d090f:	f7 f7                	div    %edi
5d0911:	89 45 f8             	mov    %eax,-0x8(%ebp)