#include"DumbRand.test.cuh"
#include"DumbRand.cuh"
#include<iostream>
#include<string>


namespace DumbRandTest {
	namespace {
		template<typename FunctionType, typename... Args>
		__device__ __host__ inline static void generateAndPrint(const char *comment, const char *typeHint, DumbRand &generator, FunctionType&& generate, Args... args) {
			printf("%s\n", comment);
			for (int i = 0; i < 16; i++) {
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf(" ");
				printf(typeHint, generate(generator, args...));
				printf("\n");
			}
			//	std::cout << generate(generator, args...) << " " << generate(generator, args...) << " " << generate(generator, args...) << " " << generate(generator, args...) << std::endl;
			//std::cout << std::endl;
			printf("\n");
		}

		template<typename FunctionType, typename... Args>
		void generateAndPrintStatistics(const std::string &comment, int start, int end, int sampleCount, FunctionType&& generate, Args... args) {
			std::cout << comment << std::endl;
			int possibleOutputs = (end - start + 1);
			int *counts = new int[possibleOutputs];
			for (int i = 0; i < possibleOutputs; i++) counts[i] = 0;
			DumbRand generator;
			generator.seed();
			std::cout << "Generating " << sampleCount << " samples between " << start << " and " << end << "...." << std::endl;
			for (int i = 0; i < sampleCount; i++)
				counts[((int)generate(generator, start, end, args...)) - start]++;
			for (int i = 0; i < possibleOutputs; i++)
				std::cout << (i + start) << ": " << counts[i] << std::endl;
			std::cout << std::endl;
			delete[] counts;
		}

		__device__ __host__ inline static unsigned int getUnsigned(DumbRand &generator) { return generator.get(); }
		__device__ __host__ inline static int getSigned(DumbRand &generator) { return generator.getInt(); }
		__device__ __host__ inline static float getFloat(DumbRand &generator) { return generator.getFloat(); }
		
		__device__ __host__ inline static unsigned int getUnsignedRange(DumbRand &generator, uint32_t start, uint32_t end) { return generator.rangeUnsigned(start, end); }
		__device__ __host__ inline static int getSignedRange(DumbRand &generator, int start, int end) { return generator.rangeSigned(start, end); }
		__device__ __host__ inline static float getFloatRange(DumbRand &generator, int start, int end) { return generator.range((float)start, (float)end); }

		__global__ static void getOnKernel(DumbRand generator) {
			generateAndPrint("Generating some unsigned numbers with DumbRand (Kernel):", "%u", generator, getUnsigned);
			generateAndPrint("Generating some signed numbers with DumbRand (Kernel):", "%d", generator, getSigned);
			generateAndPrint("Generating some floating point numbers with DumbRand (Kernel):", "%f", generator, getFloat);
			generateAndPrint("Generating some unsigned numbers from 5 to 10 with DumbRand (Kernel):", "%u", generator, getUnsignedRange, 5, 10);
			generateAndPrint("Generating some signed numbers from 5 to 10 with DumbRand (Kernel):", "%d", generator, getSignedRange, 5, 10);
			generateAndPrint("Generating some floating point numbers from 5 to 10 with DumbRand (Kernel):", "%f", generator, getFloatRange, 5, 10);
		}
	}

	void generateUnsigned() {
		DumbRand generator; generator.seed();
		generateAndPrint("Generating some unsigned numbers with DumbRand:", "%u", generator, getUnsigned);
	}
	void generateSigned() {
		DumbRand generator; generator.seed();
		generateAndPrint("Generating some signed numbers with DumbRand:", "%d", generator, getSigned);
	}
	void generateFloat() {
		DumbRand generator; generator.seed();
		generateAndPrint("Generating some floating point numbers with DumbRand:", "%f", generator, getFloat);
	}

	void generateUnsignedRange() {
		DumbRand generator; generator.seed(); 
		generateAndPrint("Generating some unsigned numbers from 5 to 10 with DumbRand:", "%u", generator, getUnsignedRange, 5, 10);
	}
	void generateSignedRange() {
		DumbRand generator; generator.seed(); 
		generateAndPrint("Generating some signed numbers from 5 to 10 with DumbRand:", "%d", generator, getSignedRange, 5, 10);
	}
	void generateFloatRange() {
		DumbRand generator; generator.seed(); 
		generateAndPrint("Generating some floating point numbers from 5 to 10 with DumbRand:", "%f", generator, getFloatRange, 5, 10);
	}

	void countStatisticsUnsigned() { generateAndPrintStatistics("Counting statistics for unsigned numbers", 4, 32, 802402400, getUnsignedRange); }
	void countStatisticsSigned() { generateAndPrintStatistics("Counting statistics for signed numbers", 4, 32, 802402400, getSignedRange); }
	void countStatisticsFloat() { generateAndPrintStatistics("Counting statistics for floating point numbers", 4, 32, 802402400, getFloatRange); }
	
