Function at 0x140090160
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r12
push r15
sub rsp, 0x48
mov rbx, rcx
mov r15, r9
mov ecx, 1
mov r12, r8
mov rdi, rdx
call fcn.140029470
test al, al
je 0x14005f6ee
mov ecx, 2
call fcn.140029470
test al, al
je 0x14005f6ee
mov ecx, 0x20000
call fcn.140029470
test al, al
je 0x14005f6ee
mov rdx, qword [rbx + 0x80]
cmp rdx, qword [rbx + 0x88]
je 0x14005fafa
mov r8, qword [r12]
mov r9, r15
mov rcx, qword [rdi]
add rsp, 0x48
pop r15
pop r12
pop rdi
pop rbx
jmp 0x14008fa50
mov ecx, 1
call fcn.140029470
test al, al
je 0x14005f727
mov ecx, 2
call fcn.140029470
test al, al
je 0x14005f727
mov r8, qword [r12]
mov r9, r15
mov rdx, qword [rbx + 0x68]
mov rcx, qword [rdi]
add rsp, 0x48
pop r15
pop r12
pop rdi
pop rbx
jmp 0x140090160
mov rax, qword [rdi]
mov rdx, qword [rax]
mov edi, edx
mov r8d, edx
mov ecx, r8d
shl edi, 0x10
and r8, 0xffffffffff000000
mov r9, rdx
and edx, 0xff00
shr r9, 0x20
or edi, edx
and ecx, 0xff0000
shl edi, 8
mov r10, r9
shl rdi, 8
or rdi, rcx
mov ecx, r9d
shl ecx, 0x10
and r9d, 0xff00
or ecx, r9d
shl rdi, 0x10
or rdi, r8
shl ecx, 8
mov r8, qword [rax + 8]
mov edx, r8d
mov r9d, r8d
shl edx, 0x10
shl rdi, 8
or rdi, rcx
mov rcx, r10
shr r10, 0x10
and ecx, 0xff0000
or rcx, r10
mov r10, r8
and r8d, 0xff00
shr r10, 0x20
or edx, r8d
shr rcx, 8
shl edx, 8
mov r8d, r9d
and r8d, 0xff0000
shl rdx, 8
or rdx, r8
mov r11, r10
shl rdx, 0x10
mov r8d, r10d
shl r8d, 0x10
or rdi, rcx
and r9, 0xffffffffff000000
lea rcx, [rax + 8]
or rdx, r9
and r10d, 0xff00
or r8d, r10d
shl rdx, 8
shl r8d, 8
or rdx, r8
mov r8, r11
and r8d, 0xff0000
shr r11, 0x10
or r8, r11
shr r8, 8
or rdx, r8
test r15, r15
je 0x14005fa0b
mov r8, qword [rbx + 0x68]
mov r12, qword [r12]
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], r13
lea rcx, [r8 + 0x10]
lea r13, [r8 + 0x18]
mov qword [rsp + 0x40], r14
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [r12]
mov r14, rcx
mov r8d, r9d
mov r10d, r9d
shl r8d, 0x10
mov r11, r9
and r9d, 0xff00
shr r11, 0x20
or r9d, r8d
mov rbx, r11
shl r9d, 8
mov r8d, r10d
and r8d, 0xff0000
shl r9, 8
or r9, r8
and r10, 0xffffffffff000000
shl r9, 0x10
mov r8d, r11d
shl r8d, 0x10
or r9, r10
shl r9, 8
and r11d, 0xff00
or r8d, r11d
mov ebp, 0x40
shl r8d, 8
or r9, r8
mov r8, rbx
and r8d, 0xff0000
shr rbx, 0x10
or r8, rbx
shr r8, 8
or r9, r8
xor rdi, r9
mov r9, qword [r12 + 8]
mov r8d, r9d
mov r10d, r9d
shl r8d, 0x10
mov r11, r9
and r9d, 0xff00
shr r11, 0x20
or r9d, r8d
mov qword [rsp + 0x30], rdi
shl r9d, 8
mov r8d, r10d
and r8d, 0xff0000
shl r9, 8
or r9, r8
mov rbx, r11
mov r8d, r11d
shl r9, 0x10
shl r8d, 0x10
and r11d, 0xff00
or r8d, r11d
and r10, 0xffffffffff000000
shl r8d, 8
or r9, r10
shl r9, 8
mov r11, r13
or r9, r8
mov r8, rbx
and r8d, 0xff0000
shr rbx, 0x10
or r8, rbx
xor ebx, ebx
shr r8, 8
or r9, r8
xor rdx, r9
mov qword [rsp + 0x38], rdx
xor esi, esi
movdqu xmm1, xmmword [rsp + 0x30]
nop dword [rax + rax]
mov r9, qword [r11 - 0x18]
lea r11, [r11 + 0x20]
mov r8, qword [r14]
lea r14, [r14 + 0x20]
shr rdi, 0x3f
shr rdx, 0x3f
dec rdi
dec rdx
psllq xmm1, 1
not rdi
not rdx
and r9, rdi
and r8, rdx
xor r9, r8
mov r10, rdi
mov r8, qword [r11 - 0x20]
xor rbx, r9
mov r9, qword [r11 - 0x30]
and r8, rdx
and r9, r10
mov rdi, rbx
xor r9, r8
xor rsi, r9
mov rdx, rsi
sub rbp, 1
je 0x14005f9dc
movdqa xmm0, xmm1
movq rdi, xmm1
psrldq xmm0, 8
movq rdx, xmm0
jmp 0x14005f970
add r12, 0x10
movdqu xmmword [rsp + 0x30], xmm1
sub r15, 1
jne 0x14005f850
mov r14, qword [rsp + 0x40]
lea rcx, [rax + 8]
mov r13, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov r11d, edi
mov r9d, edi
shl r11d, 0x10
mov r8d, r9d
and r8d, 0xff0000
and r9, 0xffffffffff000000
mov r10, rdi
and edi, 0xff00
or r11d, edi
shr r10, 0x20
shl r11d, 8
mov rbx, r10
shl r11, 8
or r11, r8
mov r8d, r10d
shl r8d, 0x10
and r10d, 0xff00
or r8d, r10d
shl r11, 0x10
shl r8d, 8
or r11, r9
mov r9, rdx
shl r11, 8
or r11, r8
shr r9, 0x20
mov r8, rbx
mov r10, r9
and r8d, 0xff0000
shr rbx, 0x10
or r8, rbx
shr r8, 8
or r11, r8
mov r8d, edx
mov qword [rax], r11
mov eax, edx
shl eax, 0x10
and edx, 0xff00
or edx, eax
mov eax, r8d
and eax, 0xff0000
shl edx, 8
shl rdx, 8
and r8, 0xffffffffff000000
or rdx, rax
mov eax, r9d
shl eax, 0x10
and r9d, 0xff00
or eax, r9d
shl rdx, 0x10
shl eax, 8
or rdx, r8
shl rdx, 8
or rdx, rax
mov rax, r10
and eax, 0xff0000
shr r10, 0x10
or rax, r10
shr rax, 8
or rdx, rax
mov qword [rcx], rdx
add rsp, 0x48
pop r15
pop r12
pop rdi
pop rbx
ret
lea r9, str.src_lib_utils_ghash_ghash.cpp
mov dword [rsp + 0x20], 0x27
lea r8, str.ghash_multiply
lea rdx, [0x1400caf07]
lea rcx, str._m_H_pow.empty__
call fcn.14000e220
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 [0x1400c5380]
movdqu xmm7, xmmword [rcx]
movdqu xmm9, xmmword [rdx]
pshufb xmm7, xmm10
cmp r9, 4
jb 0x14008fd16
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 0x14008fb20
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 0x14008fe0b
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 0x14008fd20
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 [0x1400c5380]
movaps xmmword [rsp + 0x10], xmm7
movdqa xmm7, xmmword [0x140097ab0]
movdqu xmm0, xmmword [rcx]
pshufb xmm0, xmm6
test r9, r9
je 0x14009024a
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 0x1400901c0
add r8, 0x10
pshufd xmm0, xmm5, 0x4e
sub r9, 1
jne 0x1400901a0
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