Function at 0x140147230
Capabilities:
Hash data using murmur3

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x70
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r15, qword [r8]
mov eax, dword [r15 + 0x40]
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
imul ecx, ecx, 0x85ebca6b
mov edx, ecx
shr edx, 0xd
xor edx, ecx
imul ecx, edx, 0xc2b2ae35
mov edx, ecx
shr edx, 0x10
xor edx, ecx
mov ecx, 1
cmovne ecx, edx
mov edx, dword [rbx + 0x1c]
test edx, edx
jle 0x1401472ea
lea r8d, [rdx - 1]
and r8d, ecx
mov r9, qword [rbx + 0x20]
xor r10d, r10d
mov r11d, edx
jmp 0x1401472b5
test r8d, r8d
mov r14d, edx
cmovg r14d, r10d
add r8d, r14d
dec r8d
dec r11d
je 0x1401472ea
movsxd r14, r8d
lea r14, [r14 + r14*2]
shl r14, 4
mov ebp, dword [r9 + r14]
test ebp, ebp
je 0x1401472ea
cmp ecx, ebp
jne 0x1401472a0
cmp eax, dword [r9 + r14 + 8]
jne 0x1401472a0
add r14, r9
add r14, 8
cmp dword [r14 + 0x20], 0
jg 0x14014739a
jmp 0x140147405
lea r14, [rbx + 0x18]
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x30], rcx
movabs r8, 0x200000000
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0x50]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], r8
call fcn.140147ee0
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.140148160
mov r14, rax
movsxd rax, dword [rsp + 0x38]
test rax, rax
je 0x14014737f
mov r15, qword [rsp + 0x30]
lea r12, [r15 + rax*8]
jmp 0x140147369
add r15, 8
cmp r15, r12
jae 0x14014737f
mov rcx, qword [r15]
test rcx, rcx
je 0x140147360
lock dec dword [rcx + 8]
jne 0x140147360
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140147360
test byte [rsp + 0x3c], 1
je 0x140147390
mov rcx, qword [rsp + 0x30]
call fcn.14000b650
mov r15, qword [rdi]
cmp dword [r14 + 0x20], 0
jle 0x140147405
add r15, 0x40
xor r12d, r12d
nop word cs:[rax + rax]
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + r12*8]
add rcx, 0x40
mov rdx, r15
call fcn.14025b590
test al, al
jne 0x1401473d6
inc r12
movsxd rax, dword [r14 + 0x20]
cmp r12, rax
jl 0x1401473b0
jmp 0x140147405
test r12d, r12d
js 0x140147405
mov rax, qword [r14 + 0x18]
mov rax, qword [rax + r12*8]
test rax, rax
je 0x140147405
lock inc dword [rax + 8]
mov rcx, qword [rdi]
mov qword [rdi], rax
test rcx, rcx
je 0x140147475
lock dec dword [rcx + 8]
jne 0x140147475
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140147475
mov rax, qword [rdi]
mov qword [rax + 0x10], 0
mov rcx, qword [rbx + 8]
mov qword [rax + 0x18], rcx
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140147425
mov qword [rcx + 0x10], rax
mov qword [rbx + 8], rax
cmp qword [rbx + 0x10], 0
jne 0x140147434
mov qword [rbx + 0x10], rax
mov rax, qword [rdi]
movsxd rax, dword [rax + 0x38]
add qword [rbx + 0x30], rax
mov r15, qword [rdi]
test r15, r15
je 0x14014744c
lock inc dword [r15 + 8]
lea rcx, [r14 + 0x18]
movsd xmm2, qword [0x140598970]
mov edx, 1
call fcn.140003cb0
mov rax, qword [r14 + 0x18]
movsxd rcx, dword [r14 + 0x20]
lea edx, [rcx + 1]
mov dword [r14 + 0x20], edx
mov qword [rax + rcx*8], r15
mov r14, qword [rdi]
mov rcx, rbx
call fcn.1401478b0
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x28]
jbe 0x1401474b3
mov rdx, qword [rbx + 0x10]
nop
test rdx, rdx
je 0x1401474b3
cmp rdx, r14
je 0x1401474b3
mov r15, qword [rdx + 0x10]
mov rcx, rbx
call fcn.1401474e0
mov rax, qword [rbx + 0x30]
mov rdx, r15
cmp rax, qword [rbx + 0x28]
ja 0x140147490
mov rax, qword [rdi]
mov qword [rdi], 0
mov qword [rsi], rax
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1405602f0
mov rax, rsi
add rsp, 0x70
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret