Function at 0x140031a50
Capabilities:
Hash data using murmur3

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xa0], rcx
call fcn.140032373
mov rcx, rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xa8], rcx
movabs rcx, 0x52f285daf545f64
movabs rdx, 0x52f285daf545f60
xor rcx, rdx
cqo
idiv rcx
mov rcx, rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xc0], rcx
mov ecx, 4
cqo
idiv rcx
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xb8], rdx
movabs rcx, 0x140588e76964a1b3
movabs rdx, 0x140588e76964a1b1
xor rcx, rdx
shl rax, cl
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rax
cvtsi2sd xmm1, rcx
movsd xmm0, qword [0x1401e55e0]
mulsd xmm1, xmm0
movsd qword [rsp + 0xd0], xmm1
cvtsi2sd xmm0, rax
ucomisd xmm1, xmm0
sete al
setnp cl
and al, cl
mov byte [rsp + 0xdf], al
subsd xmm0, xmm1
movsd qword [rsp + 0xe0], xmm0
mov rdx, 0xffffffffffffffff
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0xe8], rdx
mov dword [rsp + 0xf4], ecx
mov qword [rsp + 0xf8], rax
mov al, byte [rsp + 0xdf]
mov rcx, qword [rsp + 0xe8]
mov edx, dword [rsp + 0xf4]
mov r8, qword [rsp + 0xf8]
mov qword [rsp + 0x88], r8
mov dword [rsp + 0x94], edx
mov qword [rsp + 0x98], rcx
test al, 1
jne 0x140031be5
movsd xmm0, qword [rsp + 0xe0]
call fcn.1401d7330
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0xd0]
movsd qword [rsp + 0x80], xmm1
call fcn.1401d7330
movsd xmm1, qword [rsp + 0x80]
movsd xmm2, qword [0x1401e55e8]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x140031be5
call fcn.140007bb8
jmp 0x140031cbc
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xc8]
cmp rax, rcx
jge 0x140031e4d
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xb0]
mov dword [rsp + 0x104], 0
cmp rax, rcx
jl 0x140031c40
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffff
call fcn.140012270
jmp 0x140031cbc
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 0x140031cab
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov cl, byte [rcx + rax]
mov byte [rsp + rax + 0x104], cl
movabs rcx, 0x99aca7892db88beb
movabs rdx, 0x99aca7892db88bea
xor rcx, rdx
add rax, rcx
mov qword [rsp + 0x78], rax
jmp 0x140031c5f
mov rax, qword [rsp + 0xa8]
cmp byte [rax], 0
je 0x140031cc1
jmp 0x140032350
mov rdx, qword [rsp + 0x98]
mov r10d, dword [rsp + 0x94]
mov rax, qword [rsp + 0x88]
mov edi, dword [rsp + 0x104]
mov dword [rsp + 0x64], edi
mov r9d, 0xffffffff
xor r9d, 0xcc9e2d51
mov r8d, edi
and r8d, r9d
mov ecx, edi
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, r8d
mov r9d, 0x83f29a6b
xor r9d, 0x4f6cb73a
mov r8d, edi
and r8d, r9d
mov ebx, edi
or ebx, 0xcc9e2d51
imul ebx, r8d
add ebx, ecx
shr ebx, 0x11
mov r9d, 0xffffffff
xor r9d, 0x16a88000
mov r8d, edi
and r8d, r9d
mov ecx, edi
or ecx, r9d
mov r9d, 0x19ea2476
xor r9d, 0xe615db89
xor ecx, r9d
imul ecx, r8d
mov r9d, 0xde3b68e5
xor r9d, 0xc893e8e5
mov r8d, edi
and r8d, r9d
or edi, 0x16a88000
imul edi, r8d
add edi, ecx
mov r8d, ebx
xor r8d, 0xffffffff
mov r9d, edi
xor r9d, 0xffffffff
mov r11d, 0xffffffff
xor r11d, 0xa9b52ed2
mov ecx, r8d
and ecx, 0xa9b52ed2
and ebx, r11d
mov ebp, 0x2eae2891
xor ebp, 0x871b0643
mov esi, r9d
and esi, ebp
and edi, r11d
or ecx, ebx
or esi, edi
xor ecx, esi
or r8d, r9d
xor r8d, 0xffffffff
mov r9d, 0xae117566
xor r9d, 0x7a45bb4
or r9d, r11d
and r8d, r9d
or ecx, r8d
movabs r8, 0xff1e716fcdff499a
add rax, r8
add rax, 4
movabs r8, 0xff1e716fcdff499a
sub rax, r8
imul r8d, ecx, 0x1b873593
mov ecx, r8d
and ecx, ecx
xor ecx, 0xffffffff
and ecx, r10d
xor ecx, 0xffffffff
mov r9d, r10d
xor r9d, 0xffffffff
xor r10d, 0xffffffff
or r9d, r10d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
and ecx, r8d
xor ecx, 0xffffffff
rol ecx, 0xd
imul ecx, ecx, 5
add ecx, 0xe6546b64
add rdx, 4
mov qword [rsp + 0xe8], rdx
mov dword [rsp + 0xf4], ecx
mov qword [rsp + 0xf8], rax
jmp 0x140031b57
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x98]
xor r8d, r8d
sub r8, rcx
mov rcx, rax
sub 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
cmp rax, 0
jle 0x1400320bf
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x88]
movabs r8, 0xd1be41af59f264ac
movabs rax, 0x2e41be50a60d9b53
xor r8, rax
mov rax, rdx
and rax, r8
mov r8, rdx
or r8, 0xffffffffffffffff
add rax, r8
mov qword [rsp + 0x30], rax
add rax, rcx
mov qword [rsp + 0x38], rax
xor ecx, ecx
sub rcx, rdx
or rax, rax
xor rax, 0xffffffffffffffff
or rcx, rcx
xor rcx, 0xffffffffffffffff
or rax, rcx
xor rax, 0xffffffffffffffff
cmp rax, 0
jge 0x140031f11
call fcn.140007bb8
jmp 0x140032350
mov eax, dword [0x1401d9590]
sub eax, dword [0x1401d9594]
mov ecx, eax
xor ecx, 0x2303dca3
mov edx, 0x6ab89103
xor edx, 0x95476efc
xor ecx, edx
mov edx, 0x6773de33
xor edx, 0x44700290
or eax, edx
and eax, ecx
or eax, 0x3f7c03bc
mov r8d, 0x26efe1c7
xor r8d, 0xec7bb368
mov ecx, 0x10ce7609
xor ecx, 0xef3189f6
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, 0xca9452af
or eax, 0xca9452af
imul eax, edx
add eax, ecx
mov ecx, 0xee7821a
xor ecx, 0xadb81cd7
cmp eax, ecx
jae 0x140032361
mov r9b, byte [rsp + 0x53]
mov eax, dword [0x1401d9598]
mov ecx, dword [0x1401d959c]
xor ecx, 0x23b9acfd
xor edx, edx
div ecx
mov ecx, 0xed7048c4
xor ecx, 0x95446c90
sub eax, ecx
mov ecx, 0x6c34f858
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x38]
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xa3596e6f
mov r8d, 0xffffffff
xor r8d, 0xa3596e6f
and ecx, r8d
or eax, ecx
mov ecx, 0xd1c78b6f
xor ecx, 0x9490f61c
movabs r8, 0x2a67fd6b86ba5512
movabs r10, 0xd59802947945aaed
xor r8, r10
cmp rdx, r8
setg r8b
mov dl, r8b
xor dl, 0xff
xor r10d, r10d
mov r11b, r10b
xor r11b, 1
mov r10b, r9b
xor r10b, r11b
or dl, r10b
xor r8b, 0xff
xor r10d, r10d
xor r10b, 1
xor r9b, r10b
or r8b, r9b
and dl, r8b
xor dl, 0xff
mov byte [rsp + 0x2f], dl
cmp eax, ecx
je 0x140032361
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x140032091
jmp 0x140032060
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xb0]
movabs rax, 0x621fbac3ba29ad6b
movabs r8, 0x9de0453c45d65294
xor rax, r8
add rdx, rax
call fcn.140012270
jmp 0x140032350
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x4c]
shl ecx, 8
movzx edx, byte [rdx + r8]
or ecx, edx
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x58], rax
jmp 0x140031e86
mov ecx, dword [0x1401d95a0]
xor ecx, 0x6e8da89b
add ecx, dword [0x1401d95a4]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x992967f3
xor ecx, 0x4981c758
mov edx, 0xe0b7d12c
xor edx, 0x301f7187
and ecx, edx
mov edx, 0x162de7b2
xor edx, 0xe9d2184d
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0x3ac0eef1
xor ecx, 0xffffffff
add eax, 0x3ac0eef1
add eax, 1
add eax, ecx
mov ecx, 0x8cd1043e
xor edx, edx
div ecx
cmp eax, 0xe3aac6d1
je 0x14003236a
mov rcx, qword [rsp + 0xa8]
mov esi, dword [0x1401d95a8]
xor esi, 0x4060448f
xor esi, dword [0x1401d95ac]
mov eax, 0xc8832afa
xor eax, 0x5ec62ef9
sub esi, eax
add esi, 0xc8ffad53
mov edx, esi
xor edx, 0xffffffff
mov r9d, 0xf01ed944
xor r9d, 0xa7d4bc7c
mov eax, 0x80bff39
xor eax, 0xf7f400c6
xor r9d, eax
mov r8d, 0xffffffff
xor r8d, 0xab3e14eb
mov r10d, 0xec8871b4
xor r10d, 0x47b6655f
mov eax, edx
and eax, r10d
and esi, r8d
mov r10d, r9d
and r10d, 0xab3e14eb
mov r11d, r8d
and r11d, 0x57ca6538
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r9d
xor edx, 0xffffffff
or r8d, 0xab3e14eb
and edx, r8d
or eax, edx
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x2e], cl
cmp eax, 0x131b225f
je 0x14003212e
mov al, byte [rsp + 0x2e]
test al, 1
jne 0x1400321ef
jmp 0x140032350
mov eax, dword [rsp + 0x94]
mov rcx, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0x4c]
mov r9d, 0xac77999c
xor r9d, 0x60e9b4cd
mov edx, r8d
imul edx, r9d
shr edx, 0x11
mov r9d, 0xa86007e6
xor r9d, 0xbec887e6
imul r8d, r9d
or edx, r8d
mov r10d, 0xffffffff
xor r10d, 0x1b873593
mov r9d, edx
and r9d, r10d
mov r8d, edx
or r8d, r10d
xor r8d, 0xffffffff
imul r8d, r9d
mov r10d, 0xb0360784
xor r10d, 0xabb13217
mov r9d, edx
and r9d, r10d
mov r10d, 0xf7585869
xor r10d, 0xecdf6dfa
or edx, r10d
imul edx, r9d
add edx, r8d
mov r9d, ecx
mov ecx, edx
xor ecx, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or ecx, r8d
and ecx, r9d
xor ecx, 0xffffffff
mov r8d, r9d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
mov r9d, 0xf02a41f6
xor r9d, 0xfd5be09
xor edx, r9d
xor r8d, 0xffffffff
or edx, r8d
xor ecx, 0xffffffff
mov r8d, 0xe5193b9c
xor r8d, 0x1ae6c463
xor edx, r8d
or ecx, edx
xor ecx, eax
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul edx, eax, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
mov eax, ecx
xor eax, 0xffffffff
mov r9d, 0xef908c9b
xor r9d, 0x106f7364
mov r8d, ecx
xor r8d, r9d
and eax, r8d
mov r8d, edx
xor r8d, 0xffffffff
mov r9d, edx
xor r9d, 0xffffffff
and r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
imul edx, eax, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
mov eax, 0x489dcba7
xor eax, 0xb7623458
mov r8d, ecx
xor r8d, eax
mov eax, edx
and eax, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
mov eax, eax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
ret
sub esp, ebp
cmp ecx, dword [rdx]
jmp 0x140031f96
invalid