Function at 0x140051c86
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, r9
mov rbx, r8
mov qword [rsp + 0x48], rcx
mov al, byte [0x1402142f0]
movaps xmm0, xmmword [rdx + 0x3c0]
movaps xmm1, xmmword [rdx + 0x3d0]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm1
mov r14d, esi
and r14d, 0xf
mov rdi, r9
and rdi, 0xfffffffffffffff0
je 0x140051d42
lea r15, [rsp + 0x60]
lea r12, [rsp + 0x20]
mov rbp, rbx
mov r13, rdi
movups xmm0, xmmword [rbp]
movaps xmmword [rsp + 0x20], xmm0
xor eax, eax
mov rcx, rax
xor rcx, 7
mov dl, byte [rsp + rax + 0x20]
mov r8b, byte [rsp + rcx + 0x28]
mov byte [rsp + rax + 0x20], r8b
mov byte [rsp + rcx + 0x28], dl
inc rax
cmp rax, 8
jne 0x140051ced
mov al, byte [0x1402142f0]
cmp al, 1
jne 0x140051d26
mov rcx, r15
mov rdx, r12
call sym.polyval::backend::clmul::Polyval::mul::h7e6e6111d226d930
jmp 0x140051d38
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
mov rcx, r15
call sym.__polyval::backend::soft::Polyval_as_universal_hash::UniversalHash_::update::h4f266b32039d4562
add rbp, 0x10
add r13, 0xfffffffffffffff0
jne 0x140051ce2
test r14, r14
je 0x140051dd3
add rbx, rdi
mov r8d, 0x10
sub r8, r14
lea rcx, [rsp + r14]
add rcx, 0x50
xor edi, edi
xor edx, edx
call sub.msvcrt.dll_memset
lea r15, [rsp + 0x50]
mov rcx, r15
mov rdx, rbx
mov r8, r14
call sym.memcpy
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x20], xmm0
mov rax, rdi
xor rax, 7
mov cl, byte [rsp + rdi + 0x20]
mov dl, byte [rsp + rax + 0x28]
mov byte [rsp + rdi + 0x20], dl
mov byte [rsp + rax + 0x28], cl
inc rdi
cmp rdi, 8
jne 0x140051d84
mov al, byte [0x1402142f0]
cmp al, 1
jne 0x140051dbf
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x20]
call sym.polyval::backend::clmul::Polyval::mul::h7e6e6111d226d930
jmp 0x140051dd3
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
lea rcx, [rsp + 0x60]
call sym.__polyval::backend::soft::Polyval_as_universal_hash::UniversalHash_::update::h4f266b32039d4562
shl rsi, 3
bswap rsi
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rsi
xor eax, eax
mov rcx, rax
xor rcx, 7
mov dl, byte [rsp + rax + 0x20]
mov r8b, byte [rsp + rcx + 0x28]
mov byte [rsp + rax + 0x20], r8b
mov byte [rsp + rcx + 0x28], dl
inc rax
cmp rax, 8
jne 0x140051dea
mov al, byte [0x1402142f0]
cmp al, 1
jne 0x140051e27
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x20]
call sym.polyval::backend::clmul::Polyval::mul::h7e6e6111d226d930
jmp 0x140051e3b
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
lea rcx, [rsp + 0x60]
call sym.__polyval::backend::soft::Polyval_as_universal_hash::UniversalHash_::update::h4f266b32039d4562
mov r9, qword [rsp + 0x48]
movaps xmm0, xmmword [rsp + 0x70]
mov al, byte [0x1402142f0]
cmp al, 1
je 0x140051e7a
xorps xmm1, xmm1
movaps xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x20], xmm0
xor eax, eax
mov rcx, qword [rsp + rax*8 + 0x20]
mov qword [rsp + rax*8 + 0x50], rcx
lea rcx, [rax + 1]
mov rax, rcx
cmp rcx, 2
jne 0x140051e5e
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x30], xmm0
xor eax, eax
mov rcx, rax
xor rcx, 7
mov dl, byte [rsp + rax + 0x30]
mov r8b, byte [rsp + rcx + 0x38]
mov byte [rsp + rax + 0x30], r8b
mov byte [rsp + rcx + 0x38], dl
inc rax
cmp rax, 8
jne 0x140051e81
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [r9], xmm0
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret