Function at 0x180001bf0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0xb0
mov rax, qword [0x1800140a0]
xor rax, rsp
mov qword [rsp + 0x90], rax
movdqa xmm0, xmmword [0x180011c60]
movsxd rbx, edx
xor edx, edx
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x54]
lea r8d, [rdx + 0x3c]
movdqa xmmword [rsp + 0x40], xmm0
call fcn.1800062a0
mov ecx, 0x4a
call fcn.180004840
xor r11d, r11d
mov r10, rax
mov rsi, rax
mov r9d, r11d
neg r10
mov r8, rax
nop
lea rcx, [r10 + r8]
mov byte [r8], 1
cmp rcx, rbx
jge 0x180001c78
mov eax, ebx
lea ecx, [r9 + 1]
cdq
idiv ecx
and edx, 0x80000001
jge 0x180001c75
dec edx
or edx, 0xfffffffe
inc edx
mov byte [r8], dl
inc r9d
inc r8
cmp r9d, 0x4a
jl 0x180001c50
test ebx, ebx
jle 0x1800020a3
mov edi, dword [rsp + 0x48]
mov qword [rsp + 0xd8], rbp
mov ebp, dword [rsp + 0x44]
mov qword [rsp + 0xe0], r12
mov r12d, dword [rsp + 0x4c]
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0xa8], r14
sub ebp, edi
mov qword [rsp + 0xa0], r15
sub r12d, edi
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x2c], r11d
mov dword [rsp + 0x30], r11d
mov r15d, r11d
mov r14d, r11d
mov r13d, r11d
nop word [rax + rax]
lea r9d, [r11 + rdi]
mov eax, 0xe070381d
lea ecx, [rbp + r9]
imul r11d
add edx, r11d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r11d
imul edx, edx, 0x49
sub eax, edx
movsxd r10, eax
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x49
sub ecx, edx
movsxd rax, ecx
movzx ecx, byte [rax + rsi]
mov eax, 0xe070381d
xor byte [r10 + rsi], cl
lea ecx, [r12 + r9]
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r9d
imul edx, edx, 0x49
sub eax, edx
cdqe
movzx r8d, byte [rax + rsi]
mov eax, 0xe070381d
xor r8b, byte [r10 + rsi]
imul ecx
add edx, ecx
mov byte [r10 + rsi], r8b
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x49
sub ecx, edx
movsxd rax, ecx
movzx ecx, byte [rax + rsi]
mov rax, qword [rsp + 0x20]
xor cl, r8b
mov byte [r10 + rsi], cl
movzx r9d, byte [rax]
xor r9b, byte [rsi]
xor r9b, cl
lea ecx, [r13 + 2]
mov byte [rax], r9b
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
imul edx, edx, 0x49
sub ecx, edx
imul r13d
movsxd r8, ecx
add edx, r13d
movzx r10d, byte [r8 + rsi]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r13d
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
and r10b, byte [rcx + rsi]
mov rax, qword [rsp + 0x20]
lea ecx, [r14 + 6]
xor r10b, byte [rsi + 1]
add r10b, r10b
xor r10b, r9b
mov byte [rax], r10b
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
imul edx, edx, 0x49
sub ecx, edx
imul r14d
movsxd r8, ecx
add edx, r14d
movzx r9d, byte [r8 + rsi]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r14d
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
and r9b, byte [rcx + rsi]
lea ecx, [r15 + 0xc]
xor r9b, byte [rsi + 2]
shl r9b, 2
xor r9b, r10b
mov byte [rax], r9b
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
imul edx, edx, 0x49
sub ecx, edx
imul r15d
movsxd r8, ecx
add edx, r15d
movzx r10d, byte [r8 + rsi]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r15d
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
and r10b, byte [rcx + rsi]
xor r10b, byte [rsi + 3]
shl r10b, 3
xor r10b, r9b
mov r9d, dword [rsp + 0x30]
mov byte [rax], r10b
lea ecx, [r9 + 0x14]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
imul edx, edx, 0x49
sub ecx, edx
imul r9d
movsxd r8, ecx
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r9d
movzx r9d, byte [r8 + rsi]
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
and r9b, byte [rcx + rsi]
xor r9b, byte [rsi + 4]
shl r9b, 4
xor r9b, r10b
mov r10d, dword [rsp + 0x2c]
mov byte [rax], r9b
lea ecx, [r10 + 0x1e]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
imul edx, edx, 0x49
sub ecx, edx
imul r10d
movsxd r8, ecx
add edx, r10d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r10d
movzx r10d, byte [r8 + rsi]
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
and r10b, byte [rcx + rsi]
xor r10b, byte [rsi + 5]
shl r10b, 5
xor r10b, r9b
mov r9d, dword [rsp + 0x28]
mov byte [rax], r10b
lea ecx, [r9 + 0x2a]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
imul edx, edx, 0x49
sub ecx, edx
imul r9d
movsxd r8, ecx
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r9d
movzx r9d, byte [r8 + rsi]
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
and r9b, byte [rcx + rsi]
xor r9b, byte [rsi + 6]
shl r9b, 6
xor r9b, r10b
mov r10d, dword [rsp + 0x34]
mov byte [rax], r9b
lea ecx, [r10 + 0x38]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xe070381d
inc r11d
add r13d, 2
add r14d, 3
add r15d, 4
imul edx, edx, 0x49
sub ecx, edx
movsxd r8, ecx
imul r10d
add edx, r10d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r10d
add r10d, 8
mov dword [rsp + 0x34], r10d
imul edx, edx, 0x49
sub eax, edx
movsxd rcx, eax
movzx eax, byte [r8 + rsi]
and al, byte [rcx + rsi]
mov rcx, qword [rsp + 0x20]
xor al, byte [rsi + 7]
inc rcx
shl al, 7
mov qword [rsp + 0x20], rcx
xor al, r9b
mov byte [rcx - 1], al
mov eax, dword [rsp + 0x30]
add eax, 5
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x2c]
add eax, 6
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x28]
add eax, 7
mov dword [rsp + 0x28], eax
cmp r11d, ebx
jl 0x180001cf0
mov r15, qword [rsp + 0xa0]
mov r14, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd8]
mov rcx, rsi
call fcn.180004990
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.180004970
add rsp, 0xb0
pop rdi
pop rsi
pop rbx
ret