	void generateOnKernel() {
		DumbRand generator; generator.seed();
		getOnKernel<<<1, 1>>>(generator);
		cudaDeviceSynchronize();
	}

	void test() {
		generateUnsigned();
		generateSigned();
		generateFloat();

		generateUnsignedRange();
		generateSignedRange();
		generateFloatRange();

		countStatisticsUnsigned();
		countStatisticsSigned();
		countStatisticsFloat();
		
		generateOnKernel();
	}
}



	.file	"tmpxft_002b8921_00000000-6_DumbRand.test.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4220:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4220:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.align 2
	.type	_ZNSolsEPFRSoS_E.isra.0, @function
_ZNSolsEPFRSoS_E.isra.0:
.LFB4941:
	.cfi_startproc
	jmp	*%rsi
	.cfi_endproc
.LFE4941:
	.size	_ZNSolsEPFRSoS_E.isra.0, .-_ZNSolsEPFRSoS_E.isra.0
	.section	.text._ZN8DumbRand4seedEv,"axG",@progbits,_ZN8DumbRand4seedEv,comdat
	.align 2
	.weak	_ZN8DumbRand4seedEv
	.type	_ZN8DumbRand4seedEv, @function
_ZN8DumbRand4seedEv:
.LFB3166:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	leaq	_ZN8DumbRand4lockE(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%r12, %rdi
	pushq	%rdx
	.cfi_def_cfa_offset 64
	call	pthread_mutex_lock@PLT
	testl	%eax, %eax
	je	.L4
	movl	%eax, %edi
	call	_ZSt20__throw_system_errori@PLT
.L4:
	call	rand@PLT
	movl	%eax, %ebp
	call	rand@PLT
	movl	%eax, %r13d
	call	rand@PLT
	movl	%eax, %r14d
	call	rand@PLT
	movl	%eax, %r15d
	call	rand@PLT
	movl	%r15d, 4(%rbx)
	movq	%r12, %rdi
	movl	%eax, (%rbx)
	movl	%r14d, 8(%rbx)
	movl	%r13d, 12(%rbx)
	movl	%ebp, 16(%rbx)
	popq	%rax
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	pthread_mutex_unlock@PLT
	.cfi_endproc
.LFE3166:
	.size	_ZN8DumbRand4seedEv, .-_ZN8DumbRand4seedEv
	.section	.text._ZN8DumbRand3getEv,"axG",@progbits,_ZN8DumbRand3getEv,comdat
	.align 2
	.weak	_ZN8DumbRand3getEv
	.type	_ZN8DumbRand3getEv, @function
_ZN8DumbRand3getEv:
.LFB3167:
	.cfi_startproc
	endbr64
	movl	12(%rdi), %eax
	movl	(%rdi), %esi
	movl	%eax, %ecx
	shrl	$2, %ecx
	xorl	%eax, %ecx
	movl	8(%rdi), %eax
	leal	(%rcx,%rcx), %edx
	movl	%eax, 12(%rdi)
	movl	4(%rdi), %eax
	movl	%esi, 4(%rdi)
	movl	%eax, 8(%rdi)
	movl	%esi, %eax
	sall	$4, %eax
	xorl	%esi, %eax
	xorl	%ecx, %eax
	xorl	%eax, %edx
	movl	16(%rdi), %eax
	movl	%edx, (%rdi)
	addl	$362437, %eax
	movl	%eax, 16(%rdi)
	addl	%edx, %eax
	ret
	.cfi_endproc
.LFE3167:
	.size	_ZN8DumbRand3getEv, .-_ZN8DumbRand3getEv
	.section	.text._ZN8DumbRand13rangeUnsignedEjj,"axG",@progbits,_ZN8DumbRand13rangeUnsignedEjj,comdat
	.align 2
	.weak	_ZN8DumbRand13rangeUnsignedEjj
	.type	_ZN8DumbRand13rangeUnsignedEjj, @function
_ZN8DumbRand13rangeUnsignedEjj:
.LFB3169:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movl	%edx, %ebx
	pushq	%rax
	.cfi_def_cfa_offset 32
	call	_ZN8DumbRand3getEv
	movl	%ebx, %ecx
	xorl	%edx, %edx
	subl	%ebp, %ecx
	divl	%ecx
	leal	(%rdx,%rbp), %eax
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE3169:
	.size	_ZN8DumbRand13rangeUnsignedEjj, .-_ZN8DumbRand13rangeUnsignedEjj
	.text
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L16getUnsignedRangeER8DumbRandjj, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L16getUnsignedRangeER8DumbRandjj:
.LFB4204:
	.cfi_startproc
	endbr64
	jmp	_ZN8DumbRand13rangeUnsignedEjj
	.cfi_endproc
.LFE4204:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L16getUnsignedRangeER8DumbRandjj, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L16getUnsignedRangeER8DumbRandjj
	.section	.text._ZN8DumbRand11rangeSignedEii,"axG",@progbits,_ZN8DumbRand11rangeSignedEii,comdat
	.align 2
	.weak	_ZN8DumbRand11rangeSignedEii
	.type	_ZN8DumbRand11rangeSignedEii, @function
_ZN8DumbRand11rangeSignedEii:
.LFB3170:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movl	%edx, %ebx
	pushq	%rax
	.cfi_def_cfa_offset 32
	call	_ZN8DumbRand3getEv
	movl	%ebx, %ecx
	shrl	%eax
	subl	%ebp, %ecx
	cltd
	idivl	%ecx
	leal	(%rdx,%rbp), %eax
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE3170:
	.size	_ZN8DumbRand11rangeSignedEii, .-_ZN8DumbRand11rangeSignedEii
	.text
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L14getSignedRangeER8DumbRandii, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L14getSignedRangeER8DumbRandii:
.LFB4205:
	.cfi_startproc
	endbr64
	jmp	_ZN8DumbRand11rangeSignedEii
	.cfi_endproc
.LFE4205:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L14getSignedRangeER8DumbRandii, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L14getSignedRangeER8DumbRandii
	.section	.text._ZN8DumbRand8getFloatEv,"axG",@progbits,_ZN8DumbRand8getFloatEv,comdat
	.align 2
	.weak	_ZN8DumbRand8getFloatEv
	.type	_ZN8DumbRand8getFloatEv, @function
_ZN8DumbRand8getFloatEv:
.LFB3171:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZN8DumbRand3getEv
	movl	%eax, %eax
	cvtsi2ssq	%rax, %xmm0
	mulss	.LC0(%rip), %xmm0
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE3171:
	.size	_ZN8DumbRand8getFloatEv, .-_ZN8DumbRand8getFloatEv
	.section	.text._ZN8DumbRand5rangeEff,"axG",@progbits,_ZN8DumbRand5rangeEff,comdat
	.align 2
	.weak	_ZN8DumbRand5rangeEff
	.type	_ZN8DumbRand5rangeEff, @function
_ZN8DumbRand5rangeEff:
.LFB3172:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movss	%xmm1, 8(%rsp)
	movss	%xmm0, 12(%rsp)
	call	_ZN8DumbRand8getFloatEv
	movss	12(%rsp), %xmm2
	movss	8(%rsp), %xmm1
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	subss	%xmm2, %xmm1
	mulss	%xmm0, %xmm1
	movaps	%xmm1, %xmm0
	addss	%xmm2, %xmm0
	ret
	.cfi_endproc
.LFE3172:
	.size	_ZN8DumbRand5rangeEff, .-_ZN8DumbRand5rangeEff
	.text
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L13getFloatRangeER8DumbRandii, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L13getFloatRangeER8DumbRandii:
.LFB4206:
	.cfi_startproc
	endbr64
	cvtsi2ssl	%esi, %xmm0
	cvtsi2ssl	%edx, %xmm1
	jmp	_ZN8DumbRand5rangeEff
	.cfi_endproc
.LFE4206:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L13getFloatRangeER8DumbRandii, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L13getFloatRangeER8DumbRandii
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC1:
	.string	"Generating some unsigned numbers with DumbRand:"
.LC2:
	.string	"%s\n"
.LC3:
	.string	"%u"
.LC4:
	.string	" "
.LC5:
	.string	"\n"
	.text
	.globl	_ZN12DumbRandTest16generateUnsignedEv
	.type	_ZN12DumbRandTest16generateUnsignedEv, @function
_ZN12DumbRandTest16generateUnsignedEv:
.LFB4207:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$16, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	.LC3(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rbx
	movq	%rbx, %rdi
	call	_ZN8DumbRand4seedEv
	leaq	.LC1(%rip), %rdx
	leaq	.LC2(%rip), %rsi
	xorl	%eax, %eax
	movl	$2, %edi
	call	__printf_chk@PLT
.L22:
	movq	%rbx, %rdi
	leaq	.LC4(%rip), %r12
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	leaq	.LC5(%rip), %r12
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	xorl	%eax, %eax
	movq	%r12, %rsi
	movl	$2, %edi
	call	__printf_chk@PLT
	decl	%r13d
	jne	.L22
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L23
	call	__stack_chk_fail@PLT
.L23:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4207:
	.size	_ZN12DumbRandTest16generateUnsignedEv, .-_ZN12DumbRandTest16generateUnsignedEv
	.section	.rodata.str1.1
.LC6:
	.string	"Generating some signed numbers with DumbRand:"
.LC7:
	.string	"%d"
	.text
	.globl	_ZN12DumbRandTest14generateSignedEv
	.type	_ZN12DumbRandTest14generateSignedEv, @function
_ZN12DumbRandTest14generateSignedEv:
.LFB4208:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$16, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	.LC7(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rbx
	movq	%rbx, %rdi
	call	_ZN8DumbRand4seedEv
	leaq	.LC6(%rip), %rdx
	leaq	.LC2(%rip), %rsi
	xorl	%eax, %eax
	movl	$2, %edi
	call	__printf_chk@PLT
.L28:
	movq	%rbx, %rdi
	leaq	.LC4(%rip), %r12
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	leaq	.LC5(%rip), %r12
	call	_ZN8DumbRand3getEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	xorl	%eax, %eax
	movq	%r12, %rsi
	movl	$2, %edi
	call	__printf_chk@PLT
	decl	%r13d
	jne	.L28
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L29
	call	__stack_chk_fail@PLT
.L29:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4208:
	.size	_ZN12DumbRandTest14generateSignedEv, .-_ZN12DumbRandTest14generateSignedEv
	.section	.rodata.str1.1
.LC8:
	.string	"Generating some floating point numbers with DumbRand:"
.LC9:
	.string	"%f"
	.text
	.globl	_ZN12DumbRandTest13generateFloatEv
	.type	_ZN12DumbRandTest13generateFloatEv, @function
_ZN12DumbRandTest13generateFloatEv:
.LFB4209:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$16, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	.LC9(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rbx
	movq	%rbx, %rdi
	call	_ZN8DumbRand4seedEv
	leaq	.LC8(%rip), %rdx
	leaq	.LC2(%rip), %rsi
	xorl	%eax, %eax
	movl	$2, %edi
	call	__printf_chk@PLT
.L34:
	movq	%rbx, %rdi
	leaq	.LC4(%rip), %r12
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	leaq	.LC5(%rip), %r12
	call	__printf_chk@PLT
	movq	%rbx, %rdi
	call	_ZN8DumbRand8getFloatEv
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	xorl	%eax, %eax
	movq	%r12, %rsi
	movl	$2, %edi
	call	__printf_chk@PLT
	decl	%r13d
	jne	.L34
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4209:
	.size	_ZN12DumbRandTest13generateFloatEv, .-_ZN12DumbRandTest13generateFloatEv
	.section	.rodata.str1.1
.LC10:
	.string	"Generating some unsigned numbers from 5 to 10 with DumbRand:"
	.text
	.globl	_ZN12DumbRandTest21generateUnsignedRangeEv
	.type	_ZN12DumbRandTest21generateUnsignedRangeEv, @function
_ZN12DumbRandTest21generateUnsignedRangeEv:
.LFB4210:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$16, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	.LC3(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rbx
	movq	%rbx, %rdi
	call	_ZN8DumbRand4seedEv
	leaq	.LC10(%rip), %rdx
	leaq	.LC2(%rip), %rsi
	xorl	%eax, %eax
	movl	$2, %edi
	call	__printf_chk@PLT
.L40:
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	leaq	.LC4(%rip), %r12
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand13rangeUnsignedEjj
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movq	%rbx, %rdi
	movl	$5, %esi
	call	_ZN8DumbRand13rangeUnsignedEjj
	leaq	.LC5(%rip), %r12
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	xorl	%eax, %eax
	movq	%r12, %rsi
	movl	$2, %edi
	call	__printf_chk@PLT
	decl	%r13d
	jne	.L40
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L41
	call	__stack_chk_fail@PLT
.L41:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4210:
	.size	_ZN12DumbRandTest21generateUnsignedRangeEv, .-_ZN12DumbRandTest21generateUnsignedRangeEv
	.section	.rodata.str1.1
.LC11:
	.string	"Generating some signed numbers from 5 to 10 with DumbRand:"
	.text
	.globl	_ZN12DumbRandTest19generateSignedRangeEv
	.type	_ZN12DumbRandTest19generateSignedRangeEv, @function
_ZN12DumbRandTest19generateSignedRangeEv:
.LFB4211:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$16, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	.LC7(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rbx
	movq	%rbx, %rdi
	call	_ZN8DumbRand4seedEv
	leaq	.LC11(%rip), %rdx
	leaq	.LC2(%rip), %rsi
	xorl	%eax, %eax
	movl	$2, %edi
	call	__printf_chk@PLT
.L46:
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	leaq	.LC4(%rip), %r12
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movl	$5, %esi
	movq	%rbx, %rdi
	call	_ZN8DumbRand11rangeSignedEii
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movl	$10, %edx
	movq	%rbx, %rdi
	movl	$5, %esi
	call	_ZN8DumbRand11rangeSignedEii
	leaq	.LC5(%rip), %r12
	movq	%rbp, %rsi
	movl	$2, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	xorl	%eax, %eax
	movq	%r12, %rsi
	movl	$2, %edi
	call	__printf_chk@PLT
	decl	%r13d
	jne	.L46
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L47
	call	__stack_chk_fail@PLT
.L47:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4211:
	.size	_ZN12DumbRandTest19generateSignedRangeEv, .-_ZN12DumbRandTest19generateSignedRangeEv
	.section	.rodata.str1.1
.LC12:
	.string	"Generating some floating point numbers from 5 to 10 with DumbRand:"
	.text
	.globl	_ZN12DumbRandTest18generateFloatRangeEv
	.type	_ZN12DumbRandTest18generateFloatRangeEv, @function
_ZN12DumbRandTest18generateFloatRangeEv:
.LFB4212:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$16, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rbx
	movq	%rbx, %rdi
	call	_ZN8DumbRand4seedEv
	leaq	.LC12(%rip), %rdx
	leaq	.LC2(%rip), %rsi
	xorl	%eax, %eax
	movl	$2, %edi
	call	__printf_chk@PLT
.L52:
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	leaq	.LC9(%rip), %rbp
	leaq	.LC4(%rip), %r12
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	movq	%r12, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	movss	.LC13(%rip), %xmm1
	movss	.LC14(%rip), %xmm0
	movq	%rbx, %rdi
	call	_ZN8DumbRand5rangeEff
	movq	%rbp, %rsi
	movl	$2, %edi
	movb	$1, %al
	leaq	.LC5(%rip), %rbp
	cvtss2sd	%xmm0, %xmm0
	call	__printf_chk@PLT
	xorl	%eax, %eax
	movq	%rbp, %rsi
	movl	$2, %edi
	call	__printf_chk@PLT
	decl	%r13d
	jne	.L52
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L53
	call	__stack_chk_fail@PLT
.L53:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbp, %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4212:
	.size	_ZN12DumbRandTest18generateFloatRangeEv, .-_ZN12DumbRandTest18generateFloatRangeEv
	.globl	_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand
	.hidden	_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand
	.type	_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand, @function
_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand:
.LFB4242:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rcx
	movq	%rdi, 64(%rsp)
	movq	%rsp, %rdx
	movabsq	$4294967297, %rax
	leaq	28(%rsp), %rsi
	leaq	16(%rsp), %rdi
	movl	$1, 24(%rsp)
	movq	%rax, 16(%rsp)
	movq	%rax, 28(%rsp)
	movl	$1, 36(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L57
	pushq	8(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L11getOnKernelE8DumbRand(%rip), %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 112
	movq	44(%rsp), %rcx
	movl	52(%rsp), %r8d
	movq	32(%rsp), %rsi
	movl	40(%rsp), %edx
	leaq	80(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L57:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L59
	call	__stack_chk_fail@PLT
.L59:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4242:
	.size	_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand, .-_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L11getOnKernelE8DumbRand, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L11getOnKernelE8DumbRand:
.LFB4243:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	16(%rsp), %rdi
	call	_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4243:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L11getOnKernelE8DumbRand, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L11getOnKernelE8DumbRand
	.globl	_ZN12DumbRandTest16generateOnKernelEv
	.type	_ZN12DumbRandTest16generateOnKernelEv, @function
_ZN12DumbRandTest16generateOnKernelEv:
.LFB4216:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rdi
	call	_ZN8DumbRand4seedEv
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$1, %ecx
	movabsq	$4294967297, %rdi
	movl	$1, %esi
	movq	%rdi, %rdx
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L64
	movups	32(%rsp), %xmm0
	movl	48(%rsp), %eax
	leaq	52(%rsp), %rdi
	movl	%eax, 68(%rsp)
	movups	%xmm0, 52(%rsp)
	call	_Z105__device_stub__ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRandR8DumbRand
.L64:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L65
	call	__stack_chk_fail@PLT
.L65:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	jmp	cudaDeviceSynchronize@PLT
	.cfi_endproc
.LFE4216:
	.size	_ZN12DumbRandTest16generateOnKernelEv, .-_ZN12DumbRandTest16generateOnKernelEv
	.section	.rodata.str1.1
.LC15:
	.string	"_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b111getOnKernelE8DumbRand"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4245:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC15(%rip), %rdx
	movq	%rax, %rdi
	leaq	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L11getOnKernelE8DumbRand(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFunction@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rdx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE4245:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.rodata._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.str1.1,"aMS",@progbits,1
.LC16:
	.string	"basic_string: construction from null is not valid"
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC5IS3_EEPKcRKS3_,comdat
	.align 2
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, @function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_:
.LFB4586:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	16(%rdi), %rax
	movq	%rax, (%rdi)
	testq	%rsi, %rsi
	jne	.L71
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L76
	leaq	.LC16(%rip), %rdi
	call	_ZSt19__throw_logic_errorPKc@PLT
.L71:
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	%rsi, %rbp
	call	strlen@PLT
	movq	%rax, (%rsp)
	leaq	0(%rbp,%rax), %r12
	cmpq	$15, %rax
	jbe	.L73
	movq	%rsp, %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm@PLT
	movq	%rax, (%rbx)
	movq	(%rsp), %rax
	movq	%rax, 16(%rbx)
.L73:
	movq	(%rbx), %rdi
	movq	%r12, %rdx
	movq	%rbp, %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@PLT
	movq	(%rsp), %rax
	movq	(%rbx), %rdx
	movq	%rax, 8(%rbx)
	movb	$0, (%rdx,%rax)
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L74
.L76:
	call	__stack_chk_fail@PLT
.L74:
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4586:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, .-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
	.set	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.section	.rodata._ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_.str1.1,"aMS",@progbits,1
.LC17:
	.string	"Generating "
.LC18:
	.string	" samples between "
.LC19:
	.string	" and "
.LC20:
	.string	"...."
.LC21:
	.string	": "
	.section	.text._ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_,"axG",@progbits,_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_,comdat
	.weak	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.hidden	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_:
.LFB4588:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%ecx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%esi, %ebp
	movq	%rdi, %rsi
	leaq	_ZSt4cout(%rip), %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movl	%edx, 4(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movl	4(%rsp), %r12d
	movabsq	$2305843009213693950, %rax
	subl	%ebp, %r12d
	incl	%r12d
	movslq	%r12d, %rdi
	cmpq	%rdi, %rax
	jb	.L78
	salq	$2, %rdi
	call	_Znam@PLT
	movq	%rax, %rbx
	xorl	%eax, %eax
	jmp	.L79
.L78:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L88
	call	__cxa_throw_bad_array_new_length@PLT
.L79:
	cmpl	%eax, %r12d
	jle	.L89
	xorl	%edx, %edx
	movl	%edx, (%rbx,%rax,4)
	incq	%rax
	jmp	.L79
.L89:
	leaq	20(%rsp), %rax
	xorl	%r13d, %r13d
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	call	_ZN8DumbRand4seedEv
	leaq	.LC17(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r14d, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC18(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC19(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	4(%rsp), %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC20(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.L82:
	cmpl	%r14d, %r13d
	jge	.L90
	movl	4(%rsp), %edx
	movq	8(%rsp), %rdi
	movl	%ebp, %esi
	incl	%r13d
	call	*%r15
	subl	%ebp, %eax
	cltq
	incl	(%rbx,%rax,4)
	jmp	.L82
.L90:
	xorl	%r13d, %r13d
	leaq	.LC21(%rip), %r14
.L84:
	cmpl	%r13d, %r12d
	jle	.L91
	leal	0(%rbp,%r13), %esi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZNSolsEi@PLT
	movq	%r14, %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	(%rbx,%r13,4), %esi
	incq	%r13
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	jmp	.L84
.L91:
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movq	%rbx, %rdi
	call	_ZdaPv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L86
.L88:
	call	__stack_chk_fail@PLT
.L86:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4588:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.section	.rodata.str1.1
.LC22:
	.string	"Counting statistics for unsigned numbers"
	.text
	.globl	_ZN12DumbRandTest23countStatisticsUnsignedEv
	.type	_ZN12DumbRandTest23countStatisticsUnsignedEv, @function
_ZN12DumbRandTest23countStatisticsUnsignedEv:
.LFB4213:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4213
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	.LC22(%rip), %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbx
	leaq	7(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB0:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE0:
	leaq	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L16getUnsignedRangeER8DumbRandjj(%rip), %r8
	movl	$802402400, %ecx
	movq	%rbx, %rdi
	movl	$32, %edx
	movl	$4, %esi
.LEHB1:
	call	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFjR8DumbRandjjEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
.LEHE1:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L95
	jmp	.L97
.L96:
	endbr64
	movq	%rax, %rbp
.L93:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L97
	movq	%rbp, %rdi
.LEHB2:
	call	_Unwind_Resume@PLT
.LEHE2:
.L97:
	call	__stack_chk_fail@PLT
.L95:
	addq	$56, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4213:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table,"a",@progbits
.LLSDA4213:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4213-.LLSDACSB4213
.LLSDACSB4213:
	.uleb128 .LEHB0-.LFB4213
	.uleb128 .LEHE0-.LEHB0
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB1-.LFB4213
	.uleb128 .LEHE1-.LEHB1
	.uleb128 .L96-.LFB4213
	.uleb128 0
	.uleb128 .LEHB2-.LFB4213
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
.LLSDACSE4213:
	.text
	.size	_ZN12DumbRandTest23countStatisticsUnsignedEv, .-_ZN12DumbRandTest23countStatisticsUnsignedEv
	.section	.text._ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_,"axG",@progbits,_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_,comdat
	.weak	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.hidden	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_:
.LFB4589:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%ecx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%esi, %ebp
	movq	%rdi, %rsi
	leaq	_ZSt4cout(%rip), %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movl	%edx, 4(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movl	4(%rsp), %r12d
	movabsq	$2305843009213693950, %rax
	subl	%ebp, %r12d
	incl	%r12d
	movslq	%r12d, %rdi
	cmpq	%rdi, %rax
	jb	.L100
	salq	$2, %rdi
	call	_Znam@PLT
	movq	%rax, %rbx
	xorl	%eax, %eax
	jmp	.L101
.L100:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L110
	call	__cxa_throw_bad_array_new_length@PLT
.L101:
	cmpl	%eax, %r12d
	jle	.L111
	xorl	%edx, %edx
	movl	%edx, (%rbx,%rax,4)
	incq	%rax
	jmp	.L101
.L111:
	leaq	20(%rsp), %rax
	xorl	%r13d, %r13d
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	call	_ZN8DumbRand4seedEv
	leaq	.LC17(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r14d, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC18(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC19(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	4(%rsp), %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC20(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.L104:
	cmpl	%r14d, %r13d
	jge	.L112
	movl	4(%rsp), %edx
	movq	8(%rsp), %rdi
	movl	%ebp, %esi
	incl	%r13d
	call	*%r15
	subl	%ebp, %eax
	cltq
	incl	(%rbx,%rax,4)
	jmp	.L104
.L112:
	xorl	%r13d, %r13d
	leaq	.LC21(%rip), %r14
.L106:
	cmpl	%r13d, %r12d
	jle	.L113
	leal	0(%rbp,%r13), %esi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZNSolsEi@PLT
	movq	%r14, %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	(%rbx,%r13,4), %esi
	incq	%r13
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	jmp	.L106
.L113:
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movq	%rbx, %rdi
	call	_ZdaPv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L108
.L110:
	call	__stack_chk_fail@PLT
.L108:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4589:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.section	.rodata.str1.1
.LC23:
	.string	"Counting statistics for signed numbers"
	.text
	.globl	_ZN12DumbRandTest21countStatisticsSignedEv
	.type	_ZN12DumbRandTest21countStatisticsSignedEv, @function
_ZN12DumbRandTest21countStatisticsSignedEv:
.LFB4214:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4214
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	.LC23(%rip), %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbx
	leaq	7(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB3:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE3:
	leaq	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L14getSignedRangeER8DumbRandii(%rip), %r8
	movl	$802402400, %ecx
	movq	%rbx, %rdi
	movl	$32, %edx
	movl	$4, %esi
.LEHB4:
	call	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFiR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
.LEHE4:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L117
	jmp	.L119
.L118:
	endbr64
	movq	%rax, %rbp
.L115:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L119
	movq	%rbp, %rdi
.LEHB5:
	call	_Unwind_Resume@PLT
.LEHE5:
.L119:
	call	__stack_chk_fail@PLT
.L117:
	addq	$56, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4214:
	.section	.gcc_except_table
.LLSDA4214:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4214-.LLSDACSB4214
.LLSDACSB4214:
	.uleb128 .LEHB3-.LFB4214
	.uleb128 .LEHE3-.LEHB3
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB4-.LFB4214
	.uleb128 .LEHE4-.LEHB4
	.uleb128 .L118-.LFB4214
	.uleb128 0
	.uleb128 .LEHB5-.LFB4214
	.uleb128 .LEHE5-.LEHB5
	.uleb128 0
	.uleb128 0
.LLSDACSE4214:
	.text
	.size	_ZN12DumbRandTest21countStatisticsSignedEv, .-_ZN12DumbRandTest21countStatisticsSignedEv
	.section	.text._ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_,"axG",@progbits,_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_,comdat
	.weak	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.hidden	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.type	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_, @function
_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_:
.LFB4590:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%ecx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%esi, %ebp
	movq	%rdi, %rsi
	leaq	_ZSt4cout(%rip), %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movl	%edx, 4(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movl	4(%rsp), %r12d
	movabsq	$2305843009213693950, %rax
	subl	%ebp, %r12d
	incl	%r12d
	movslq	%r12d, %rdi
	cmpq	%rdi, %rax
	jb	.L122
	salq	$2, %rdi
	call	_Znam@PLT
	movq	%rax, %rbx
	xorl	%eax, %eax
	jmp	.L123
.L122:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L132
	call	__cxa_throw_bad_array_new_length@PLT
.L123:
	cmpl	%eax, %r12d
	jle	.L133
	xorl	%edx, %edx
	movl	%edx, (%rbx,%rax,4)
	incq	%rax
	jmp	.L123
.L133:
	leaq	20(%rsp), %rax
	xorl	%r13d, %r13d
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	call	_ZN8DumbRand4seedEv
	leaq	.LC17(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r14d, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC18(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC19(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	4(%rsp), %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC20(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.L126:
	cmpl	%r14d, %r13d
	jge	.L134
	movl	4(%rsp), %edx
	movq	8(%rsp), %rdi
	movl	%ebp, %esi
	incl	%r13d
	call	*%r15
	cvttss2sil	%xmm0, %eax
	subl	%ebp, %eax
	cltq
	incl	(%rbx,%rax,4)
	jmp	.L126
.L134:
	xorl	%r13d, %r13d
	leaq	.LC21(%rip), %r14
.L128:
	cmpl	%r13d, %r12d
	jle	.L135
	leal	0(%rbp,%r13), %esi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZNSolsEi@PLT
	movq	%r14, %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	(%rbx,%r13,4), %esi
	incq	%r13
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	jmp	.L128
.L135:
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movq	%rbx, %rdi
	call	_ZdaPv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L130
.L132:
	call	__stack_chk_fail@PLT
.L130:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4590:
	.size	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_, .-_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
	.section	.rodata.str1.1
.LC24:
	.string	"Counting statistics for floating point numbers"
	.text
	.globl	_ZN12DumbRandTest20countStatisticsFloatEv
	.type	_ZN12DumbRandTest20countStatisticsFloatEv, @function
_ZN12DumbRandTest20countStatisticsFloatEv:
.LFB4215:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4215
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	.LC24(%rip), %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbx
	leaq	7(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB6:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE6:
	leaq	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b1L13getFloatRangeER8DumbRandii(%rip), %r8
	movl	$802402400, %ecx
	movq	%rbx, %rdi
	movl	$32, %edx
	movl	$4, %esi
.LEHB7:
	call	_ZN12DumbRandTest49_GLOBAL__N__350aeedc_16_DumbRand_test_cu_44a373b126generateAndPrintStatisticsIRFfR8DumbRandiiEJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiOT_DpT0_
.LEHE7:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L139
	jmp	.L141
.L140:
	endbr64
	movq	%rax, %rbp
.L137:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L141
	movq	%rbp, %rdi
.LEHB8:
	call	_Unwind_Resume@PLT
.LEHE8:
.L141:
	call	__stack_chk_fail@PLT
.L139:
	addq	$56, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4215:
	.section	.gcc_except_table
.LLSDA4215:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4215-.LLSDACSB4215
.LLSDACSB4215:
	.uleb128 .LEHB6-.LFB4215
	.uleb128 .LEHE6-.LEHB6
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB7-.LFB4215
	.uleb128 .LEHE7-.LEHB7
	.uleb128 .L140-.LFB4215
	.uleb128 0
	.uleb128 .LEHB8-.LFB4215
	.uleb128 .LEHE8-.LEHB8
	.uleb128 0
	.uleb128 0
.LLSDACSE4215:
	.text
	.size	_ZN12DumbRandTest20countStatisticsFloatEv, .-_ZN12DumbRandTest20countStatisticsFloatEv
	.globl	_ZN12DumbRandTest4testEv
	.type	_ZN12DumbRandTest4testEv, @function
_ZN12DumbRandTest4testEv:
.LFB4217:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZN12DumbRandTest16generateUnsignedEv
	call	_ZN12DumbRandTest14generateSignedEv
	call	_ZN12DumbRandTest13generateFloatEv
	call	_ZN12DumbRandTest21generateUnsignedRangeEv
	call	_ZN12DumbRandTest19generateSignedRangeEv
	call	_ZN12DumbRandTest18generateFloatRangeEv
	call	_ZN12DumbRandTest23countStatisticsUnsignedEv
	call	_ZN12DumbRandTest21countStatisticsSignedEv
	call	_ZN12DumbRandTest20countStatisticsFloatEv
	popq	%rdx
	.cfi_def_cfa_offset 8
	jmp	_ZN12DumbRandTest16generateOnKernelEv
	.cfi_endproc
.LFE4217:
	.size	_ZN12DumbRandTest4testEv, .-_ZN12DumbRandTest4testEv
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	796917760
	.align 4
.LC13:
	.long	1092616192
	.align 4
.LC14:
	.long	1084227584
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

#pragma once
#include <hip/hip_runtime.h>



namespace DumbRandTest {
	void generateUnsigned();
	void generateSigned();
	void generateFloat();

	void generateUnsignedRange();
	void generateSignedRange();
	void generateFloatRange();

	void countStatisticsUnsigned();
	void countStatisticsSigned();
	void countStatisticsFloat();

	void generateOnKernel();

	void test();
}

	.text
	.file	"DumbRand.test.hip"
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
