Function at 0x157d50
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
mov eax, 0x14a8
call fcn.00187310
sub rsp, rax
movaps xmmword [rsp + 0x1490], xmm15
movaps xmmword [rsp + 0x1480], xmm14
movaps xmmword [rsp + 0x1470], xmm13
movaps xmmword [rsp + 0x1460], xmm12
movaps xmmword [rsp + 0x1450], xmm11
movaps xmmword [rsp + 0x1440], xmm10
movaps xmmword [rsp + 0x1430], xmm9
movdqa xmmword [rsp + 0x1420], xmm8
movaps xmmword [rsp + 0x1410], xmm7
movaps xmmword [rsp + 0x1400], xmm6
movdqa xmm9, xmmword [0x0018f5e0]
xor eax, eax
movdqa xmm12, xmmword [0x0018f5f0]
pxor xmm2, xmm2
movdqa xmm4, xmmword [0x0018f610]
movdqa xmm6, xmmword [0x0018f630]
movdqa xmm13, xmmword [0x0018f670]
movdqa xmm14, xmmword [0x0018f680]
movdqa xmm15, xmmword [0x0018f690]
movdqa xmm7, xmmword [0x0018f6a0]
movdqa xmm10, xmmword [0x0018f6b0]
movdqa xmm11, xmmword [0x0018f6c0]
nop dword [rax + rax]
movdqa xmm8, xmm9
pand xmm8, xmm12
pcmpeqd xmm8, xmm2
pand xmm8, xmmword [0x0018f600]
movdqa xmm0, xmm9
psrld xmm0, 6
pxor xmm0, xmm8
movdqa xmm3, xmm9
pand xmm3, xmm6
pcmpeqd xmm3, xmm2
pand xmm3, xmmword [0x0018f640]
movdqa xmm5, xmm9
pand xmm5, xmmword [str._b_b_b_b]
pcmpeqd xmm5, xmm2
pand xmm5, xmmword [0x0018f660]
pxor xmm5, xmm3
movdqa xmm3, xmm9
pand xmm3, xmm13
pcmpeqd xmm3, xmm2
pand xmm3, xmm14
movdqa xmm1, xmm9
pand xmm1, xmm15
pcmpeqd xmm1, xmm2
pand xmm1, xmm7
pxor xmm1, xmm3
pxor xmm1, xmm5
movdqa xmm3, xmm9
pand xmm3, xmm4
pcmpeqd xmm3, xmm2
pand xmm3, xmmword [0x0018f620]
pxor xmm3, xmm0
pxor xmm1, xmm3
pand xmm0, xmm12
pcmpeqd xmm0, xmm2
psrld xmm1, 2
pand xmm3, xmm4
pcmpeqd xmm3, xmm2
pand xmm3, xmm7
pxor xmm3, xmm1
movdqa xmm1, xmm0
pandn xmm1, xmm10
pand xmm0, xmm11
por xmm0, xmm1
pxor xmm0, xmm3
movdqa xmmword [rsp + rax*4], xmm0
add rax, 4
paddd xmm9, xmm6
cmp rax, 0x100
jne 0x157e20
mov r9, rdx
shr r9, 2
xor eax, eax
nop word [rax + rax]
mov ebx, dword [rsp + rax*4]
movzx edi, bl
mov edi, dword [rsp + rdi*4]
shr rbx, 8
xor rbx, rdi
movzx edi, bl
mov edi, dword [rsp + rdi*4]
shr rbx, 8
xor rbx, rdi
movzx edi, bl
shr rbx, 8
xor ebx, dword [rsp + rdi*4]
mov dword [rsp + rax*4 + 0x400], ebx
add rax, 1
cmp rax, 0x100
jne 0x157f20
mov r11d, dword [rsp + 0x400]
mov eax, dword [rsp]
mov r10, rax
shr r10, 8
xor esi, esi
nop
mov edi, esi
xor edi, eax
movzx edi, dil
mov edi, dword [rsp + rdi*4]
xor rdi, r10
movzx ebx, dil
mov ebx, dword [rsp + rbx*4]
shr rdi, 8
xor rdi, rbx
movzx ebx, dil
shr rdi, 8
mov ebx, dword [rsp + rbx*4]
xor ebx, r11d
xor ebx, edi
mov dword [rsp + rsi*4 + 0x800], ebx
add rsi, 1
cmp rsi, 0x100
jne 0x157f70
movzx eax, al
mov eax, dword [rsp + rax*4]
xor r10, rax
mov r14, r10
shr r14, 8
xor esi, esi
nop word cs:[rax + rax]
nop dword [rax]
mov eax, r10d
xor eax, esi
movzx eax, al
mov eax, dword [rsp + rax*4]
xor rax, r14
movzx ebx, al
shr rax, 8
mov ebx, dword [rsp + rbx*4]
xor ebx, r11d
xor ebx, eax
mov dword [rsp + rsi*4 + 0xc00], ebx
lea eax, [rsi + 1]
xor eax, r10d
movzx eax, al
mov eax, dword [rsp + rax*4]
xor rax, r14
movzx ebx, al
shr rax, 8
mov ebx, dword [rsp + rbx*4]
xor ebx, r11d
xor ebx, eax
mov dword [rsp + rsi*4 + 0xc04], ebx
add rsi, 2
cmp rsi, 0x100
jne 0x157fd0
movzx eax, r10b
mov eax, dword [rsp + rax*4]
xor r14, rax
mov rax, r14
shr rax, 8
xor esi, esi
nop dword [rax]
mov edi, r14d
xor edi, esi
movzx ebx, dil
mov ebx, dword [rsp + rbx*4]
xor ebx, r11d
xor ebx, eax
mov dword [rsp + rsi*4 + 0x1000], ebx
lea ebx, [rsi + 1]
xor ebx, r14d
movzx ebx, bl
mov ebx, dword [rsp + rbx*4]
xor ebx, r11d
xor ebx, eax
mov dword [rsp + rsi*4 + 0x1004], ebx
add rsi, 2
cmp rsi, 0x100
jne 0x158040
test r9, r9
je 0x1580e2
xor eax, eax
nop word cs:[rax + rax]
nop
mov ebx, dword [rcx + rax*4]
xor ebx, dword [r8]
movzx edi, bl
mov edi, dword [rsp + rdi*4 + 0x400]
movzx esi, bh
or esi, 0x100
xor edi, dword [rsp + rsi*4 + 0x400]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
or esi, 0x200
xor edi, dword [rsp + rsi*4 + 0x400]
shr ebx, 0x18
or ebx, 0x300
xor edi, dword [rsp + rbx*4 + 0x400]
mov dword [r8], edi
add rax, 1
cmp r9, rax
jne 0x158090
mov rax, rdx
and rax, 0xfffffffffffffffc
cmp rax, rdx
jae 0x158151
mov rbx, rax
not rbx
test dl, 1
je 0x158114
mov edi, dword [r8]
movzx r9d, dil
movzx esi, byte [rcx + rax]
xor esi, r9d
shr edi, 8
xor edi, dword [rsp + rsi*4]
mov dword [r8], edi
or rax, 1
add rbx, rdx
je 0x158151
nop dword [rax]
mov ebx, dword [r8]
movzx edi, bl
movzx esi, byte [rcx + rax]
xor esi, edi
shr ebx, 8
xor ebx, dword [rsp + rsi*4]
mov dword [r8], ebx
movzx edi, bl
movzx esi, byte [rcx + rax + 1]
xor esi, edi
shr ebx, 8
xor ebx, dword [rsp + rsi*4]
mov dword [r8], ebx
add rax, 2
cmp rdx, rax
jne 0x158120
movaps xmm6, xmmword [rsp + 0x1400]
movaps xmm7, xmmword [rsp + 0x1410]
movaps xmm8, xmmword [rsp + 0x1420]
movaps xmm9, xmmword [rsp + 0x1430]
movaps xmm10, xmmword [rsp + 0x1440]
movaps xmm11, xmmword [rsp + 0x1450]
movaps xmm12, xmmword [rsp + 0x1460]
movaps xmm13, xmmword [rsp + 0x1470]
movaps xmm14, xmmword [rsp + 0x1480]
movaps xmm15, xmmword [rsp + 0x1490]
add rsp, 0x14a8
pop rbx
pop rdi
pop rsi
pop r14
ret