Function at 0x140052120
Capabilities:
Hash data using murmur3

Disassembly:
push rsi
sub rsp, 0xe0
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x88], rcx
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, rax
mov rax, qword [rsp + 0x98]
add rcx, 0x60
mov qword [rsp + 0x90], rcx
mov ecx, 4
cqo
idiv rcx
mov rcx, rax
mov rax, qword [rsp + 0x98]
mov r8d, 4
cqo
idiv r8
mov qword [rsp + 0xa0], rdx
mov rax, rcx
shl rax, 2
mov qword [rsp + 0xa8], rax
cvtsi2sd xmm1, rcx
movsd xmm0, qword [0x1402bafd0]
mulsd xmm1, xmm0
movsd qword [rsp + 0xb0], xmm1
cvtsi2sd xmm0, rax
ucomisd xmm1, xmm0
sete al
setnp cl
and al, cl
mov byte [rsp + 0xbf], al
subsd xmm0, xmm1
movsd qword [rsp + 0xc0], xmm0
mov rdx, 0xffffffffffffffff
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0xc8], rdx
mov dword [rsp + 0xd4], ecx
mov qword [rsp + 0xd8], rax
mov al, byte [rsp + 0xbf]
mov rcx, qword [rsp + 0xc8]
mov edx, dword [rsp + 0xd4]
mov r8, qword [rsp + 0xd8]
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x7c], edx
mov qword [rsp + 0x80], rcx
test al, 1
jne 0x140052277
movsd xmm0, qword [rsp + 0xc0]
call fcn.1402a7e80
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0xb0]
movsd qword [rsp + 0x68], xmm1
call fcn.1402a7e80
movsd xmm1, qword [rsp + 0x68]
movsd xmm2, qword [0x1402bafd8]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x140052277
call fcn.14000ee80
jmp 0x140052708
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xa8]
cmp rax, rcx
jge 0x140052429
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x98]
cmp rax, rcx
jl 0x1400522be
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffff
call fcn.140025e55
jmp 0x140052708
mov rax, qword [rsp + 0x90]
mov al, byte [rax]
mov cl, 0x5d
xor cl, 0x5d
cmp al, cl
jne 0x140052708
mov r8, qword [rsp + 0x80]
mov r9d, dword [rsp + 0x7c]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x88]
mov ecx, dword [rcx + rax]
mov r10d, 0xedb14bf1
xor r10d, 0x212f66a0
mov edx, ecx
imul edx, r10d
shr edx, 0x11
mov r10d, 0xbe943293
xor r10d, 0x416bcd6c
mov r11d, ecx
xor r11d, r10d
and r11d, 0x16a88000
mov esi, 0xffffffff
xor esi, 0x16a88000
mov r10d, ecx
and r10d, esi
imul r10d, r11d
mov esi, 0x2ab77802
xor esi, 0x3c1ff802
mov r11d, ecx
and r11d, esi
or ecx, 0x16a88000
imul ecx, r11d
add ecx, r10d
or edx, ecx
add rax, 4
mov ecx, 0x731a66d1
xor ecx, 0x689d5342
imul edx, ecx
mov r10d, edx
xor r10d, 0xffffffff
mov ecx, r9d
and ecx, r10d
xor r9d, 0xffffffff
and edx, r9d
or ecx, edx
rol ecx, 0xd
mov r9d, ecx
xor r9d, 0xffffffff
and r9d, 5
mov r10d, 0xffffffff
xor r10d, 5
mov edx, ecx
and edx, r10d
imul edx, r9d
mov r10d, 0xcb0a6aa8
xor r10d, 0xcb0a6aad
mov r9d, ecx
and r9d, r10d
or ecx, 5
imul ecx, r9d
add ecx, edx
mov edx, 0xffffffff
xor edx, 0xe6546b64
xor r9d, r9d
sub r9d, 1
sub edx, r9d
sub ecx, edx
movabs r9, 0x639345b79b4e39a4
movabs rdx, 0x639345b79b4e39a0
xor r9, rdx
mov rdx, r8
and rdx, r9
movabs r9, 0xe0a10f457bd6cd5b
movabs r10, 0xe0a10f457bd6cd5f
xor r9, r10
or r8, r9
add rdx, r8
mov qword [rsp + 0xc8], rdx
mov dword [rsp + 0xd4], ecx
mov qword [rsp + 0xd8], rax
jmp 0x1400521f5
mov rcx, qword [rsp + 0xa0]
xor eax, eax
cmp rcx, 0
mov dword [rsp + 0x64], eax
jle 0x1400525c6
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x98]
mov rax, qword [rsp + 0x80]
xor r8d, r8d
sub r8, rax
mov rax, rcx
sub rax, r8
cmp rax, rdx
setl al
mov byte [rsp + 0x57], al
xor eax, eax
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x60], eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x38], rcx
movabs r8, 0xc77c63126d16ad6a
movabs rax, 0x38839ced92e95295
xor r8, rax
mov rax, rcx
add rax, r8
mov qword [rsp + 0x40], rax
add rax, rdx
mov qword [rsp + 0x48], rax
movabs rdx, 0x6b6d02bc865dee85
movabs r8, 0x6b6d02bc865dee85
xor rdx, r8
sub rdx, rcx
movabs rcx, 0x7553e4630d9c82ea
movabs r8, 0x7553e4630d9c82ea
xor rcx, r8
add rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140052506
call fcn.14000ee80
jmp 0x140052708
mov dl, byte [rsp + 0x57]
mov rax, qword [rsp + 0x48]
movabs rcx, 0x209be4613c7915f5
movabs r8, 0xdf641b9ec386ea0a
xor rcx, r8
cmp rax, rcx
setg al
xor al, 0xff
xor dl, 0xff
xor ecx, ecx
xor cl, 1
xor r8d, r8d
xor r8b, 1
xor cl, r8b
or al, dl
or cl, 1
xor edx, edx
xor dl, 1
xor al, dl
and al, cl
test al, 1
jne 0x140052571
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffff
call fcn.140025e55
jmp 0x140052708
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
shl eax, 8
movzx r8d, byte [r8 + r9]
or eax, r8d
movabs r8, 0x51e9cfef6cfeff3
movabs r9, 0x51e9cfef6cfeff2
xor r8, r9
cmp rdx, r8
mov qword [rsp + 0x58], rcx
mov ecx, eax
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x64], eax
ja 0x14005247a
mov rax, qword [rsp + 0x90]
mov ecx, dword [rsp + 0x64]
mov dword [rsp + 0x30], ecx
cmp byte [rax], 0
jne 0x140052708
mov ecx, dword [rsp + 0x7c]
mov rdx, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x30]
imul r8d, r9d, 0xcc9e2d51
shr r8d, 0x11
mov eax, 0xf4fbfaf
xor eax, 0x19e73faf
imul r9d, eax
mov eax, r8d
xor eax, 0xffffffff
mov r10d, 0x226b6441
xor r10d, 0xdd949bbe
xor r8d, r10d
or eax, r8d
mov r8d, r9d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
and eax, r8d
mov r8d, 0x9462e126
xor r8d, 0x6b9d1ed9
xor eax, r8d
imul eax, eax, 0x1b873593
xor eax, edx
xor eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, 0x64780000
xor ecx, 0x64780010
shr eax, cl
mov ecx, dword [rsp + 0x24]
xor eax, ecx
mov r8d, 0xb1f3c6ff
xor r8d, 0x34180c94
mov ecx, 0xf3d9b3ea
xor ecx, 0xc264c15
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x85ebca6b
mov r8d, 0xb18ac0be
xor r8d, 0x34610ad5
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r8d, 0xffffffff
xor r8d, 0xc2b2ae35
mov edx, ecx
and edx, r8d
mov eax, ecx
or eax, r8d
mov r8d, 0x16548851
xor r8d, 0xe9ab77ae
xor eax, r8d
imul eax, edx
mov r8d, 0x760d70b3
xor r8d, 0xb4bfde86
mov edx, ecx
and edx, r8d
or ecx, 0xc2b2ae35
imul ecx, edx
add ecx, eax
mov eax, ecx
shr eax, 0x10
xor eax, ecx
mov eax, eax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
add rsp, 0xe0
pop rsi
ret