Function at 0x140077940
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
test r8, r8
je 0x140077f00
mov r14, r8
mov r15, rdx
mov r13, rcx
cmp r8, 0x40
ja 0x140077982
lea rcx, [r14 - 1]
mov esi, r14d
and esi, 3
cmp rcx, 3
jae 0x1400779c0
xor ebx, ebx
jmp 0x140077a1f
xor eax, eax
cmp r14, 0x10000
setb sil
setae cl
jae 0x140077f00
xor ebx, ebx
mov al, cl
lea ecx, [rax + rax*2]
movabs rdi, 0x89cd31291d2aefa4
mov eax, 1
mov r10, qword [r13 + 0x20]
test r10, r10
jne 0x140077b1b
jmp 0x140077f00
mov rcx, r14
and rcx, 0xfffffffffffffffc
xor ebp, ebp
lea rdx, [0x1401e628b]
movzx ebx, byte [r15 + rbp]
movzx ebx, byte [rbx + rdx]
mov byte [rsp + rbp + 0x98], bl
movzx ebx, byte [r15 + rbp + 1]
movzx ebx, byte [rbx + rdx]
mov byte [rsp + rbp + 0x99], bl
movzx ebx, byte [r15 + rbp + 2]
movzx ebx, byte [rbx + rdx]
mov byte [rsp + rbp + 0x9a], bl
lea rbx, [rbp + 4]
movzx edi, byte [r15 + rbp + 3]
movzx eax, byte [rdi + rdx]
mov byte [rsp + rbp + 0x9b], al
mov rbp, rbx
cmp rcx, rbx
jne 0x1400779d0
test rsi, rsi
je 0x140077a54
lea rcx, [rsp + rbx]
add rcx, 0x98
add r15, rbx
xor edx, edx
lea rbp, [0x1401e628b]
nop dword [rax + rax]
movzx eax, byte [r15 + rdx]
movzx eax, byte [rax + rbp]
mov byte [rcx + rdx], al
inc rdx
cmp rsi, rdx
jne 0x140077a40
lea r15, [rsp + 0x98]
mov rcx, r15
mov rdx, r14
call fcn.1400809f0
cmp al, 0x51
jne 0x140077aa0
cmp r14, 0xf
ja 0x140077ac4
xor eax, eax
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [rsp + rcx + 0x98], 0
je 0x140077ae4
inc rcx
cmp r14, rcx
jne 0x140077a80
cmp rax, 1
sete cl
jne 0x140077af6
jmp 0x140077f00
movzx r15d, al
movabs rdi, 0xa8c7f832281a39c5
mov bl, 1
mov cl, 2
xor eax, eax
xor esi, esi
mov r10, qword [r13 + 0x20]
test r10, r10
jne 0x140077b1b
jmp 0x140077f00
lea rdx, [rsp + 0x98]
xor ecx, ecx
mov r8, r14
call fcn.14005be50
cmp rax, 1
sete cl
jne 0x140077af6
jmp 0x140077f00
mov eax, 1
cmp rax, 1
sete cl
je 0x140077f00
add cl, cl
or cl, 1
xor esi, esi
movabs rdi, 0x89cd31291d2aefa4
mov eax, 1
xor ebx, ebx
mov r10, qword [r13 + 0x20]
test r10, r10
je 0x140077f00
cmp dword [r13 + 0x40], 2
mov qword [rsp + 0x40], r10
jne 0x140077bb6
mov dword [rsp + 0x38], ecx
movdqu xmm0, xmmword [r13 + 0x48]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
movdqa xmmword [rsp + 0x50], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmmword [0x140176670]
movdqa xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x70], xmm0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.14006f130
test bl, bl
je 0x140077bd7
movzx eax, r15b
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x28]
mov r8d, 8
jmp 0x140077c99
test bl, bl
je 0x140077c28
movzx eax, r15b
xor rax, rdi
movabs rdi, 0x1efac7090aef4a21
imul rdi, rax
mov r11b, 2
jmp 0x140077d99
test sil, sil
je 0x140077c8e
test r14, r14
je 0x140077c9e
xor esi, esi
lea rdi, [0x1401e628b]
lea r12, [rsp + 0x50]
lea rbx, [rsp + 0x28]
nop dword [rax]
movzx eax, byte [r15 + rsi]
movzx eax, byte [rax + rdi]
mov byte [rsp + 0x28], al
mov r8d, 1
mov rcx, r12
mov rdx, rbx
call fcn.14006f130
inc rsi
cmp r14, rsi
jne 0x140077c00
jmp 0x140077c9e
lea r9, [r15 + r14]
test sil, sil
je 0x140077f16
test r14, r14
je 0x140077f61
lea r8, [r14 - 1]
mov rbp, r14
and rbp, 3
je 0x140077f74
lea rbx, [0x1401e628b]
movabs rax, 0x100000001b3
mov rcx, r15
mov rdx, rdi
nop word cs:[rax + rax]
movzx esi, byte [rcx]
movzx edi, byte [rsi + rbx]
xor rdi, rdx
imul rdi, rax
inc rcx
mov rdx, rdi
dec rbp
jne 0x140077c70
jmp 0x140077f77
lea rcx, [rsp + 0x50]
mov rdx, r15
mov r8, r14
call fcn.14006f130
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x80]
shl rbp, 0x38
or rbp, qword [rsp + 0x88]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x50]
add rdx, rdi
rol rdi, 0xd
xor rax, rbp
xor rdi, rdx
rol rdx, 0x20
mov rcx, qword [rsp + 0x58]
add rcx, rax
rol rax, 0x10
xor rax, rcx
add rdx, rax
rol rax, 0x15
add rcx, rdi
rol rdi, 0x11
xor rax, rdx
xor rdi, rcx
rol rcx, 0x20
xor rdx, rbp
add rdx, rdi
rol rdi, 0xd
xor rdi, rdx
rol rdx, 0x20
xor rcx, 0xff
add rcx, rax
rol rax, 0x10
xor rax, rcx
add rdx, rax
rol rax, 0x15
add rcx, rdi
rol rdi, 0x11
xor rdi, rcx
rol rcx, 0x20
xor rax, rdx
add rdx, rdi
rol rdi, 0xd
xor rdi, rdx
rol rdx, 0x20
add rcx, rax
rol rax, 0x10
xor rax, rcx
add rdx, rax
rol rax, 0x15
add rcx, rdi
rol rdi, 0x11
xor rdi, rcx
rol rcx, 0x20
xor rax, rdx
add rdx, rdi
rol rdi, 0xd
xor rdi, rdx
add rcx, rax
shl rax, 0x10
xor rax, rcx
shr rax, 0x2b
add rcx, rdi
shr rdi, 0x2f
xor rdi, rcx
shr rcx, 0x20
xor rdi, rax
xor rdi, rcx
mov r10, qword [rsp + 0x40]
mov r11d, dword [rsp + 0x38]
and edi, 0x7fff
movzx r12d, word [r13 + 0x58]
mov esi, edi
and esi, r12d
mov rax, r13
mov r13, qword [r13]
mov rbp, qword [rax + 8]
mov r9, qword [rax + 0x18]
mov qword [rsp + 0x30], r14
neg r14
mov qword [rsp + 0x38], r14
xor r14d, r14d
jmp 0x140077dd6
inc r14
inc rsi
mov rax, rsi
nop dword [rax]
mov rsi, rax
mov eax, 0
cmp rsi, rbp
jae 0x140077de0
movzx ecx, word [r13 + rsi*4]
cmp rcx, 0xffff
je 0x140077f00
movzx eax, word [r13 + rsi*4 + 2]
mov edx, eax
and edx, r12d
mov ebx, esi
sub ebx, edx
and ebx, r12d
cmp r14, rbx
ja 0x140077f00
cmp ax, di
jne 0x140077dd0
cmp r10, rcx
jbe 0x140078055
imul rcx, rcx, 0x68
lea rax, [r9 + rcx]
cmp qword [r9 + rcx + 0x18], 0
je 0x140077e81
cmp r11b, 2
je 0x140077dd0
test r11b, r11b
je 0x140077e99
mov rcx, qword [rsp + 0x30]
cmp qword [rax + 8], rcx
jne 0x140077dd0
mov rcx, qword [rax]
mov rdx, r15
mov r8, qword [rsp + 0x30]
mov ebx, r11d
mov qword [rsp + 0x48], r9
call sub.VCRUNTIME140.dll_memcmp
mov r9, qword [rsp + 0x48]
mov r11d, ebx
mov r10, qword [rsp + 0x40]
test eax, eax
jne 0x140077dd0
jmp 0x140077f5a
cmp r11b, 2
jne 0x140077dd0
cmp byte [rax], r15b
jne 0x140077dd0
jmp 0x140077f5a
mov rcx, qword [rsp + 0x30]
cmp qword [rax + 8], rcx
jne 0x140077dd0
mov r8, qword [rax]
mov rdx, 0xffffffffffffffff
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x38]
lea rcx, [rax + rdx]
mov eax, 1
cmp rcx, 0xffffffffffffffff
je 0x140077f02
movzx ecx, byte [r15 + rdx + 1]
lea rbx, [0x1401e628b]
movzx ebx, byte [rcx + rbx]
lea rcx, [rdx + 1]
cmp bl, byte [r8 + rdx + 1]
mov rdx, rcx
je 0x140077ec0
cmp rcx, qword [rsp + 0x30]
jb 0x140077dd0
jmp 0x140077f02
xor eax, eax
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r11b, 1
test r14, r14
je 0x140077f6c
lea rbp, [r14 - 1]
mov rbx, r14
movabs rcx, 0x100000001b3
and rbx, 7
je 0x140077fdc
mov rsi, rdi
mov rdx, r15
nop
movzx edi, byte [rdx]
inc rdx
xor rdi, rsi
imul rdi, rcx
mov rsi, rdi
dec rbx
jne 0x140077f40
jmp 0x140077fdf
mov eax, 1
jmp 0x140077f02
xor r14d, r14d
xor r11d, r11d
jmp 0x140077d99
xor r14d, r14d
jmp 0x140077d99
mov rcx, r15
cmp r8, 3
jb 0x140077fd4
lea rdx, [0x1401e628b]
movabs rbp, 0x100000001b3
nop
movzx ebx, byte [rcx]
movzx ebx, byte [rbx + rdx]
xor rbx, rdi
imul rbx, rbp
movzx edi, byte [rcx + 1]
movzx edi, byte [rdi + rdx]
xor rdi, rbx
imul rdi, rbp
movzx ebx, byte [rcx + 2]
movzx ebx, byte [rbx + rdx]
xor rbx, rdi
imul rbx, rbp
movzx edi, byte [rcx + 3]
movzx edi, byte [rdi + rdx]
xor rdi, rbx
imul rdi, rbp
add rcx, 4
cmp rcx, r9
jne 0x140077f90
xor r11d, r11d
jmp 0x140077d99
mov rdx, r15
cmp rbp, 7
jb 0x140077d99
nop dword [rax]
movzx ebp, byte [rdx]
xor rbp, rdi
imul rbp, rcx
movzx ebx, byte [rdx + 1]
xor rbx, rbp
imul rbx, rcx
movzx ebp, byte [rdx + 2]
xor rbp, rbx
imul rbp, rcx
movzx ebx, byte [rdx + 3]
xor rbx, rbp
imul rbx, rcx
movzx ebp, byte [rdx + 4]
xor rbp, rbx
imul rbp, rcx
movzx ebx, byte [rdx + 5]
xor rbx, rbp
imul rbx, rcx
movzx ebp, byte [rdx + 6]
xor rbp, rbx
imul rbp, rcx
movzx edi, byte [rdx + 7]
add rdx, 8
xor rdi, rbp
imul rdi, rcx
cmp rdx, r9
jne 0x140077ff0
jmp 0x140077d99
lea r8, str.C:UsersUser.cargo_registry_srcgithub.com_1ecc6299db9ec823http_0.2.9_srcheadermap.rs
mov rdx, r10
call fcn.14016f330
ud2