Function at 0x427440
Capabilities:
Hash data using murmur3

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x18]
jbe 0x427ccc
sub rsp, 0x78
mov qword [rsp + 0x70], rbp
lea rbp, [rsp + 0x70]
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rcx, qword [rax + 0x30]
mov rcx, qword [rcx + 0xa0]
test rcx, rcx
je 0x427c65
mov rdx, qword [rsp + 0x88]
nop dword [rax]
cmp rdx, 0x10
jae 0x427c58
cmp qword [rcx + 0x50], 0
je 0x427be6
lea rax, [rcx + 0x48]
mov qword [rsp], rax
mov qword [rsp + 8], rdx
call sym.a.out.exe_runtime._pageCache_.alloc
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
test rax, rax
je 0x427bcf
mov rdx, qword gs:[0x28]
mov rdx, qword [rdx]
mov rdx, qword [rdx + 0x30]
mov rdx, qword [rdx + 0xa0]
test rdx, rdx
je 0x42750a
mov rbx, qword [rdx + 0x1228]
test rbx, rbx
jne 0x427ba7
xor edx, edx
test rdx, rdx
je 0x427b92
cmp dword [sym.a.out.exe_runtime.gcBlackenEnabled], 0
nop dword [rax]
jne 0x427b7d
movzx ebx, byte [rsp + 0x90]
test bl, bl
je 0x42790f
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rcx
xorps xmm0, xmm0
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], 0
mov qword [rdx + 0x18], rax
mov rbx, qword [rsp + 0x88]
mov qword [rdx + 0x20], rbx
mov word [rdx + 0x60], 0
mov byte [rdx + 0x62], 0
mov qword [rdx + 0x68], 0
movups xmmword [rdx + 0x78], xmm0
mov byte [rdx + 0x64], 0
mov qword [rdx + 0x30], 0
movups xmmword [rdx + 0x48], xmm0
nop
lea rsi, [rdx + 0x63]
mov qword [rsp + 0x68], rsi
xor edi, edi
xchg byte [rsi], dil
mov rdi, qword [rsp + 0x80]
mov qword [rsp], rdi
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.a.out.exe_runtime._mheap_.allocNeedsZero
cmp byte [rsp + 0x18], 0
je 0x427905
mov rdx, qword [rsp + 0x28]
mov byte [rdx + 0x64], 1
mov rax, qword [rsp + 0x88]
shl rax, 0xd
mov qword [rsp + 0x48], rax
movzx esi, byte [rsp + 0x90]
test sil, sil
jne 0x4278a5
movzx edi, byte [rsp + 0x91]
mov byte [rdx + 0x62], dil
shr dil, 1
nop dword [rax + rax]
test dil, dil
jne 0x42782a
mov qword [rdx + 0x68], rax
mov qword [rdx + 0x38], 1
mov byte [rdx + 0x65], 0
mov word [rdx + 0x5c], 0
mov byte [rdx + 0x66], 0
mov word [rdx + 0x5e], 0
mov qword [rdx + 0x30], 0
mov qword [rdx + 0x40], 0xffffffffffffffff
mov rax, qword [rdx + 0x38]
mov qword [rsp], rax
call sym.a.out.exe_runtime.newMarkBits
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 0x50], rax
mov rax, qword [rcx + 0x38]
mov qword [rsp], rax
nop dword [rax]
call sym.a.out.exe_runtime.newAllocBits
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 0x48], rax
mov rax, qword [rsp + 0x80]
test byte [rax], al
mov edx, dword [rax + 0x10128]
xchg dword [rcx + 0x58], edx
nop
mov edx, 1
mov rbx, qword [rsp + 0x68]
xchg byte [rbx], dl
mov rdx, qword [rsp + 0x20]
nop dword [rax + rax]
test rdx, rdx
jne 0x4277ef
mov rax, qword [rsp + 0x98]
mov qword [rsp], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 8], rax
nop
call sym.a.out.exe_runtime.mSysStatInc
lea rax, [0x00608da0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 8], rax
call sym.a.out.exe_runtime.mSysStatDec
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 0x18]
mov rdx, qword [rsp + 0x80]
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rax
call sym.a.out.exe_runtime._mheap_.setSpans
movzx eax, byte [rsp + 0x90]
test al, al
je 0x42773c
nop dword [rax]
call sym.a.out.exe_runtime.publicationBarrier
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xa0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
nop
nop
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rdx + 0x18]
nop
movabs rbx, 0x800000000000
lea rax, [rbx + rcx]
mov rbx, rax
shr rax, 0x2a
nop dword [rax]
cmp rax, 0x40
jae 0x427c6f
lea rsi, [0x005fe660]
mov rax, qword [rsi + rax*8]
shr rbx, 0x16
and rbx, 0xfffff
mov rbx, qword [rax + rbx*8]
test byte [rbx], al
test byte [rax], al
mov rax, rcx
shr rcx, 0x10
and rcx, 0x3f
lea rbx, [rbx + rcx]
lea rbx, [rbx + 0x21000]
shr rax, 0xd
and rax, 7
mov rcx, rax
mov esi, 1
shl esi, cl
lock or byte [rbx], sil
mov rax, qword [rsp + 0x80]
test byte [rax], al
mov rbx, qword [rsp + 0x88]
lock xadd qword [rax + 0x101a8], rbx
cmp byte [0x005de170], 0
je 0x427720
nop dword [rax]
call sym.a.out.exe_runtime.traceHeapAlloc
mov rdx, qword [rsp + 0x28]
jmp 0x427720
mov rax, qword [rsp + 0x38]
mov qword [rsp], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 8], rax
call sym.a.out.exe_runtime.sysUsed
lea rax, [0x00608db0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 8], rax
nop dword [rax]
call sym.a.out.exe_runtime.mSysStatDec
jmp 0x4276a9
movsx rdi, dil
cmp rdi, 0x43
jae 0x427c7e
lea rcx, sym.a.out.exe_runtime.class_to_size
movzx ecx, word [rcx + rdi*2]
mov qword [rdx + 0x68], rcx
test rcx, rcx
je 0x427c79
mov r9, rdx
xor edx, edx
div rcx
mov qword [r9 + 0x38], rax
lea rcx, [rdi + rdi*2]
lea rdi, sym.a.out.exe_runtime.class_to_divmagic
lea r10, [rdi + rcx*2]
movzx r10d, byte [r10]
mov byte [r9 + 0x65], r10b
movzx r10d, word [rdi + rcx*2 + 2]
mov word [r9 + 0x5c], r10w
lea r10, [rdi + rcx*2]
lea r10, [r10 + 1]
movzx r10d, byte [r10]
mov byte [r9 + 0x66], r10b
movzx ecx, word [rdi + rcx*2 + 4]
mov word [r9 + 0x5e], cx
mov rdx, r9
nop dword [rax + rax]
jmp 0x427629
mov qword [rdx + 0x28], 0
mov qword [rdx + 0x38], 0
mov rax, qword [rdx + 0x20]
shl rax, 0xd
add rax, qword [rdx + 0x18]
mov qword [rdx + 0x70], rax
mov rax, qword [rdx + 0x20]
lea rcx, [0x00608d98]
mov qword [rsp], rcx
shl rax, 0xd
mov qword [rsp + 8], rax
nop dword [rax]
call sym.a.out.exe_runtime.mSysStatDec
mov eax, 2
mov rcx, qword [rsp + 0x68]
xchg byte [rcx], al
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x28]
nop
jmp 0x427693
mov rdx, qword [rsp + 0x28]
jmp 0x4275c7
movzx esi, byte [rsp + 0x91]
mov edi, esi
shr sil, 1
nop dword [rax]
test sil, sil
jne 0x427536
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x80]
test byte [rbx], al
nop
mov qword [rsp], rbx
call sym.a.out.exe_runtime.lock2
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x427abc
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x427a97
mov qword [rsp + 0x40], rdx
movzx ebx, byte [rsp + 0x90]
test bl, bl
je 0x4279ae
nop
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
call sym.a.out.exe_runtime.unlock2
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
jmp 0x427536
mov rsi, qword [rsp + 0x50]
mov rsi, qword [rsi + 0x30]
mov rsi, qword [rsi + 0xa0]
nop
test rsi, rsi
je 0x427a82
mov rsi, qword [rsi + 0x40]
mov rdi, qword [rsi + 8]
add qword [0x0060a4b8], rdi
mov qword [rsi + 8], 0
mov rdi, qword [rsi + 0x20]
add qword [0x0060a488], rdi
mov qword [rsi + 0x20], 0
movzx esi, byte [rsp + 0x91]
mov edi, esi
shr sil, 1
test sil, sil
jne 0x427a77
mov rsi, qword [rsp + 0x88]
mov r8, rsi
shl rsi, 0xd
add qword [0x005fe428], rsi
inc qword [0x005fe430]
lea r9, [0x0060a4b0]
lock xadd qword [r9], rsi
cmp dword [sym.a.out.exe_runtime.gcBlackenEnabled], 0
je 0x427988
lea rax, [sym.a.out.exe_runtime.gcController]
mov qword [rsp], rax
call sym.a.out.exe_runtime._gcControllerState_.revise
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
movzx ebx, byte [rsp + 0x90]
movzx edi, byte [rsp + 0x91]
mov r8, qword [rsp + 0x88]
jmp 0x427988
mov r8, qword [rsp + 0x88]
nop
jmp 0x427a2e
mov rsi, qword [sym.a.out.exe_runtime.mcache0]
test rsi, rsi
jne 0x4279cd
jmp 0x427c8b
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
call sym.a.out.exe_runtime._mheap_.allocMSpanLocked
mov rdx, qword [rsp + 8]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
jmp 0x427977
mov rax, qword [rsp + 0x80]
lea rcx, [rax + 8]
mov qword [rsp + 0x60], rcx
mov qword [rsp], rcx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 8], rdx
nop
call sym.a.out.exe_runtime._pageAlloc_.alloc
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
test rax, rax
jne 0x42795f
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 8], rcx
call sym.a.out.exe_runtime._mheap_.grow
cmp byte [rsp + 0x10], 0
jne 0x427b46
nop
nop
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
call sym.a.out.exe_runtime.unlock2
mov qword [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 8], rax
nop dword [rax]
call sym.a.out.exe_runtime._pageAlloc_.alloc
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
test rax, rax
jne 0x42795f
jmp 0x427ca5
movzx ebx, byte [rsp + 0x90]
movzx edi, byte [rsp + 0x91]
jmp 0x427929
movzx ebx, byte [rsp + 0x90]
movzx edi, byte [rsp + 0x91]
jmp 0x427929
lea rsi, [rbx - 1]
cmp rsi, 0x80
jae 0x427cbe
mov rbx, qword [rdx + rbx*8 + 0x1228]
mov qword [rdx + 0x1228], rsi
mov rdx, rbx
jmp 0x42750c
movzx ebx, byte [rsp + 0x90]
movzx edi, byte [rsp + 0x91]
xor edx, edx
jmp 0x427929
mov qword [rsp + 0x58], rcx
mov rax, qword [rsp + 0x80]
test byte [rax], al
nop
mov qword [rsp], rax
call sym.a.out.exe_runtime.lock2
mov rax, qword [rsp + 0x80]
lea rcx, [rax + 8]
mov qword [rsp], rcx
call sym.a.out.exe_runtime._pageAlloc_.allocToCache
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
mov rdx, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x58]
mov qword [rbx + 0x48], rax
mov qword [rbx + 0x50], rcx
mov qword [rbx + 0x58], rdx
nop
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
call sym.a.out.exe_runtime.unlock2
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x88]
jmp 0x4274b5
xor eax, eax
xor edx, edx
xor ecx, ecx
nop
jmp 0x427929
mov rdx, qword [rsp + 0x88]
jmp 0x427c58
mov ecx, 0x40
call sym.a.out.exe_runtime.panicIndexU
call sym.a.out.exe_runtime.panicdivide
mov rax, rdi
mov ecx, 0x43
call sym.a.out.exe_runtime.panicIndex
lea rax, [0x0053db5b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x20
nop
call sym.a.out.exe_runtime.throw
lea rax, [0x0053f64c]
mov qword [rsp], rax
mov qword [rsp + 8], 0x2b
call sym.a.out.exe_runtime.throw
mov rax, rsi
mov ecx, pe_nt_image_headers64
call sym.a.out.exe_runtime.panicIndex
nop
call sym.a.out.exe_runtime.morestackc
jmp sym.a.out.exe_runtime._mheap_.allocSpan