Function at 0x180022840
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xa8
movdqa xmmword [rsp + 0x90], xmm15
movdqa xmmword [rsp + 0x80], xmm14
movdqa xmmword [rsp + 0x70], xmm13
movdqa xmmword [rsp + 0x60], xmm12
movdqa xmmword [rsp + 0x50], xmm11
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
mov eax, dword [rcx + 0x2e]
test rax, rax
je 0x180022de3
movabs rdx, 0x5851f42d4c957f2d
mov dword [rcx + 0x2e], 0
movzx r9d, word [rcx]
rol r9w, 8
movabs r8, 0x14057b7ef767814f
movdqu xmm1, xmmword [rcx + 0x1e]
mov word [rcx + 0x2c], r9w
movd xmm2, dword [rcx + 2]
pxor xmm0, xmm0
punpcklbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
packuswb xmm2, xmm2
movd dword [rcx + 0x28], xmm2
movq xmm2, qword [rcx + 6]
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm2
movq qword [rcx + 0x20], xmm2
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmm2, xmmword [rcx + 0xe]
movdqu xmmword [rcx], xmm1
movdqu xmm1, xmmword [rcx + 0x10]
punpcklwd xmm2, xmm1
movdqu xmm1, xmmword [rcx + 0x12]
punpckldq xmm2, xmm1
movdqu xmm1, xmmword [rcx + 0x16]
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm0, xmm2, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm1, xmm0
movdqu xmmword [rcx + 0x10], xmm1
mov r9d, 1
nop dword [rax]
imul rax, rdx
add rax, r8
mov r10, rax
shr r10, 0x38
xor byte [rcx + r9 - 1], r10b
imul rax, rdx
add rax, r8
mov r10, rax
shr r10, 0x38
xor byte [rcx + r9], r10b
add r9, 2
cmp r9, 0x2f
jne 0x180022990
movdqa xmm2, xmmword [0x1800da970]
movdqu xmm7, xmmword [rcx]
movdqa xmm3, xmm7
paddb xmm3, xmm2
movdqa xmm1, xmmword [0x1800da980]
movdqa xmm11, xmm3
pmaxub xmm11, xmm1
pcmpeqb xmm11, xmm3
movdqa xmm0, xmmword [0x1800da990]
movdqa xmm5, xmmword [0x1800da9a0]
movdqa xmm4, xmm7
paddb xmm4, xmm5
pand xmm4, xmm11
pandn xmm11, xmm3
por xmm11, xmm4
movdqa xmm3, xmmword [0x1800da9c0]
movdqa xmm4, xmm7
paddb xmm4, xmm3
movdqa xmm13, xmm4
pmaxub xmm13, xmm1
pcmpeqb xmm13, xmm4
movdqa xmm6, xmmword [0x1800da9d0]
movdqa xmm8, xmm7
paddb xmm8, xmm6
pand xmm8, xmm13
pandn xmm13, xmm4
por xmm13, xmm8
movdqa xmm9, xmmword [0x1800da9f0]
movdqa xmm4, xmm7
paddb xmm4, xmm9
movdqa xmm14, xmm4
pminub xmm14, xmm0
pcmpeqb xmm14, xmm4
movdqa xmm8, xmmword [0x1800daa00]
movdqa xmm12, xmm7
pand xmm12, xmm8
paddb xmm12, xmmword [0x1800daa10]
movdqa xmm4, xmmword [0x1800daa20]
movdqa xmm15, xmm12
pminub xmm15, xmm4
pcmpeqb xmm15, xmm12
movdqa xmm10, xmmword [str.aaaaaaaaaaaaaaaa]
paddb xmm11, xmm10
movdqa xmm12, xmmword [str.AAAAAAAAAAAAAAAA]
paddb xmm13, xmm12
pand xmm11, xmm14
pandn xmm14, xmm13
por xmm14, xmm11
pand xmm7, xmm15
pandn xmm15, xmm14
por xmm15, xmm7
movdqu xmm7, xmmword [rcx + 0x10]
movdqu xmmword [rcx], xmm15
paddb xmm2, xmm7
movdqa xmm11, xmm2
pmaxub xmm11, xmm1
pcmpeqb xmm11, xmm2
paddb xmm5, xmm7
pand xmm5, xmm11
pandn xmm11, xmm2
por xmm11, xmm5
paddb xmm11, xmm10
paddb xmm3, xmm7
pmaxub xmm1, xmm3
pcmpeqb xmm1, xmm3
paddb xmm6, xmm7
pand xmm6, xmm1
pandn xmm1, xmm3
por xmm1, xmm6
paddb xmm1, xmm12
paddb xmm9, xmm7
pminub xmm0, xmm9
pcmpeqb xmm0, xmm9
pand xmm8, xmm7
paddb xmm8, xmmword [0x1800daa10]
pminub xmm4, xmm8
pcmpeqb xmm4, xmm8
pand xmm11, xmm0
pandn xmm0, xmm1
por xmm0, xmm11
pand xmm7, xmm4
pandn xmm4, xmm0
por xmm4, xmm7
movdqu xmmword [rcx + 0x10], xmm4
movq xmm0, qword [rcx + 0x20]
movdqa xmm3, xmmword [0x1800daa30]
paddb xmm3, xmm0
movdqa xmm1, xmmword [0x1800daa40]
movdqa xmm2, xmm3
pminub xmm2, xmm1
pcmpeqb xmm2, xmm3
movdqa xmm4, xmmword [0x1800daa50]
paddb xmm4, xmm0
pand xmm3, xmm2
pandn xmm2, xmm4
por xmm2, xmm3
movdqa xmm3, xmmword [0x1800daa70]
paddb xmm3, xmm0
pminub xmm1, xmm3
pcmpeqb xmm1, xmm3
movdqa xmm4, xmmword [0x1800daa80]
paddb xmm4, xmm0
pand xmm3, xmm1
pandn xmm1, xmm4
por xmm1, xmm3
movdqa xmm3, xmmword [0x1800daaa0]
paddb xmm3, xmm0
movdqa xmm4, xmmword [0x1800daab0]
pmaxub xmm4, xmm3
pcmpeqb xmm4, xmm3
movdqa xmm3, xmmword [0x1800daac0]
pand xmm3, xmm0
paddb xmm3, xmmword [0x1800daad0]
movdqa xmm5, xmmword [0x1800daae0]
pmaxub xmm5, xmm3
pcmpeqb xmm5, xmm3
paddb xmm2, xmmword [str.aaaaaaaa]
paddb xmm1, xmmword [str.AAAAAAAA]
pand xmm1, xmm4
pandn xmm4, xmm2
por xmm4, xmm1
pand xmm4, xmm5
pandn xmm5, xmm0
por xmm5, xmm4
movq qword [rcx + 0x20], xmm5
movzx eax, byte [rcx + 0x28]
lea edx, [rax - 0x41]
cmp dl, 0x19
ja 0x180022c74
lea edx, [rax - 0x34]
add al, 0xb2
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x41
jmp 0x180022c91
lea edx, [rax - 0x61]
cmp dl, 0x19
ja 0x180022c91
lea edx, [rax - 0x54]
add al, 0x92
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x61
mov byte [rcx + 0x28], al
movzx eax, byte [rcx + 0x29]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jae 0x180022cb7
lea edx, [rax - 0x34]
add al, 0xb2
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x41
jmp 0x180022cd4
lea edx, [rax - 0x61]
cmp dl, 0x19
ja 0x180022cd4
lea edx, [rax - 0x54]
add al, 0x92
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x61
mov byte [rcx + 0x29], al
movzx eax, byte [rcx + 0x2a]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jae 0x180022cfa
lea edx, [rax - 0x34]
add al, 0xb2
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x41
jmp 0x180022d17
lea edx, [rax - 0x61]
cmp dl, 0x19
ja 0x180022d17
lea edx, [rax - 0x54]
add al, 0x92
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x61
mov byte [rcx + 0x2a], al
movzx eax, byte [rcx + 0x2b]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jae 0x180022d3d
lea edx, [rax - 0x34]
add al, 0xb2
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x41
jmp 0x180022d5a
lea edx, [rax - 0x61]
cmp dl, 0x19
ja 0x180022d5a
lea edx, [rax - 0x54]
add al, 0x92
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x61
mov byte [rcx + 0x2b], al
movzx eax, byte [rcx + 0x2c]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jae 0x180022d80
lea edx, [rax - 0x34]
add al, 0xb2
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x41
jmp 0x180022d9d
lea edx, [rax - 0x61]
cmp dl, 0x19
ja 0x180022d9d
lea edx, [rax - 0x54]
add al, 0x92
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x61
mov byte [rcx + 0x2c], al
movzx eax, byte [rcx + 0x2d]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jae 0x180022dc3
lea edx, [rax - 0x34]
add al, 0xb2
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x41
jmp 0x180022de0
lea edx, [rax - 0x61]
cmp dl, 0x19
ja 0x180022de0
lea edx, [rax - 0x54]
add al, 0x92
cmp dl, 0x1a
movzx r8d, al
movzx eax, dl
cmovae eax, r8d
add al, 0x61
mov byte [rcx + 0x2d], al
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x50]
movaps xmm12, xmmword [rsp + 0x60]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm14, xmmword [rsp + 0x80]
movaps xmm15, xmmword [rsp + 0x90]
add rsp, 0xa8
ret