Function at 0x4ce110
Capabilities:
Hash data using fnv

Disassembly:
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x10
mov dword [ecx], 0
mov edx, dword [esp + 0x20]
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0xffffffff
mov eax, dword [edx + 4]
cmp eax, 7
je 0x4ce1b0
cmp eax, 6
jne 0x4ce1d0
mov eax, dword [edx]
cmp dword [eax], 0x65736472
je 0x4ce36f
cmp dword [eax], 0x61726472
jne 0x4ce1ba
cmp word [eax + 4], 0x646e
jne 0x4ce1ba
pushfd
pushfd
pop eax
mov edx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
popfd
xor eax, edx
test eax, 0x200000
je 0x4ce1a2
xor eax, eax
cpuid
test eax, eax
je 0x4ce1a2
cmp ebx, 0x68747541
jne 0x4ce408
xor ebx, ebx
mov eax, 1
mov ecx, ebx
cpuid
and ecx, 0x40000000
jne 0x4ce437
mov dword [esp], str.random_device::random_device_const_std::string_:_device_not_available
call dbg.std::__throw_runtime_error(char const*)
nop
mov eax, dword [edx]
cmp dword [eax], 0x61666564
je 0x4ce1f0
mov dword [esp], str.random_device::random_device_const_std::string_:_unsupported_token
call dbg.std::__throw_runtime_error(char const*)
lea esi, [esi]
lea esi, [esi]
cmp eax, 5
jne 0x4ce356
mov eax, dword [edx]
cmp dword [eax], 0x6e726472
jne 0x4ce1ba
cmp byte [eax + 4], 0x64
jne 0x4ce1ba
jmp 0x4ce15f
cmp dword [eax + 3], 0x746c7561
mov edi, 2
jne 0x4ce1ba
pushfd
pushfd
pop eax
mov edx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
popfd
xor eax, edx
test eax, 0x200000
je 0x4ce236
xor eax, eax
cpuid
test eax, eax
je 0x4ce236
cmp ebx, 0x756e6547
je 0x4ce441
cmp ebx, 0x68747541
je 0x4ce441
pushfd
pushfd
pop eax
mov edx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
popfd
xor eax, edx
test eax, 0x200000
je 0x4ce26e
xor eax, eax
cpuid
test eax, eax
je 0x4ce26e
cmp ebx, 0x756e6547
je 0x4ce420
cmp ebx, 0x68747541
je 0x4ce420
test edi, edi
je 0x4ce1a2
call dbg.std::chrono::_V2::system_clock::now()
lea ebx, [esi + 8]
mov ecx, eax
mov eax, edx
mov dword [esi], ebx
mov edx, ecx
movzx ecx, cl
xor ecx, 0x811c9dc5
movzx edi, dh
imul ecx, ecx, 0x1000193
xor edi, ecx
mov ecx, edx
shr edx, 0x18
imul edi, edi, 0x1000193
shr ecx, 0x10
movzx ecx, cl
xor ecx, edi
imul ecx, ecx, 0x1000193
xor edx, ecx
movzx ecx, al
imul edx, edx, 0x1000193
xor edx, ecx
movzx ecx, ah
imul edx, edx, 0x1000193
xor ecx, edx
mov edx, eax
shr eax, 0x18
imul ecx, ecx, 0x1000193
shr edx, 0x10
movzx edx, dl
xor edx, ecx
mov ecx, ebx
imul edx, edx, 0x1000193
shr ecx, 0x18
xor eax, edx
movzx edx, bl
imul eax, eax, 0x1000193
xor eax, edx
movzx edx, bh
imul eax, eax, 0x1000193
xor edx, eax
mov eax, ebx
imul edx, edx, 0x1000193
shr eax, 0x10
movzx eax, al
xor eax, edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, 3
imul ecx, ecx, 0x46a747c3
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 0x1e
mov eax, edx
shl eax, 0x1f
sub eax, edx
sub ecx, eax
mov eax, 1
cmove ecx, eax
mov eax, dbg.__lcg
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
add esp, 0x10
pop ebx
pop esi
pop edi
ret 4
cmp eax, 2
jne 0x4ce3d8
mov eax, dword [edx]
cmp word [eax], 0x7768
jne 0x4ce1ba
xor edi, edi
jmp 0x4ce1fe
cmp word [eax + 4], 0x6465
jne 0x4ce14f
pushfd
pushfd
pop edx
mov eax, edx
xor edx, 0x200000
push edx
popfd
pushfd
pop edx
popfd
xor eax, edx
test eax, 0x200000
je 0x4ce1a2
xor eax, eax
cpuid
test eax, eax
je 0x4ce1a2
cmp ebx, 0x68747541
je 0x4ce3b8
cmp ebx, 0x756e6547
jne 0x4ce1a2
mov eax, 7
xor ecx, ecx
cpuid
and ebx, 0x40000
jne 0x4ce456
jmp 0x4ce1a2
cmp eax, 8
jne 0x4ce479
mov eax, dword [edx]
cmp dword [eax], 0x64726168
jne 0x4ce1ba
cmp dword [eax + 4], 0x65726177
jne 0x4ce1ba
xor edi, edi
jmp 0x4ce1fe
cmp ebx, 0x756e6547
je 0x4ce18b
jmp 0x4ce1a2
xor ebx, ebx
mov eax, 1
mov ecx, ebx
cpuid
and ecx, 0x40000000
je 0x4ce26e
mov eax, dbg.__x86_rdrand
jmp 0x4ce34a
mov eax, 7
xor ecx, ecx
cpuid
and ebx, 0x40000
je 0x4ce236
xor ebx, ebx
mov eax, 1
mov ecx, ebx
cpuid
mov eax, dbg.__x86_rdseed_rdrand
and ecx, 0x40000000
mov edx, method.std._anonymous_namespace_::__x86_rdseed_void_
cmove eax, edx
jmp 0x4ce34a
cmp eax, 4
jne 0x4ce1ba
mov eax, dword [edx]
cmp dword [eax], 0x676e7270
je 0x4ce276
jmp 0x4ce1ba