Function at 0x1402c2100
Capabilities:
Hash data using murmur3

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0xf8], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0xe8], rax
movabs rax, 0x2000000000
mov qword [rsp + 0xf0], rax
mov r8d, dword [r8 + 8]
test r8d, r8d
jle 0x1402c2205
cmp r8d, 0x10
jbe 0x1402c221a
mov qword [rsp + 0x58], 8
mov qword [rsp + 0x60], 0x7fffffff
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x48]
movsd xmm3, qword [0x140599c60]
call fcn.140047da0
movsxd r8, dword [rsp + 0xf0]
test r8, r8
je 0x1402c21b8
mov rcx, qword [rsp + 0x48]
shl r8, 3
mov rdx, qword [rsp + 0xe8]
call fcn.140562340
test byte [rsp + 0xf4], 1
je 0x1402c21cf
mov rcx, qword [rsp + 0xe8]
call fcn.14000b650
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
shr rcx, 3
cmp rcx, 0x7fffffff
mov edx, 0x7fffffff
cmovb rdx, rcx
mov qword [rsp + 0xe8], rax
lea eax, [rdx + rdx]
inc eax
mov dword [rsp + 0xf4], eax
mov r8d, dword [rbx + 8]
test r8d, r8d
je 0x1402c23b7
mov r15, qword [rbx]
movsxd rax, r8d
lea r12, [r15 + rax*4]
jmp 0x1402c2221
mov r15, qword [rbx]
lea r12, [r15 + r8*4]
mov ebp, 1
movsd xmm6, qword [0x140598970]
mov r13d, 0x7fffffff
mov eax, dword [r15]
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
imul ecx, ecx, 0x85ebca6b
mov edx, ecx
shr edx, 0xd
xor edx, ecx
imul edx, edx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
cmove ecx, ebp
mov edx, dword [rdi + 0x18c]
test edx, edx
jle 0x1402c246f
mov r14, rsi
lea r8d, [rdx - 1]
and r8d, ecx
mov r9, qword [rdi + 0x190]
mov r10d, edx
jmp 0x1402c229b
xor ebx, ebx
test r8d, r8d
mov r11d, edx
cmovg r11d, ebx
add r8d, r11d
dec r8d
dec r10d
je 0x1402c23e1
movsxd r11, r8d
shl r11, 5
mov esi, dword [r9 + r11]
test esi, esi
je 0x1402c23df
cmp ecx, esi
jne 0x1402c2280
cmp eax, dword [r9 + r11 + 8]
jne 0x1402c2280
lea rbx, [r9 + r11]
add rbx, 8
add rbx, 8
mov r8d, dword [rsp + 0xf0]
mov eax, dword [rsp + 0xf4]
shr eax, 1
cmp eax, r8d
jle 0x1402c22eb
mov rax, qword [rsp + 0xe8]
mov rsi, r14
jmp 0x1402c2399
cmp r8d, 0x7fffffff
jne 0x1402c2301
call fcn.140047e70
mov r8d, dword [rsp + 0xf0]
inc r8d
mov qword [rsp + 0x58], 8
mov qword [rsp + 0x60], 0x7fffffff
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x48]
movaps xmm3, xmm6
call fcn.140047da0
movsxd r8, dword [rsp + 0xf0]
test r8, r8
je 0x1402c234b
mov rcx, qword [rsp + 0x48]
shl r8, 3
mov rdx, qword [rsp + 0xe8]
call fcn.140562340
test byte [rsp + 0xf4], 1
mov rsi, r14
je 0x1402c2365
mov rcx, qword [rsp + 0xe8]
call fcn.14000b650
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
shr rcx, 3
cmp rcx, 0x7fffffff
cmovae rcx, r13
mov qword [rsp + 0xe8], rax
add ecx, ecx
inc ecx
mov dword [rsp + 0xf4], ecx
mov r8d, dword [rsp + 0xf0]
movsxd rcx, r8d
lea edx, [rcx + 1]
mov dword [rsp + 0xf0], edx
mov qword [rax + rcx*8], rbx
add r15, 4
cmp r15, r12
jne 0x1402c2234
mov r15d, dword [rsp + 0xf0]
mov rcx, qword [rsp + 0xe8]
test r15d, r15d
jle 0x1402c23e9
cmp r15d, 1
jne 0x1402c23ed
mov r9d, 0x7fffffff
xor r8d, r8d
xor edx, edx
jmp 0x1402c2432
xor ebx, ebx
mov rsi, r14
jmp 0x1402c2471
xor edx, edx
jmp 0x1402c2443
mov r10d, r15d
and r10d, 0xfffffffe
mov r9d, 0x7fffffff
xor r8d, r8d
xor edx, edx
nop
mov rax, qword [rcx + r8*8]
mov r11, qword [rcx + r8*8 + 8]
mov eax, dword [rax]
cmp eax, r9d
cmovl r9d, eax
mov eax, edx
cmovl eax, r8d
mov r11d, dword [r11]
lea edx, [r8 + 1]
cmp r11d, r9d
cmovl r9d, r11d
cmovge edx, eax
add r8, 2
cmp r8, r10
jne 0x1402c2400
test r15b, 1
je 0x1402c2443
mov rax, qword [rcx + r8*8]
cmp dword [rax], r9d
cmovl edx, r8d
movsxd rax, edx
mov rax, qword [rcx + rax*8]
mov r8d, dword [rax + 4]
test r8d, r8d
jle 0x1402c246f
mov r10, qword [rax + 8]
xor r9d, r9d
nop word [rax + rax]
cmp dword [r10 + r9*8], 0
jne 0x1402c24ba
inc r9
cmp r8, r9
jne 0x1402c2460
xor ebx, ebx
mov byte [rsi + 8], bl
test byte [rsp + 0xf4], 1
je 0x1402c248b
mov rcx, qword [rsp + 0xe8]
call fcn.14000b650
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.1405602f0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, 0
cmp r8d, r9d
jle 0x1402c2471
mov r11, qword [rax + 8]
movsxd rdi, r8d
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r15
movsxd r14, r9d
mov eax, dword [r11 + r14*8 + 4]
sub eax, edx
test r15d, r15d
jle 0x1402c25d4
xor esi, esi
mov qword [rsp + 0x38], rax
mov r10, qword [rcx + rsi*8]
mov qword [rsp + 0x40], rsi
lea ebp, [rax + rsi]
mov eax, ebp
shr eax, 0x10
xor eax, ebp
imul eax, eax, 0x85ebca6b
mov esi, eax
shr esi, 0xd
xor esi, eax
imul eax, esi, 0xc2b2ae35
mov ebx, eax
shr ebx, 0x10
xor ebx, eax
mov eax, 1
cmove ebx, eax
mov r13d, dword [r10 + 4]
test r13d, r13d
jle 0x1402c258d
lea eax, [r13 - 1]
and eax, ebx
mov r10, qword [r10 + 8]
mov r12d, r13d
jmp 0x1402c2558
test eax, eax
mov esi, r13d
mov r15d, 0
cmovg esi, r15d
add eax, esi
dec eax
dec r12d
je 0x1402c258d
movsxd rsi, eax
mov r15d, dword [r10 + rsi*8]
test r15d, r15d
je 0x1402c258d
cmp ebx, r15d
jne 0x1402c2540
cmp ebp, dword [r10 + rsi*8 + 4]
jne 0x1402c2540
mov rsi, qword [rsp + 0x40]
inc rsi
mov r15, qword [rsp + 0x30]
cmp rsi, r15
mov rax, qword [rsp + 0x38]
jne 0x1402c24ef
jmp 0x1402c25d4
inc r14
mov rsi, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
nop word [rax + rax]
cmp r14, rdi
jge 0x1402c246f
inc r9d
cmp dword [r11 + r14*8], 0
lea r14, [r14 + 1]
je 0x1402c25a0
cmp r9d, r8d
mov eax, r8d
cmovl eax, r9d
xor ebx, ebx
cmp r8d, r9d
mov r9d, eax
jg 0x1402c24d5
jmp 0x1402c2471
shl r15, 0x20
mov eax, eax
or rax, r15
mov rsi, qword [rsp + 0x28]
mov qword [rsi], rax
mov bl, 1
jmp 0x1402c2471