Function at 0x14002e130
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa0
mov r10d, dword [r8]
xor r12d, r12d
mov qword [rbp - 0x51], r12
mov rsi, r8
mov r14, rdx
mov r13, rcx
test r10, r10
jne 0x14002e177
mov r15d, r12d
mov qword [rbp - 0x49], r12
jmp 0x14002e1a9
lea rbx, [r10 + r10*4]
mov r8d, 0x10
shl rbx, 3
mov rdx, rbx
call fcn.14001b3f0
mov qword [rbp - 0x49], rax
mov r15, rax
test rax, rax
je 0x14002e1a6
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.140119530
mov r10d, dword [rsi]
mov rax, qword [rsi + 8]
movabs rbx, 0xffffffffffff
and rax, rbx
mov ecx, r10d
shl rcx, 5
add rcx, rax
mov qword [rsp + 0x98], rdi
cmp rax, rcx
je 0x14002e77e
lea rdi, [rax + 0x10]
mov ecx, 0x1000
test word [rdi - 2], cx
je 0x14002e1ea
lea rcx, [rdi - 0x10]
jmp 0x14002e1f1
mov rcx, qword [rdi - 8]
and rcx, rbx
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.1401212e0
mov r9, rax
movzx r8d, al
mov qword [rbp + 0x5f], rax
movabs r10, 0x100000001b3
movabs rax, 0xcbf29ce484222325
mov rcx, r9
xor r8, rax
shr rcx, 8
movzx edx, cl
mov rax, r9
shr rax, 0x10
movzx ecx, al
mov rax, r9
imul r8, r10
shr rax, 0x18
xor r8, rdx
imul r8, r10
xor r8, rcx
movzx ecx, al
imul r8, r10
mov rax, r9
xor r8, rcx
shr rax, 0x20
movzx ecx, al
mov rax, r9
shr rax, 0x28
imul r8, r10
xor r8, rcx
movzx ecx, al
imul r8, r10
mov rax, r9
xor r8, rcx
shr rax, 0x30
movzx ecx, al
mov rax, r9
shr rax, 0x38
imul r8, r10
xor rcx, r8
imul rcx, r10
xor rcx, rax
imul rcx, r10
and rcx, qword [r13 + 0xf8]
shl rcx, 4
add rcx, qword [r13 + 0xe0]
mov rax, qword [rcx + 8]
cmp rax, qword [r13 + 0xd0]
je 0x14002e2d8
mov rcx, qword [rcx]
cmp r9, qword [rax + 0x10]
je 0x14002e2cf
nop
cmp rax, rcx
je 0x14002e2d8
mov rax, qword [rax + 8]
cmp r9, qword [rax + 0x10]
jne 0x14002e2c0
test rax, rax
jne 0x14002e6ad
mov eax, r12d
lea r8, [rbp - 0x61]
xorps xmm0, xmm0
lea rdx, [rbp - 0x41]
movups xmmword [rbp - 0x61], xmm0
movabs r14, 0xffff000000000000
mov dword [rbp - 0x61], 5
lea rcx, [rax + rax*4]
lea rsi, [r15 + rcx*8]
mov r15d, 0x405
lea rcx, str.flags
mov dword [rsi], 0x10
mov word [rbp - 0x53], r15w
mov rax, qword [rbp - 0x59]
and rax, r14
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
mov ecx, dword [rdi]
mov rax, qword [rdi + 8]
and rax, rbx
shl rcx, 5
add rcx, rax
mov rax, qword [rbp - 0x41]
cmp rax, rcx
je 0x14002e350
add rax, 0x10
jmp 0x14002e361
xorps xmm0, xmm0
lea rax, [0x140202c68]
movups xmmword [0x140202c68], xmm0
mov eax, dword [rax]
lea rcx, str.codeSize
mov dword [rsi + 0x10], eax
lea r8, [rbp - 0x61]
xorps xmm0, xmm0
lea rdx, [rbp - 0x39]
movups xmmword [rbp - 0x61], xmm0
mov word [rbp - 0x53], r15w
mov rax, qword [rbp - 0x59]
and rax, r14
mov dword [rbp - 0x61], 8
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
mov ecx, dword [rdi]
mov rax, qword [rdi + 8]
and rax, rbx
shl rcx, 5
add rcx, rax
mov rax, qword [rbp - 0x39]
cmp rax, rcx
je 0x14002e3bd
add rax, 0x10
jmp 0x14002e3ce
xorps xmm0, xmm0
lea rax, [0x140202c68]
movups xmmword [0x140202c68], xmm0
mov r14, qword [rax]
lea r8, [rbp - 0x61]
xorps xmm0, xmm0
mov qword [rsi + 0x18], r14
movups xmmword [rbp - 0x61], xmm0
mov word [rbp - 0x53], r15w
lea rdx, [rbp - 0x31]
mov rax, qword [rbp - 0x59]
movabs rcx, 0xffff000000000000
and rax, rcx
mov dword [rbp - 0x61], 0xc
lea rcx, str.varintOffset
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
and rbx, qword [rdi + 8]
mov ecx, dword [rdi]
shl rcx, 5
add rbx, rcx
cmp qword [rbp - 0x31], rbx
je 0x14002e5d5
xorps xmm0, xmm0
lea r8, [rbp - 0x61]
movups xmmword [rbp - 0x61], xmm0
mov word [rbp - 0x53], r15w
lea rdx, [rbp - 0x29]
mov rax, qword [rbp - 0x59]
movabs rcx, 0xffff000000000000
and rax, rcx
mov dword [rbp - 0x61], 0xa
lea rcx, str.varintSize
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
cmp qword [rbp - 0x29], rbx
je 0x14002e5d5
mov r8d, 0x40
mov rdx, r14
mov rcx, r13
call fcn.14001b3f0
mov r15, rax
lea r8, [rbp - 0x61]
xorps xmm0, xmm0
lea rdx, [rbp - 0x21]
movups xmmword [rbp - 0x61], xmm0
mov eax, 0x405
mov dword [rbp - 0x61], 0xc
mov word [rbp - 0x53], ax
movabs rcx, 0xffff000000000000
mov rax, qword [rbp - 0x59]
and rax, rcx
lea rcx, str.varintOffset
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
mov r14d, dword [rdi]
movabs rdx, 0xffffffffffff
mov rbx, qword [rdi + 8]
mov ecx, r14d
shl rcx, 5
mov rax, rbx
and rax, rdx
add rcx, rax
mov rax, qword [rbp - 0x21]
cmp rax, rcx
je 0x14002e504
add rax, 0x10
jmp 0x14002e51c
xorps xmm0, xmm0
lea rax, [0x140202c68]
movups xmmword [0x140202c68], xmm0
mov r14d, dword [rdi]
mov rbx, qword [rdi + 8]
mov r12, qword [rax]
lea r8, [rbp - 0x61]
xorps xmm0, xmm0
lea rdx, [rbp - 0x19]
movups xmmword [rbp - 0x61], xmm0
mov eax, 0x405
mov dword [rbp - 0x61], 0xa
mov word [rbp - 0x53], ax
movabs rcx, 0xffff000000000000
mov rax, qword [rbp - 0x59]
and rax, rcx
lea rcx, str.varintSize
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
movabs rax, 0xffffffffffff
mov ecx, r14d
and rbx, rax
shl rcx, 5
mov rax, qword [rbp - 0x19]
add rcx, rbx
cmp rax, rcx
je 0x14002e58b
add rax, 0x10
jmp 0x14002e59c
xorps xmm0, xmm0
lea rax, [0x140202c68]
movups xmmword [0x140202c68], xmm0
mov r9, qword [rax]
lea rax, [r9 + r12]
cmp rax, qword [rbp + 0x7f]
ja 0x14002e72e
mov rdx, qword [rsi + 0x18]
mov rcx, r15
mov r8, qword [rbp + 0x77]
add r8, r12
shr rdx, 2
call fcn.1400421a0
test al, al
je 0x14002e6de
mov r12, qword [rbp - 0x51]
jmp 0x14002e661
xorps xmm0, xmm0
lea r8, [rbp - 0x61]
movups xmmword [rbp - 0x61], xmm0
mov word [rbp - 0x53], r15w
lea rdx, [rbp - 0x11]
mov rax, qword [rbp - 0x59]
movabs rcx, 0xffff000000000000
and rax, rcx
mov dword [rbp - 0x61], 4
lea rcx, str.code
or rax, rcx
mov rcx, rdi
mov qword [rbp - 0x59], rax
call fcn.140015810
mov rax, qword [rbp - 0x11]
cmp rax, rbx
je 0x14002e626
lea rdx, [rax + 0x10]
jmp 0x14002e637
xorps xmm0, xmm0
lea rdx, [0x140202c68]
movups xmmword [0x140202c68], xmm0
mov eax, 0x1000
test word [rdx + 0xe], ax
jne 0x14002e653
mov rax, qword [rdx + 8]
movabs rdx, 0xffffffffffff
and rdx, rax
mov r8, r14
mov rcx, r13
call fcn.14001b9d0
mov r15, rax
mov qword [rsi + 0x20], r15
lea rcx, [r13 + 0xc8]
mov r14, qword [rbp + 0x67]
lea r8, [rbp + 0x5f]
lea rdx, [rbp - 9]
mov rax, qword [r14]
mov rbx, qword [rax + 0x38]
call fcn.140017de0
mov rdx, qword [rbp + 0x5f]
mov r8, rsi
mov rcx, r14
mov r9, qword [rax]
add r9, 0x18
call rbx
test al, al
je 0x14002e77a
mov rsi, qword [rbp + 0x6f]
movabs rbx, 0xffffffffffff
mov ecx, dword [rsi]
add rdi, 0x20
mov rax, qword [rsi + 8]
inc r12d
and rax, rbx
shl rcx, 5
add rcx, rax
mov qword [rbp - 0x51], r12
lea rax, [rdi - 0x10]
cmp rax, rcx
je 0x14002e77e
mov r15, qword [rbp - 0x49]
jmp 0x14002e1d9
mov edx, dword [0x140204d10]
mov rax, qword gs:[0x58]
mov ecx, 8
mov rax, qword [rax + rdx*8]
cmp dword [rcx + rax], 2
jg 0x14002e77a
lea rdx, str.Invalid_varint_format._n
mov ecx, 2
call fcn.14001c3a0
test al, al
jne 0x14002e77a
mov ecx, 2
call fcn.140121458
lea rdx, str.Fossilize_ERROR:_Invalid_varint_format._n
mov rcx, rax
call fcn.1400020d0
xor al, al
jmp 0x14002e78c
mov edx, dword [0x140204d10]
mov rax, qword gs:[0x58]
mov ecx, 8
mov rax, qword [rax + rdx*8]
cmp dword [rcx + rax], 2
jg 0x14002e77a
lea rdx, str.Binary_varint_buffer_overflows_payload._n
mov ecx, 2
call fcn.14001c3a0
test al, al
jne 0x14002e77a
mov ecx, 2
call fcn.140121458
lea rdx, str.Fossilize_ERROR:_Binary_varint_buffer_overflows_payload._n
mov rcx, rax
call fcn.1400020d0
xor al, al
jmp 0x14002e78c
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x80]
mov al, 1
mov rdi, qword [rsp + 0x98]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbx
pop rbp
ret