Function at 0x10036d50
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1019de3d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
mov ebx, ecx
mov eax, 0x1fffffff
bsr ecx, eax
push esi
mov esi, 1
mov dword [ebp - 0x1c], ebx
mov eax, esi
shl eax, cl
mov ecx, dword [ebp + 8]
push edi
cmp ecx, eax
jbe 0x10036d96
push str.invalid_hash_bucket_count
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ecx - 1]
or eax, 1
bsr ecx, eax
mov eax, dword [ebx + 4]
push eax
mov dword [ebp + 8], eax
lea ecx, [ecx + 1]
shl esi, cl
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x20], ecx
lea eax, [esi + esi]
push eax
call fcn.1002e560
lea eax, [esi - 1]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x18], eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], 0
mov edi, dword [ebx + 4]
mov edi, dword [edi]
mov esi, edi
cmp edi, dword [ebp + 8]
je 0x10036f0a
nop dword [eax]
mov eax, dword [edi + 0xc]
lea ecx, [edi + 8]
mov esi, dword [esi]
push eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], eax
call fcn.10027db0
mov ecx, dword [ebp - 0x14]
mov ebx, eax
neg ebx
mov edx, ebx
call fcn.100ec570
mov ecx, dword [ebp - 0x14]
lea edx, [ebx - 1]
mov dword [ebp - 0x18], eax
call fcn.100ec240
mov ebx, dword [ebp - 0x18]
movzx ecx, bl
xor ecx, 0x811c9dc5
imul edx, ecx, 0x1000193
mov ecx, ebx
shr ecx, 8
movzx eax, cl
xor edx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
imul ecx, edx, 0x1000193
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x18]
xor eax, ebx
imul eax, eax, 0x1000193
and ecx, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
lea ebx, [eax + ecx*8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], ebx
cmp dword [ebx], eax
jne 0x10036e71
mov dword [ebx], edi
mov dword [ebx + 4], edi
jmp 0x10036f00
mov esi, dword [ebx + 4]
lea eax, [esi + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.1003bfb0
test al, al
jne 0x10036eb4
mov eax, dword [esi]
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
cmp eax, edi
je 0x10036eaf
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0x18]
mov dword [edx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [eax + 4]
mov dword [eax], edi
mov dword [ebx + 4], ecx
mov ebx, dword [ebp - 0x14]
mov dword [esi + 4], edx
mov dword [edi + 4], eax
mov dword [ebx + 4], edi
jmp 0x10036efd
mov eax, dword [ebp - 0x14]
mov ebx, esi
cmp dword [eax], esi
je 0x10036edd
nop dword [eax]
mov esi, dword [esi + 4]
mov ebx, esi
lea eax, [ebx + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.1003bfb0
test al, al
je 0x10036f1d
mov eax, dword [ebp - 0x14]
cmp dword [eax], esi
jne 0x10036ec0
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0x10]
mov dword [edx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], ebx
mov eax, dword [ebx + 4]
mov dword [eax], edi
mov dword [ebx + 4], ecx
mov dword [esi + 4], edx
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [eax], edi
mov eax, dword [ebp + 8]
mov edi, esi
cmp esi, eax
jne 0x10036de0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [esi]
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0x10]
mov dword [edx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], ebx
mov eax, dword [ebx + 4]
mov dword [eax], edi
mov dword [ebx + 4], ecx
mov dword [esi + 4], edx
mov dword [edi + 4], eax
jmp 0x10036efd