Function at 0x14000c780
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r9d, edx
mov rsi, rcx
mov ebp, r9d
shr ebp, 0xc
and bpl, 7
mov eax, dword [rcx]
add eax, eax
lea eax, [rax + rax*2]
add al, bpl
cmp bpl, 6
movzx eax, al
mov ecx, 0xc
cmovne ecx, eax
mov dword [rsp + 0x3c], ecx
movzx r15d, dx
mov edi, r15d
shr edi, 6
mov ebx, edi
and ebx, 0x3f
movzx r14d, byte [rsi + rbx + 0x78]
lea r8, [rsi + 8]
mov rdx, qword [rsi + 0x8108]
cmp rdx, qword [rsi + 0x8110]
mov dword [rsp + 0x28], r9d
je 0x14000c802
mov r13, r8
mov rax, qword [rsi + 8]
mov qword [rdx], rax
add rdx, 8
mov qword [rsi + 0x8108], rdx
jmp 0x14000c811
lea rcx, [rsi + 0x8100]
mov r13, r8
call fcn.14000b640
movzx eax, byte [rsi + 3]
movzx ecx, word [rsi + 1]
mov word [rsp + 0x48], cx
mov byte [rsp + 0x4a], al
mov byte [rsp + 0x4b], r14b
mov rdx, qword [rsi + 0x8138]
cmp rdx, qword [rsi + 0x8140]
je 0x14000c847
mov eax, dword [rsp + 0x48]
mov dword [rdx], eax
add qword [rsi + 0x8138], 4
jmp 0x14000c858
lea rcx, [rsi + 0x8130]
lea r8, [rsp + 0x48]
call fcn.14000c580
and r15d, 0x3f
lea r8, [rsi + 0x10]
mov rdx, qword [rsi + 0x8120]
cmp rdx, qword [rsi + 0x8128]
mov qword [rsp + 0x58], r8
je 0x14000c889
mov rax, qword [rsi + 0x10]
mov qword [rdx], rax
add rdx, 8
mov qword [rsi + 0x8120], rdx
jmp 0x14000c895
lea rcx, [rsi + 0x8118]
call fcn.14000b640
inc byte [rsi + 3]
inc word [rsi + 4]
movzx r10d, r14b
lea r11, [rsi + rbx]
add r11, 0x78
movzx eax, byte [rsi + 1]
cmp bpl, 5
jne 0x14000c8e8
cmp r10d, 9
je 0x14000c8be
cmp r10d, 3
jne 0x14000c8e8
mov rdx, rax
movzx eax, byte [rsi + r15 + 0x78]
imul eax, eax, 0xab
shr eax, 0xa
movzx ecx, byte [r11]
imul ecx, ecx, 0xab
shr ecx, 0xa
cmp al, cl
mov rax, rdx
sete r12b
jmp 0x14000c8eb
xor r12d, r12d
cmp al, 0x40
mov byte [rsp + 0x2f], r14b
mov qword [rsp + 0x60], rax
jne 0x14000c8ff
mov rcx, qword [r13]
jmp 0x14000c915
and eax, 7
lea rdx, str.Amw3_9
mov rcx, qword [r13]
xor rcx, qword [rdx + rax*8 + 0x1820]
movzx r14d, bl
mov byte [rsi + 1], 0x40
movzx eax, byte [rsi + 2]
lea rdx, [0x14010ec00]
xor rcx, qword [rdx + rax*8]
mov qword [rsi + 8], rcx
test r12b, r12b
mov qword [rsp + 0x30], r10
je 0x14000c997
mov edx, dword [rsp + 0x28]
and dl, 0x38
cmp r14b, r15b
seta r8b
add r8b, r8b
or r8b, dl
add r8b, 3
cmp byte [rsi], 0
lea rdx, [0x14010ebdc]
lea r9, [0x14010ebf4]
cmove r9, rdx
movsxd rdx, dword [r9]
shl rdx, 6
lea r9, [r14 + rdx]
lea r10, str.Amw3_9
mov r9, qword [r10 + r9*8]
movzx r8d, r8b
or r8d, edx
movsxd rdx, r8d
xor r9, qword [r10 + rdx*8]
mov r10, qword [rsp + 0x30]
xor rcx, r9
mov qword [rsi + 8], rcx
cmp bpl, 5
jne 0x14000c9bb
movzx ecx, byte [rsi]
test ecx, ecx
je 0x14000ca90
cmp ecx, 1
mov rdi, r13
jne 0x14000cb7e
mov cl, 0xf3
jmp 0x14000ca95
test bpl, bpl
je 0x14000caa6
movzx ecx, bpl
cmp ecx, 3
mov rdi, r13
jne 0x14000cb7e
mov byte [rsp + 0x27], r15b
movzx ecx, r15b
movabs rdx, 0x4bf29ce484222325
xor rdx, rcx
movabs r8, 0x100000001b3
imul r8, rdx
and r8, qword [0x14032db28]
mov r9, qword [0x14032db10]
mov rcx, r8
shl rcx, 4
mov rcx, qword [r9 + rcx + 8]
mov rdx, qword [0x14032db00]
cmp rcx, rdx
mov r13d, dword [rsp + 0x28]
je 0x14000cb83
cmp byte [rcx + 0x10], r15b
je 0x14000ca53
add r8, r8
mov r8, qword [r9 + r8*8]
nop word cs:[rax + rax]
cmp rcx, r8
je 0x14000cb83
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x10], r15b
jne 0x14000ca40
cmp rcx, rdx
je 0x14000cb83
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x27]
mov qword [rsp + 0x40], r11
call fcn.14000cef0
mov r10, qword [rsp + 0x30]
mov r11, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 0x11]
not al
and al, byte [rsi + 2]
mov byte [rsi + 2], al
jmp 0x14000cb83
mov cl, 0xfc
mov rdi, r13
mov r13d, dword [rsp + 0x28]
and cl, al
mov byte [rsi + 2], cl
mov eax, ecx
jmp 0x14000cb83
mov byte [rsi + 3], 0
cmp bl, byte [rsp + 0x60]
je 0x14000cb3b
movzx edx, r15b
sub edx, r14d
mov r8d, edx
neg r8d
cmovs r8d, edx
cmp r8d, 0x10
jne 0x14000cb7b
mov qword [rsp + 0x40], r11
movzx r8d, byte [rsi]
mov edx, ebx
xor dl, 8
movzx r9d, dl
mov r10, r8
shl r10, 9
lea r11, [0x14026a890]
add r11, r10
xor r8, 1
lea r8, [r8 + r8*2]
shl r8, 4
mov r8, qword [rsi + r8 + 0x18]
test qword [r11 + r9*8], r8
je 0x14000cb27
mov byte [rsi + 1], dl
and dil, 7
movzx edx, dil
lea r8, str.Amw3_9
xor rcx, qword [r8 + rdx*8 + 0x1820]
mov qword [rsi + 8], rcx
mov r11, qword [rsp + 0x40]
mov rdi, r13
mov r13d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
jmp 0x14000cb83
mov rdx, r14
xor rdx, 8
movzx r8d, byte [rsi]
xor r8b, 1
movzx r8d, r8b
add r8d, r8d
lea r8d, [r8 + r8*2]
movzx r8d, r8b
lea r9, [0x14010ebd0]
movsxd r8, dword [r9 + r8*4]
shl r8, 9
lea rdx, [r8 + rdx*8]
lea r8, str.Amw3_9
xor rcx, qword [r8 + rdx]
mov qword [rsi + 8], rcx
mov rdi, r13
mov r13d, dword [rsp + 0x28]
cmp byte [rsp + 0x2f], 0xc
sete cl
or cl, r12b
jne 0x14000cc64
mov byte [rsi + 3], 0
lea rcx, [0x14010ebd0]
movsxd rcx, dword [rcx + r10*4]
shl rcx, 9
lea rcx, [rcx + r14*8]
lea rdx, str.Amw3_9
mov rcx, qword [rdx + rcx]
xor qword [rsi + 8], rcx
cmp r10d, 9
je 0x14000cbca
cmp r10d, 3
jne 0x14000cc64
mov byte [rsp + 0x27], bl
movabs rcx, 0x4bf29ce484222325
xor rcx, rbx
movabs r8, 0x100000001b3
imul r8, rcx
and r8, qword [0x14032db28]
mov r9, qword [0x14032db10]
mov rcx, r8
shl rcx, 4
mov rcx, qword [r9 + rcx + 8]
mov rdx, qword [0x14032db00]
cmp rcx, rdx
je 0x14000cc64
cmp byte [rcx + 0x10], bl
je 0x14000cc2e
add r8, r8
mov r8, qword [r9 + r8*8]
nop dword [rax + rax]
cmp rcx, r8
je 0x14000cc64
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x10], bl
jne 0x14000cc20
cmp rcx, rdx
je 0x14000cc64
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x27]
mov r13, rdi
mov rdi, r11
call fcn.14000cef0
mov r11, rdi
mov rdi, r13
mov r13d, dword [rsp + 0x28]
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 0x11]
not al
and al, byte [rsi + 2]
mov byte [rsi + 2], al
movzx edx, byte [rsp + 0x3c]
test r13w, r13w
js 0x14000cca2
lea rcx, [0x14010ebd0]
movsxd r9, dword [rcx + rdx*4]
shl r9, 6
movzx ecx, r15b
or rcx, r9
lea r10, str.Amw3_9
mov r8, qword [r10 + rcx*8]
mov rcx, qword [rdi]
xor rcx, r8
add r9d, r14d
movsxd r9, r9d
mov r9, qword [r10 + r9*8]
jmp 0x14000cce9
mov byte [rsi + 3], 0
mov ecx, dword [rsi]
add ecx, ecx
lea ecx, [rcx + rcx*2]
movzx ecx, cl
lea r9, [0x14010ebd0]
movsxd rcx, dword [r9 + rcx*4]
movzx r8d, r15b
shl rcx, 9
lea rcx, [rcx + r8*8]
lea r10, str.Amw3_9
mov r8, qword [r10 + rcx]
mov rcx, qword [rsi + 8]
xor rcx, r8
movsxd r9, dword [r9 + rdx*4]
shl r9, 9
lea r9, [r9 + r14*8]
mov r9, qword [r10 + r9]
xor rcx, r9
test bpl, bpl
jne 0x14000ccff
mov r10, qword [rsp + 0x58]
xor r8, qword [r10]
xor r8, r9
mov qword [r10], r8
movzx eax, al
lea r8, [0x14010ec00]
xor rcx, qword [r8 + rax*8]
movabs rax, 0xf8d626aaaf278509
xor rax, rcx
mov qword [rdi], rax
test r12b, r12b
je 0x14000cdd8
mov r12, r11
movzx eax, byte [rsi]
mov ecx, r13d
and cl, 0x38
cmp bl, r15b
seta r10b
lea r9d, [r10 + r10]
or r9b, cl
add r9b, 3
shl r10b, 2
or r10b, cl
or r10b, 2
mov r8, 0xfffffffffffffffe
mov ecx, r15d
rol r8, cl
mov r11, 0xfffffffffffffffe
and qword [rsi + rdx*8 + 0x18], r8
mov ecx, ebx
rol r11, cl
lea rdi, [rsi + 0x60]
lea rcx, [rsi + 0x30]
test al, al
mov ebp, 3
mov r14d, 9
cmove r14d, ebp
cmove rdi, rcx
mov byte [rsi + r15 + 0x78], 0xc
and qword [rdi], r11
mov byte [rsi + rbx + 0x78], 0xc
movzx r10d, r10b
mov ecx, 1
shlx r11, rcx, r10
or qword [rsi + rdx*8 + 0x18], r11
mov byte [rsi + r10 + 0x78], dl
shlx r10, rcx, r9
or qword [rdi], r10
movzx r9d, r9b
mov byte [rsi + r9 + 0x78], r14b
test r13w, r13w
jns 0x14000ced1
shlx rcx, rcx, rbx
mov r11, r12
jmp 0x14000ceab
test bpl, bpl
jne 0x14000ce16
cmp bl, byte [rsp + 0x60]
jne 0x14000ce16
mov eax, ebx
xor al, 8
movzx ecx, byte [rsi]
xor cl, 1
movzx ecx, cl
add ecx, ecx
lea r8d, [rcx + rcx*2]
movzx ecx, al
mov rax, 0xfffffffffffffffe
rol rax, cl
movzx r8d, r8b
and qword [rsi + r8*8 + 0x18], rax
lea rax, [rsi + rcx]
add rax, 0x78
jmp 0x14000ce67
cmp byte [rsp + 0x2f], 0xc
je 0x14000ce6a
mov r8, qword [rsp + 0x30]
test r8d, r8d
je 0x14000ce2d
cmp r8d, 6
jne 0x14000ce53
lea rax, [0x14010ebd0]
movsxd rax, dword [rax + r8*4]
shl rax, 9
lea rax, [rax + r14*8]
lea rcx, str.Amw3_9
mov rax, qword [rcx + rax]
mov rcx, qword [rsp + 0x58]
xor qword [rcx], rax
mov rax, 0xfffffffffffffffe
mov ecx, ebx
rol rax, cl
and qword [rsi + r8*8 + 0x18], rax
mov rax, r11
mov byte [rax], 0xc
test r13w, r13w
js 0x14000ce8d
mov rax, qword [rsi + rdx*8 + 0x18]
btr rax, r15
bts rax, rbx
mov qword [rsi + rdx*8 + 0x18], rax
mov byte [rsi + r15 + 0x78], 0xc
movzx eax, byte [rsi]
jmp 0x14000ceca
mov r8, 0xfffffffffffffffe
mov ecx, r15d
rol r8, cl
movzx eax, byte [rsi]
movzx r15d, r15b
mov ecx, 1
shlx rcx, rcx, rbx
movzx r9d, al
add r9d, r9d
lea r9d, [r9 + r9*2]
movzx r9d, r9b
and qword [rsi + r9*8 + 0x18], r8
mov byte [rsi + r15 + 0x78], 0xc
or qword [rsi + rdx*8 + 0x18], rcx
mov ecx, dword [rsp + 0x3c]
mov byte [r11], cl
xor al, 1
mov byte [rsi], al
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret