Function at 0x14003c910
Capabilities:
Hash data using murmur3

Disassembly:
push rsi
sub rsp, 0x100
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xa0], rcx
call fcn.14003d280
mov rcx, rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xa8], rcx
movabs rcx, 0x4fd56de8f09322cc
movabs rdx, 0x4fd56de8f09322c8
xor rcx, rdx
cqo
idiv rcx
mov rcx, rax
mov rax, qword [rsp + 0xb0]
mov r8d, 4
cqo
idiv r8
mov qword [rsp + 0xb8], rdx
mov rax, rcx
shl rax, 2
mov qword [rsp + 0xc0], rax
cvtsi2sd xmm1, rcx
movsd xmm0, qword [0x1402604e8]
mulsd xmm1, xmm0
movsd qword [rsp + 0xc8], xmm1
cvtsi2sd xmm0, rax
ucomisd xmm1, xmm0
sete al
setnp cl
and al, cl
mov byte [rsp + 0xd7], al
subsd xmm0, xmm1
movsd qword [rsp + 0xd8], xmm0
mov rdx, 0xffffffffffffffff
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0xe0], rdx
mov dword [rsp + 0xec], ecx
mov qword [rsp + 0xf0], rax
mov al, byte [rsp + 0xd7]
mov rcx, qword [rsp + 0xe0]
mov edx, dword [rsp + 0xec]
mov r8, qword [rsp + 0xf0]
mov qword [rsp + 0x88], r8
mov dword [rsp + 0x94], edx
mov qword [rsp + 0x98], rcx
test al, 1
jne 0x14003ca78
movsd xmm0, qword [rsp + 0xd8]
call fcn.14024f600
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0xc8]
movsd qword [rsp + 0x80], xmm1
call fcn.14024f600
movsd xmm1, qword [rsp + 0x80]
movsd xmm2, qword [0x1402604f0]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x14003ca78
call fcn.140007e9d
jmp 0x14003cb39
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xc0]
cmp rax, rcx
jge 0x14003ce0e
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xb0]
mov dword [rsp + 0xfc], 0
cmp rax, rcx
jl 0x14003cad3
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffff
call fcn.140013507
jmp 0x14003cb39
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0xa0]
add rax, rcx
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x68], rax
cmp rax, 4
je 0x14003cb28
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov cl, byte [rcx + rax]
mov byte [rsp + rax + 0xfc], cl
add rax, 1
mov qword [rsp + 0x78], rax
jmp 0x14003caf2
mov rax, qword [rsp + 0xa8]
cmp byte [rax], 0
je 0x14003ccbe
mov r8d, dword [0x140251e50]
mov eax, dword [0x140251e54]
xor eax, 0xa6a583e9
or r8d, eax
mov edx, 0xffffffff
xor edx, 0xab02fb51
mov ecx, r8d
and ecx, edx
mov eax, r8d
or eax, edx
xor eax, 0xffffffff
imul eax, ecx
mov ecx, r8d
and ecx, 0xab02fb51
or r8d, 0xab02fb51
imul r8d, ecx
add r8d, eax
mov ecx, 0xabe70c81
xor ecx, 0x5418f37e
mov eax, r8d
xor eax, ecx
and eax, 0xedd55900
mov edx, 0x2188828b
xor edx, 0xcc5ddb8b
mov ecx, 0xd3b3c5c7
xor ecx, 0x2c4c3a38
xor edx, ecx
and r8d, edx
mov ecx, 0xd9bf7a3c
xor ecx, 0xfe57ffb9
mov r9d, 0x216859f5
xor r9d, 0xde97a60a
xor ecx, r9d
and ecx, 0xedd55900
and edx, 0x27e88585
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, eax
and ecx, 0xd3420c3a
shl ecx, 1
mov edx, 0xd97911fa
xor edx, 0xa3b1dc0
add eax, edx
sub eax, ecx
mov ecx, 0x7c67e2ea
xor ecx, 0xc8a38fc7
cmp eax, ecx
je 0x14003d267
mov ecx, dword [0x140251e58]
mov eax, dword [0x140251e5c]
xor eax, 0x2d421da5
sub ecx, eax
mov eax, 0x45559db7
xor eax, 0xbaaa6248
mov edx, ecx
xor edx, eax
and edx, 0xcd6ba70f
mov r8d, 0x810c5e7d
xor r8d, 0x4c67f972
mov eax, 0x91f1ed5a
xor eax, 0x6e0e12a5
xor r8d, eax
mov eax, ecx
and eax, r8d
imul eax, edx
mov r8d, 0x93d1209e
xor r8d, 0x5eba8791
mov edx, ecx
and edx, r8d
or ecx, 0xcd6ba70f
imul ecx, edx
add ecx, eax
mov edx, 0x5f0cb1e6
xor edx, 0xa0f34e19
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x7da27a83
mov edx, 0xffffffff
xor edx, 0x7da27a83
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
and eax, 0xc7e564f6
cmp eax, 0x47fa30ec
jb 0x14003d267
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x14003d259
mov rdx, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x94]
mov rax, qword [rsp + 0x88]
mov r8d, dword [rsp + 0xfc]
mov ecx, 0xcba38b35
xor ecx, 0x73da664
mov r10d, r8d
imul r10d, ecx
mov ecx, 0x58eebdff
xor ecx, 0x58eebdee
shr r10d, cl
mov ecx, r10d
mov r11d, r8d
xor r11d, 0xffffffff
and r11d, 0x16a88000
mov esi, 0xffffffff
xor esi, 0x16a88000
mov r10d, r8d
and r10d, esi
imul r10d, r11d
mov esi, 0xe659ee5e
xor esi, 0xf0f16e5e
mov r11d, r8d
and r11d, esi
or r8d, 0x16a88000
imul r8d, r11d
add r8d, r10d
or ecx, r8d
xor r8d, r8d
sub r8, rax
xor eax, eax
sub rax, 4
add r8, rax
xor eax, eax
sub rax, r8
mov r11d, 0xffffffff
xor r11d, 0x1b873593
mov r10d, ecx
and r10d, r11d
mov r8d, ecx
or r8d, r11d
xor r8d, 0xffffffff
imul r8d, r10d
mov r10d, ecx
and r10d, 0x1b873593
or ecx, 0x1b873593
imul ecx, r10d
add ecx, r8d
mov r8d, ecx
and r8d, r9d
shl r8d, 1
add ecx, r9d
sub ecx, r8d
rol ecx, 0xd
imul ecx, ecx, 5
mov r8d, 0xffffffff
xor r8d, 0xe6546b64
mov r9d, 0x93647fc1
xor r9d, 0x93647fc1
mov r10d, 0xc301cad1
xor r10d, 0xc301cad0
sub r9d, r10d
sub r8d, r9d
sub ecx, r8d
movabs r8, 0x938e660a365dba86
movabs r9, 0x938e660a365dba82
xor r8, r9
add rdx, r8
mov qword [rsp + 0xe0], rdx
mov dword [rsp + 0xec], ecx
mov qword [rsp + 0xf0], rax
jmp 0x14003c9ea
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x98]
mov rcx, rax
add rcx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0x53], cl
xor ecx, ecx
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x54]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x4c], ecx
movabs rcx, 0x1fc3e08f79a76716
movabs rdx, 0x1fc3e08f79a76716
xor rcx, rdx
cmp rax, rcx
jle 0x14003d099
mov rax, qword [rsp + 0x40]
mov r8, qword [rsp + 0x88]
mov rdx, rax
add rdx, 0xffffffffffffffff
mov qword [rsp + 0x30], rdx
mov rcx, rdx
and rcx, r8
or rdx, r8
add rcx, rdx
mov qword [rsp + 0x38], rcx
movabs rdx, 0xf050c761229a2c8d
movabs r8, 0xf050c761229a2c8d
xor rdx, r8
sub rdx, rax
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jge 0x14003cedf
call fcn.140007e9d
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x14003d259
mov dl, byte [rsp + 0x53]
mov rax, qword [rsp + 0x38]
cmp rax, 0xffffffffffffffff
setg cl
mov al, 1
xor al, 0
xor dl, al
mov al, cl
xor al, dl
and al, cl
test al, 1
jne 0x14003d053
mov eax, dword [0x140251e60]
mov edx, dword [0x140251e64]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
mov ecx, eax
and ecx, 0x9049e0e
mov edx, 0xa036de5f
xor edx, 0xa9324051
or eax, edx
add ecx, eax
mov eax, ecx
and eax, 0xd85d3e39
or ecx, 0xd85d3e39
add eax, ecx
sub eax, 0xc0b0d710
mov ecx, 0x6b732a14
xor ecx, 0xcd61e5dd
cmp eax, ecx
je 0x14003d270
mov rcx, qword [rsp + 0x38]
mov eax, dword [0x140251e68]
xor eax, 0x7c3f0083
xor edx, edx
div dword [0x140251e6c]
mov rdx, qword [rsp + 0xb0]
mov r8d, eax
and r8d, 0xc4d3fab5
xor eax, 0xc4d3fab5
or r8d, eax
and r8d, r8d
xor r8d, 0xffffffff
mov eax, 0xffffffff
xor eax, 0xd62289a9
mov r9d, 0xbbd81ffe
xor r9d, 0x6dfa9657
mov r10d, 0xe8281210
xor r10d, 0x17d7edef
xor r9d, r10d
or eax, r9d
mov r9d, 0x243c7464
xor r9d, 0xdbc38b9b
xor r8d, r9d
mov r9d, 0xce640b02
xor r9d, 0x319bf4fd
xor eax, r9d
or r8d, eax
mov r9d, 0x788b208a
xor r9d, 0xcbd0b51f
mov eax, r8d
or eax, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xb35b9595
and r8d, r9d
or eax, r8d
xor eax, 0xffffffff
mov dword [rsp + 0x2c], eax
movabs rax, 0x97b20c1902aa9978
sub rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x97b20c1902aa9978
add rdx, rax
call fcn.140013507
mov eax, dword [rsp + 0x2c]
cmp eax, 0x60a8fb4b
je 0x14003d270
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x14003d259
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x4c]
shl ecx, 8
movzx r8d, byte [rdx + r8]
and ecx, ecx
xor ecx, 0xffffffff
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x58], rax
jmp 0x14003ce41
mov rcx, qword [rsp + 0xa8]
xor eax, eax
cmp byte [rcx], 0
mov qword [rsp + 0x60], rax
jne 0x14003d259
mov r8d, dword [rsp + 0x94]
mov edx, dword [rsp + 0x4c]
mov r9d, 0x927fe9e7
xor r9d, 0x5ee1c4b6
mov eax, 0x2cc673f6
xor eax, 0xd3398c09
xor r9d, eax
mov eax, edx
and eax, r9d
mov ecx, edx
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, eax
mov r9d, edx
and r9d, 0xcc9e2d51
mov eax, edx
or eax, 0xcc9e2d51
imul eax, r9d
add eax, ecx
mov ecx, 0x878aa34a
xor ecx, 0x878aa35b
shr eax, cl
mov rcx, qword [rsp + 0xb0]
mov r11d, 0xffffffff
xor r11d, 0x16a88000
mov r10d, edx
and r10d, r11d
mov r9d, edx
or r9d, r11d
mov r11d, 0x8e5dec00
xor r11d, 0x71a213ff
xor r9d, r11d
imul r9d, r10d
mov r10d, edx
and r10d, 0x16a88000
or edx, 0x16a88000
imul edx, r10d
add edx, r9d
or eax, edx
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0x1b873593
mov r10d, 0xffffffff
xor r10d, 0x1b873593
mov edx, eax
and edx, r10d
imul edx, r9d
mov r10d, 0x626faaa9
xor r10d, 0x79e89f3a
mov r9d, eax
and r9d, r10d
or eax, 0x1b873593
imul eax, r9d
add eax, edx
xor eax, ecx
mov edx, eax
and edx, edx
xor edx, 0xffffffff
and edx, r8d
mov ecx, 0xb24870a1
xor ecx, 0x4db78f5e
xor edx, ecx
mov ecx, r8d
xor ecx, 0xffffffff
mov r9d, 0xb5422ec7
xor r9d, 0x4abdd138
xor r8d, r9d
or ecx, r8d
and eax, ecx
mov ecx, 0xb9ebb7de
xor ecx, 0x46144821
xor eax, ecx
and edx, eax
xor edx, 0xffffffff
mov ecx, edx
shr ecx, 0x10
mov eax, ecx
and eax, edx
shl eax, 1
add ecx, edx
sub ecx, eax
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x85ebca6b
mov r8d, 0xffffffff
xor r8d, 0x85ebca6b
mov eax, ecx
and eax, r8d
imul eax, edx
mov r8d, 0x1032d63f
xor r8d, 0x95d91c54
mov edx, ecx
and edx, r8d
or ecx, 0x85ebca6b
imul ecx, edx
add ecx, eax
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov dword [rsp + 0x28], eax
mov ecx, 0x70a5e140
xor ecx, 0x70a5e150
shr eax, cl
mov ecx, dword [rsp + 0x28]
xor eax, ecx
mov eax, eax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
add rsp, 0x100
pop rsi
ret
shr cl, 1
clc
mov ebp, ecx
wait
stc
invalid
mov word [rcx - 0x1d16b560], ss
cld
invalid