Function at 0x1402d21b0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rdi
push r14
sub rsp, 0x48
mov rbx, rcx
mov rbp, r9
mov ecx, 1
mov r14, r8
mov rdi, rdx
call fcn.140263670
test al, al
je 0x1402ce89b
mov ecx, 2
call fcn.140263670
test al, al
je 0x1402ce89b
mov ecx, 0x20000
call fcn.140263670
test al, al
je 0x1402ce89b
mov rdx, qword [rbx + 0x80]
cmp rdx, qword [rbx + 0x88]
je 0x1402cec74
mov r8, qword [r14]
mov r9, rbp
mov rcx, qword [rdi]
add rsp, 0x48
pop r14
pop rdi
pop rbp
pop rbx
jmp 0x1402d21b0
mov ecx, 1
call fcn.140263670
test al, al
je 0x1402ce8d2
mov ecx, 2
call fcn.140263670
test al, al
je 0x1402ce8d2
mov r8, qword [r14]
mov r9, rbp
mov rdx, qword [rbx + 0x68]
mov rcx, qword [rdi]
add rsp, 0x48
pop r14
pop rdi
pop rbp
pop rbx
jmp 0x1402d28c0
mov qword [rsp + 0x80], r13
mov r13, qword [rdi]
mov rcx, qword [r13]
mov r11d, ecx
mov edx, ecx
mov r8, rcx
shl r11d, 0x10
and ecx, 0xff00
shr r8, 0x20
or r11d, ecx
mov eax, edx
mov rcx, qword [r13 + 8]
and eax, 0xff0000
shl r11d, 8
mov r9, r8
shl r11, 8
and rdx, 0xffffffffff000000
or r11, rax
mov eax, r8d
shl eax, 0x10
and r8d, 0xff00
or eax, r8d
shl r11, 0x10
shl eax, 8
mov r8, rcx
or r11, rdx
shr r8, 0x20
mov edx, ecx
shl r11, 8
or r11, rax
mov rax, r9
and eax, 0xff0000
shr r9, 0x10
or rax, r9
mov r9, r8
shr rax, 8
or r11, rax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
or eax, ecx
mov ecx, edx
and ecx, 0xff0000
shl eax, 8
shl rax, 8
and rdx, 0xffffffffff000000
or rax, rcx
mov ecx, r8d
shl ecx, 0x10
and r8d, 0xff00
or ecx, r8d
shl rax, 0x10
shl ecx, 8
or rax, rdx
shl rax, 8
or rax, rcx
mov rcx, r9
and ecx, 0xff0000
shr r9, 0x10
or rcx, r9
shr rcx, 8
or rax, rcx
test rbp, rbp
je 0x1402ceb7f
mov rcx, qword [rbx + 0x68]
mov r14, qword [r14]
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x40], r15
lea r12, [rcx + 0x10]
lea r15, [rcx + 0x18]
mov rdx, qword [r14]
mov rdi, r12
mov ecx, edx
mov r8d, edx
shl ecx, 0x10
mov r9, rdx
and edx, 0xff00
shr r9, 0x20
or edx, ecx
mov r10, r9
shl edx, 8
mov ecx, r8d
and ecx, 0xff0000
shl rdx, 8
or rdx, rcx
and r8, 0xffffffffff000000
shl rdx, 0x10
mov ecx, r9d
shl ecx, 0x10
or rdx, r8
shl rdx, 8
and r9d, 0xff00
or ecx, r9d
mov esi, 0x40
shl ecx, 8
or rdx, rcx
mov rcx, r10
and ecx, 0xff0000
shr r10, 0x10
or rcx, r10
shr rcx, 8
or rdx, rcx
xor r11, rdx
mov rdx, qword [r14 + 8]
mov ecx, edx
mov r8d, edx
shl ecx, 0x10
mov r9, rdx
and edx, 0xff00
shr r9, 0x20
or edx, ecx
mov qword [rsp + 0x30], r11
shl edx, 8
mov ecx, r8d
and ecx, 0xff0000
shl rdx, 8
or rdx, rcx
mov r10, r9
mov ecx, r9d
shl rdx, 0x10
shl ecx, 0x10
and r9d, 0xff00
or ecx, r9d
and r8, 0xffffffffff000000
shl ecx, 8
or rdx, r8
shl rdx, 8
mov r9, r15
or rdx, rcx
mov rcx, r10
and ecx, 0xff0000
shr r10, 0x10
or rcx, r10
xor r10d, r10d
shr rcx, 8
or rdx, rcx
xor rax, rdx
mov qword [rsp + 0x38], rax
xor ebx, ebx
movdqu xmm1, xmmword [rsp + 0x30]
nop word [rax + rax]
mov rdx, qword [r9 - 0x18]
lea r9, [r9 + 0x20]
mov rcx, qword [rdi]
lea rdi, [rdi + 0x20]
shr r11, 0x3f
shr rax, 0x3f
dec r11
dec rax
psllq xmm1, 1
not r11
not rax
and rdx, r11
and rcx, rax
xor rdx, rcx
mov r8, r11
mov rcx, qword [r9 - 0x20]
xor r10, rdx
mov rdx, qword [r9 - 0x30]
and rcx, rax
and rdx, r8
mov r11, r10
xor rdx, rcx
xor rbx, rdx
mov rax, rbx
sub rsi, 1
je 0x1402ceb5c
movdqa xmm0, xmm1
movq r11, xmm1
psrldq xmm0, 8
movq rax, xmm0
jmp 0x1402ceaf0
add r14, 0x10
movdqu xmmword [rsp + 0x30], xmm1
sub rbp, 1
jne 0x1402ce9e2
mov r15, qword [rsp + 0x40]
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov r9d, r11d
mov edx, r11d
shl r9d, 0x10
mov ecx, edx
and ecx, 0xff0000
and rdx, 0xffffffffff000000
mov r8, r11
and r11d, 0xff00
or r9d, r11d
shr r8, 0x20
shl r9d, 8
mov r10, r8
shl r9, 8
or r9, rcx
mov ecx, r8d
shl r9, 0x10
and r8d, 0xff00
or r9, rdx
shl ecx, 0x10
shl r9, 8
or ecx, r8d
mov r8, rax
mov edx, eax
shl ecx, 8
or r9, rcx
shr r8, 0x20
mov rcx, r10
shr r10, 0x10
and ecx, 0xff0000
or rcx, r10
mov r10, r8
shr rcx, 8
or r9, rcx
mov qword [r13], r9
mov r9d, eax
and eax, 0xff00
shl r9d, 0x10
or r9d, eax
mov eax, edx
and eax, 0xff0000
shl r9d, 8
shl r9, 8
and rdx, 0xffffffffff000000
or r9, rax
mov eax, r8d
shl eax, 0x10
and r8d, 0xff00
or eax, r8d
shl r9, 0x10
shl eax, 8
or r9, rdx
shl r9, 8
or r9, rax
mov rax, r10
and eax, 0xff0000
shr r10, 0x10
or rax, r10
shr rax, 8
or r9, rax
mov qword [r13 + 8], r9
mov r13, qword [rsp + 0x80]
add rsp, 0x48
pop r14
pop rdi
pop rbp
pop rbx
ret
lea r9, str.C:_Users_Rosalyn_vcpkg_buildtrees_botan_src_3.5.0_2446fa6972.clean_src_lib_utils_ghash_ghash.cpp
mov dword [rsp + 0x20], 0x27
lea r8, str.ghash_multiply
lea rdx, [0x1402fcaa0]
lea rcx, str._m_H_pow.empty__
call fcn.140251590
int3
mov rax, rsp
sub rsp, 0xc8
movaps xmmword [rax - 0x28], xmm7
mov r10, rcx
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movdqa xmm10, xmmword [0x14032ba80]
movdqu xmm7, xmmword [rcx]
movdqu xmm9, xmmword [rdx]
pshufb xmm7, xmm10
cmp r9, 4
jb 0x1402d2476
movdqu xmm4, xmmword [rdx + 0x30]
mov rcx, r9
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x38], xmm8
movdqu xmm8, xmmword [rdx + 0x20]
shr rcx, 2
movaps xmmword [rax - 0x68], xmm11
movdqa xmm11, xmm9
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x40], xmm13
movdqa xmm13, xmm8
movaps xmmword [rsp + 0x30], xmm14
movdqa xmm14, xmm4
imul rax, rcx, 0xfffffffffffffffc
movaps xmmword [rsp + 0x20], xmm15
movdqu xmm15, xmmword [rdx + 0x10]
psrldq xmm11, 8
movdqa xmm12, xmm15
psrldq xmm13, 8
psrldq xmm12, 8
add r9, rax
psrldq xmm14, 8
xorps xmm11, xmm9
movdqa xmmword [rsp], xmm8
xorps xmm12, xmm15
movdqa xmmword [rsp + 0x10], xmm4
xorps xmm13, xmm8
xorps xmm14, xmm4
nop dword [rax]
movdqu xmm5, xmmword [r8]
movdqu xmm3, xmmword [r8 + 0x20]
movdqu xmm2, xmmword [r8 + 0x30]
movdqu xmm6, xmmword [r8 + 0x10]
pshufb xmm3, xmm10
pshufb xmm2, xmm10
pshufb xmm6, xmm10
movdqa xmm0, xmm2
pclmulqdq xmm0, xmm9, 0
pshufb xmm5, xmm10
xorps xmm5, xmm7
movdqa xmm7, xmm3
pclmulqdq xmm7, xmm15, 0
xorps xmm7, xmm0
movdqa xmm1, xmm5
pclmulqdq xmm1, xmm4, 0
movdqa xmm4, xmm3
movdqa xmm0, xmm6
pclmulqdq xmm0, xmm8, 0
xorps xmm1, xmm0
movdqa xmm0, xmm2
pclmulqdq xmm0, xmm9, 0x11
xorps xmm7, xmm1
movdqa xmm1, xmm5
pclmulqdq xmm4, xmm15, 0x11
xorps xmm4, xmm0
movdqu xmm0, xmmword [rdx + 0x30]
pclmulqdq xmm1, xmm0, 0x11
movdqa xmm0, xmm6
pclmulqdq xmm0, xmm8, 0x11
xorps xmm1, xmm0
movdqa xmm8, xmm2
xorps xmm4, xmm1
psrldq xmm8, 8
xorps xmm8, xmm2
movdqa xmm0, xmm3
psrldq xmm0, 8
movdqa xmm1, xmm6
xorps xmm0, xmm3
psrldq xmm1, 8
pclmulqdq xmm0, xmm12, 0
pclmulqdq xmm8, xmm11, 0
xorps xmm8, xmm0
xorps xmm1, xmm6
pclmulqdq xmm1, xmm13, 0
xorps xmm8, xmm1
movdqa xmm0, xmm5
psrldq xmm0, 8
xorps xmm0, xmm5
pclmulqdq xmm0, xmm14, 0
xorps xmm8, xmm0
xorps xmm8, xmm7
xorps xmm8, xmm4
movdqa xmm0, xmm8
psrldq xmm8, 8
xorps xmm8, xmm4
pslldq xmm0, 8
xorps xmm0, xmm7
movdqa xmm7, xmm0
pslld xmm0, 1
psrld xmm7, 0x1f
movdqa xmm2, xmm7
psrldq xmm7, 0xc
pslldq xmm2, 4
orps xmm2, xmm0
movdqa xmm4, xmm2
movdqa xmm0, xmm2
pslld xmm0, 0x1e
movdqa xmm1, xmm2
pslld xmm4, 0x1f
xorps xmm4, xmm0
pslld xmm1, 0x19
movdqa xmm0, xmm8
xorps xmm4, xmm1
movdqa xmm3, xmm4
pslld xmm0, 1
pslldq xmm3, 0xc
orps xmm7, xmm0
psrld xmm8, 0x1f
xorps xmm3, xmm2
pslldq xmm8, 4
orps xmm7, xmm8
psrldq xmm4, 4
movdqa xmm8, xmmword [rsp]
xorps xmm7, xmm3
movdqa xmm1, xmm3
movdqa xmm0, xmm3
psrld xmm1, 7
xorps xmm7, xmm4
movdqa xmm4, xmmword [rsp + 0x10]
add r8, 0x40
psrld xmm0, 2
psrld xmm3, 1
xorps xmm1, xmm0
xorps xmm1, xmm3
xorps xmm7, xmm1
sub rcx, 1
jne 0x1402d2280
movaps xmm15, xmmword [rsp + 0x20]
movaps xmm14, xmmword [rsp + 0x30]
movaps xmm13, xmmword [rsp + 0x40]
movaps xmm12, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xb0]
test r9, r9
je 0x1402d256b
nop
movdqu xmm3, xmmword [r8]
lea r8, [r8 + 0x10]
pshufb xmm3, xmm10
xorps xmm3, xmm7
movdqa xmm1, xmm3
movdqa xmm0, xmm3
movdqa xmm5, xmm3
pclmulqdq xmm0, xmm9, 1
pclmulqdq xmm1, xmm9, 0x10
xorps xmm1, xmm0
movdqa xmm0, xmm1
pslldq xmm1, 8
psrldq xmm0, 8
pclmulqdq xmm3, xmm9, 0
xorps xmm3, xmm1
movdqa xmm7, xmm3
pslld xmm3, 1
psrld xmm7, 0x1f
movdqa xmm2, xmm7
psrldq xmm7, 0xc
pslldq xmm2, 4
orps xmm2, xmm3
movdqa xmm4, xmm2
movdqa xmm1, xmm2
pslld xmm1, 0x19
pslld xmm4, 0x1f
pclmulqdq xmm5, xmm9, 0x11
xorps xmm5, xmm0
movdqa xmm0, xmm2
pslld xmm0, 0x1e
xorps xmm4, xmm0
movdqa xmm0, xmm5
pslld xmm0, 1
xorps xmm4, xmm1
psrld xmm5, 0x1f
orps xmm7, xmm0
pslldq xmm5, 4
movdqa xmm3, xmm4
pslldq xmm3, 0xc
orps xmm7, xmm5
psrldq xmm4, 4
xorps xmm3, xmm2
xorps xmm7, xmm3
movdqa xmm1, xmm3
psrld xmm1, 7
movdqa xmm0, xmm3
psrld xmm0, 2
xorps xmm7, xmm4
psrld xmm3, 1
xorps xmm1, xmm0
xorps xmm1, xmm3
xorps xmm7, xmm1
sub r9, 1
jne 0x1402d2480
pshufb xmm7, xmm10
lea r11, [rsp + 0xc8]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movdqu xmmword [r10], xmm7
movaps xmm7, xmmword [r11 - 0x28]
mov rsp, r11
ret
sub rsp, 0x38
movaps xmmword [rsp + 0x20], xmm6
mov r10, rcx
movdqa xmm6, xmmword [0x14032ba80]
movaps xmmword [rsp + 0x10], xmm7
movdqa xmm7, xmmword [0x1402fe160]
movdqu xmm0, xmmword [rcx]
pshufb xmm0, xmm6
test r9, r9
je 0x1402d29aa
movaps xmmword [rsp], xmm8
xorps xmm8, xmm8
nop dword [rax]
movdqu xmm4, xmmword [r8]
lea rax, [rdx + 0x20]
mov ecx, 0x20
movdqa xmm5, xmm8
pshufb xmm4, xmm6
xorps xmm4, xmm0
nop dword [rax + rax]
movdqu xmm0, xmmword [rax - 0x20]
lea rax, [rax + 0x40]
movdqa xmm2, xmm4
psllq xmm4, 1
psrlq xmm2, 0x3f
movdqa xmm3, xmm4
psrlq xmm3, 0x3f
paddq xmm2, xmm7
psllq xmm4, 1
paddq xmm3, xmm7
movdqa xmm1, xmm2
punpckhqdq xmm1, xmm2
punpcklqdq xmm2, xmm2
andnps xmm1, xmm0
xorps xmm5, xmm1
movdqa xmm1, xmm3
punpckhqdq xmm1, xmm3
punpcklqdq xmm3, xmm3
movdqu xmm0, xmmword [rax - 0x50]
andnps xmm2, xmm0
xorps xmm5, xmm2
movdqu xmm0, xmmword [rax - 0x40]
andnps xmm1, xmm0
xorps xmm5, xmm1
movdqu xmm0, xmmword [rax - 0x30]
andnps xmm3, xmm0
xorps xmm5, xmm3
sub rcx, 1
jne 0x1402d2920
add r8, 0x10
pshufd xmm0, xmm5, 0x4e
sub r9, 1
jne 0x1402d2900
movaps xmm8, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
pshufb xmm0, xmm6
movaps xmm6, xmmword [rsp + 0x20]
movdqu xmmword [r10], xmm0
add rsp, 0x38
ret