Function at 0x10032420
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x102f8384]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0x14], 0
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esi
jne 0x1003244b
mov eax, 4
call fcn.101bea50
mov dword [ebp + 0x14], esp
mov edi, dword [esi + 4]
test edi, edi
je 0x10032626
mov eax, dword [ebp + 8]
xor edx, edx
dec eax
mov ecx, dword [esi + 0x44]
div dword [esi]
movzx ecx, byte [ecx + edx]
cmp eax, ecx
jne 0x10032626
mov eax, dword [ebp + 0x14]
mov edi, dword [edi + edx*4]
test eax, eax
je 0x10032479
mov dword [eax], edx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x10032482
mov dword [ecx], edi
mov edx, dword [ebp + 0xc]
cmp edx, edi
je 0x10032626
xor ebx, ebx
xor ecx, ecx
test edx, edx
jne 0x100324e0
or ebx, 0xffffffff
lea ecx, [edi - 1]
neg ecx
sbb ecx, ecx
mov edx, dword [eax]
lea edi, [ecx + ebx]
not edi
mov dword [ebp - 8], edx
shr edi, 0x1f
test edi, edi
je 0x100324bc
mov eax, dword [esi + 4]
mov esi, dword [ebp + 0xc]
mov dword [eax + edx*4], esi
mov esi, dword [ebp - 0x10]
test ebx, ebx
jle 0x100324c7
lock inc dword [esi + 0xc4]
test ecx, ecx
je 0x100325f9
jle 0x10032520
push dword [ebp + 8]
mov ecx, esi
call fcn.10030ef0
jmp 0x100325f9
cmp edx, 1
jne 0x100324f0
xor ebx, ebx
mov ecx, edi
test edi, edi
sete bl
jmp 0x1003249b
test edi, edi
jne 0x1003250a
mov edx, dword [eax]
mov ecx, 1
mov ebx, ecx
mov dword [ebp - 8], edx
lea edi, [ecx + ebx]
not edi
shr edi, 0x1f
jmp 0x100324b0
cmp edi, 1
jne 0x1003249f
mov edx, dword [eax]
mov ecx, edi
mov dword [ebp - 8], edx
lea edi, [ebx + ecx]
not edi
shr edi, 0x1f
jmp 0x100324b0
mov eax, dword [ebp + 8]
add esi, 0x104
push esi
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [ebp + 8]
movzx eax, al
xor eax, 0x811c9dc5
mov edx, dword [ebp - 0x10]
imul ecx, eax, 0x1000193
add edx, 0x108
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
mov dword [ebp - 0xc], edx
xor ecx, eax
mov eax, dword [ebp + 8]
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor eax, ecx
mov ecx, edx
imul eax, eax, 0x1000193
push eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.1002d6c0
mov edx, dword [eax + 4]
test edx, edx
je 0x100325ef
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
and ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp dword [ecx + 4], edx
jne 0x100325c9
cmp eax, edx
jne 0x100325c1
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x100325d1
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
jmp 0x100325d1
cmp eax, edx
jne 0x100325d1
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [edx]
push 0xc
push edx
dec dword [eax + 8]
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.101be206
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov esi, dword [ebp - 0x10]
test ebx, ebx
jns 0x1003260f
lock dec dword [esi + 0xc4]
mov eax, dword [esi + 0x44]
mov ecx, dword [ebp - 8]
inc byte [eax + ecx]
jmp 0x10032612
mov ecx, dword [ebp - 8]
test edi, edi
jne 0x1003261f
mov eax, dword [esi + 4]
mov edx, dword [ebp + 0xc]
mov dword [eax + ecx*4], edx
mov eax, 1
jmp 0x10032628
xor eax, eax
lea esp, [ebp - 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101bdc82
mov esp, ebp
pop ebp
ret 0x10