Function at 0x1801040d0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x38
cmp dword [0x1802b07d0], 0
lea r11, [0x1802b07e0]
mov r9, rdx
mov r10, rcx
jne 0x180104355
movdqa xmm3, xmmword [0x1800591b0]
xor ecx, ecx
movdqa xmm5, xmmword [0x1800591d0]
xorps xmm4, xmm4
mov qword [rsp + 0x30], rbx
mov rdx, r11
movaps xmmword [rsp + 0x20], xmm6
mov ebx, 1
movaps xmmword [rsp + 0x10], xmm7
movdqa xmm7, xmmword [0x1800591e0]
movaps xmmword [rsp], xmm8
movdqa xmm8, xmmword [0x1800591c0]
movd xmm6, ebx
nop dword [rax]
nop dword [rax + rax]
movd xmm0, ecx
lea eax, [rcx + 4]
pshufd xmm0, xmm0, 0
movdqa xmm1, xmm3
paddd xmm0, xmm8
pand xmm1, xmm0
psrld xmm0, xmm6
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
pxor xmm1, xmm0
movdqa xmm0, xmm1
pand xmm0, xmm3
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
psrld xmm1, xmm6
pand xmm0, xmm5
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm0, xmm6
pand xmm1, xmm3
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
pxor xmm1, xmm0
movdqa xmm0, xmm3
pand xmm0, xmm1
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
psrld xmm1, xmm6
pand xmm0, xmm5
pxor xmm0, xmm1
movdqa xmm1, xmm3
pand xmm1, xmm0
psrld xmm0, xmm6
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
pxor xmm1, xmm0
movdqa xmm0, xmm3
pand xmm0, xmm1
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
psrld xmm1, xmm6
pand xmm0, xmm5
pxor xmm0, xmm1
movdqa xmm1, xmm3
pand xmm1, xmm0
psrld xmm0, xmm6
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
pxor xmm1, xmm0
movdqa xmm0, xmm3
pand xmm0, xmm1
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
psrld xmm1, xmm6
pand xmm0, xmm5
pxor xmm0, xmm1
movd xmm1, eax
movdqu xmmword [rdx], xmm0
pshufd xmm1, xmm1, 0
paddd xmm1, xmm8
movdqa xmm0, xmm1
pand xmm0, xmm3
pcmpeqd xmm0, xmm4
psrld xmm1, xmm6
pandn xmm0, xmm7
pand xmm0, xmm5
pxor xmm0, xmm1
movdqa xmm1, xmm3
pand xmm1, xmm0
psrld xmm0, xmm6
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
pxor xmm1, xmm0
movdqa xmm0, xmm3
pand xmm0, xmm1
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
lea rdx, [rdx + 0x20]
psrld xmm1, xmm6
pand xmm0, xmm5
movdqa xmm2, xmm3
pxor xmm0, xmm1
add ecx, 8
movdqa xmm1, xmm3
pand xmm1, xmm0
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
psrld xmm0, xmm6
pxor xmm1, xmm0
movdqa xmm0, xmm3
pand xmm0, xmm1
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
pand xmm0, xmm5
psrld xmm1, xmm6
pxor xmm0, xmm1
movdqa xmm1, xmm3
pand xmm1, xmm0
pcmpeqd xmm1, xmm4
pandn xmm1, xmm7
pand xmm1, xmm5
psrld xmm0, xmm6
pxor xmm1, xmm0
movdqa xmm0, xmm3
pand xmm2, xmm1
pcmpeqd xmm2, xmm4
pandn xmm2, xmm7
pand xmm2, xmm5
psrld xmm1, xmm6
pxor xmm2, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm4
pandn xmm0, xmm7
pand xmm0, xmm5
psrld xmm2, xmm6
pxor xmm0, xmm2
movdqu xmmword [rdx - 0x10], xmm0
cmp ecx, 0x100
jb 0x180104140
movaps xmm8, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm6, xmmword [rsp + 0x20]
mov dword [0x1802b07d0], ebx
mov rbx, qword [rsp + 0x30]
test r10, r10
je 0x1801044e6
test r9, r9
je 0x1801044e6
mov eax, dword [r10]
test r8d, r8d
je 0x1801044e3
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r9]
mov rdx, rax
xor rdx, rcx
shr eax, 8
movzx ecx, dl
xor eax, dword [r11 + rcx*4]
cmp r8d, 0x10
jb 0x1801044d4
movzx edx, byte [r9 + 1]
mov ecx, eax
xor rdx, rcx
shr eax, 8
movzx ecx, dl
movzx edx, byte [r9 + 2]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 3]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 4]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 5]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 6]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 7]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 8]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 9]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 0xa]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 0xb]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 0xc]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 0xd]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 0xe]
xor eax, dword [r11 + rcx*4]
mov ecx, eax
xor rdx, rcx
movzx ecx, dl
movzx edx, byte [r9 + 0xf]
add r9, 0x10
shr eax, 8
xor eax, dword [r11 + rcx*4]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
xor eax, dword [r11 + rcx*4]
add r8d, 0xfffffff0
jmp 0x1801044da
inc r9
dec r8d
test r8d, r8d
jne 0x180104380
mov dword [r10], eax
add rsp, 0x38
ret