Function at 0x140018be0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x1d0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x1e8], rbx
mov qword [rbp + 0x1f0], rsi
mov qword [rbp + 0x1f8], rdi
mov rax, qword [0x1401652a8]
xor rax, rbp
mov qword [rbp + 0x1a8], rax
mov al, byte [rcx + 0x14]
mov r15, rcx
mov edx, dword [rcx]
mov rbx, qword [rcx + 8]
mov qword [rbp + 0x50], rcx
mov ecx, 0xfffffff
mov esi, dword [r15 + 0x10]
and edx, ecx
mov r12d, dword [r15 + 0x18]
and esi, ecx
and r12d, ecx
mov byte [rbp], al
lea rax, [0x140000000]
mov r13d, r12d
add r13, rax
mov qword [rbp + 0x28], rsi
call fcn.140016770
mov qword [rbp + 0x48], rax
mov r14, rax
mov edi, 8
test rsi, rsi
je 0x1400190aa
mov ecx, esi
mov edx, r12d
and ecx, 7
not edx
mov dword [rbp + 0x10], ecx
jne 0x140018c9a
mov r11d, dword [rbp + 0x10]
xor edi, edi
mov dword [rbp + 0x24], r12d
xor r10d, r10d
mov dword [rbp + 0x20], edx
mov rcx, qword [rbp + 0x20]
mov qword [rbp + 8], rdi
jmp 0x140018e95
movzx r11d, bx
mov rdi, rbx
shr rdi, 0x20
mov rax, rbx
shr rax, 0x10
mov r10, rbx
movzx esi, ax
mov eax, r12d
ror eax, 0x1d
shr r10, 0x30
lea ecx, [r12 + rdi]
ror ecx, 3
imul ecx, esi
movzx r9d, di
mov qword [rbp + 0x68], rbx
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], rbx
add ecx, eax
mov qword [rbp + 0x80], rbx
xor ecx, edx
mov qword [rbp + 0x88], rbx
mov edx, ecx
mov qword [rbp + 0x90], rbx
xor edx, edi
mov qword [rbp + 0x98], rbx
ror edx, 0x18
mov eax, ecx
imul edx, r11d
ror eax, 2
mov qword [rbp + 0xa0], rbx
mov qword [rbp + 0xa8], rbx
mov qword [rbp + 0xb0], rbx
xor edx, eax
mov qword [rbp + 0xb8], rbx
xor edx, r12d
mov qword [rbp + 0xc0], rbx
mov r8d, edx
mov qword [rbp + 0xc8], rbx
mov eax, edx
mov qword [rbp + 0xd0], rbx
ror eax, 0x15
xor r8d, ebx
ror r8d, 0x1c
imul r8d, r10d
mov qword [rbp + 0xd8], rbx
mov qword [rbp + 0xe0], rbx
mov qword [rbp + 0xe8], rbx
mov qword [rbp + 0xf0], rbx
sub r8d, eax
xor r8d, ecx
mov ecx, r8d
mov eax, r8d
sub ecx, ebx
ror eax, 6
ror ecx, 0xf
imul ecx, r9d
xor ecx, eax
xor ecx, edx
mov edx, ecx
mov eax, ecx
xor edx, r10d
ror eax, 0x15
rol edx, 1
imul edx, esi
sub edx, eax
xor edx, r8d
mov eax, edx
sub eax, r11d
sub eax, edi
xor eax, ecx
mov ecx, eax
ror ecx, 5
xor ecx, r10d
imul ecx, r9d
xor ecx, edx
mov edx, ecx
not edx
ror edx, 0xb
add edx, r9d
imul edx, r10d
xor edx, eax
mov eax, edx
mov qword [rbp + 0xf8], rbx
xor eax, edi
mov qword [rbp + 0x100], rbx
mov edi, ebx
mov r8, r13
sub edi, eax
xor edi, ecx
xor ecx, ecx
mov eax, edi
mov dword [rbp + 8], edi
xor eax, esi
mov qword [rbp + 0x18], rcx
imul eax, r11d
mov r10d, edi
mov r11d, dword [rbp + 0x10]
ror r10d, 8
mov r9d, r11d
xor r10d, eax
xor r10d, edx
mov edx, r11d
mov dword [rbp + 0xc], r10d
test r11d, r11d
je 0x140018e30
lea rcx, [rbp + 0x18]
sub rcx, r13
mov al, byte [r8]
mov byte [rcx + r8], al
inc r8
sub r9, 1
jne 0x140018e15
mov r10d, dword [rbp + 0xc]
mov edi, dword [rbp + 8]
mov rcx, qword [rbp + 0x18]
xor r10d, dword [rbp + 0x1c]
lea r8, [rbp + 8]
xor edi, ecx
mov dword [rbp + 0xc], r10d
mov eax, 8
mov dword [rbp + 8], edi
mov qword [rbp + 0x20], rcx
lea r8, [r8 + r11]
sub rax, rdx
je 0x140018e67
mov byte [r8], 0
inc r8
sub rax, 1
jne 0x140018e53
mov r10d, dword [rbp + 0xc]
mov edi, dword [rbp + 8]
lea r8, [rbp + 8]
test r11d, r11d
je 0x140018e91
lea rax, [rbp + 8]
mov r9, r14
sub r9, rax
mov al, byte [r8]
mov byte [r9 + r8], al
inc r8
sub rdx, 1
jne 0x140018e7a
mov r10d, dword [rbp + 0xc]
mov edi, dword [rbp + 8]
mov rsi, qword [rbp + 0x28]
mov eax, r11d
mov r12, rsi
add rax, r14
shr r12, 3
mov qword [rbp + 0x40], rax
test r12, r12
je 0x14001909e
mov r15, qword [rbp + 0x40]
mov rax, rbx
shr rax, 0x30
mov rdx, rbx
mov qword [rbp + 0x38], rax
mov rax, rbx
shr rax, 0x20
mov qword [rbp + 0x18], rax
shr rdx, 0x10
movzx eax, bx
sub r13, r14
mov r14, qword [rbp + 0x18]
mov dword [rbp + 0x10], eax
mov qword [rbp + 0x108], rbx
mov qword [rbp + 0x110], rbx
mov qword [rbp + 0x118], rbx
mov qword [rbp + 0x120], rbx
mov qword [rbp + 0x128], rbx
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], rbx
mov qword [rbp + 0x140], rbx
mov qword [rbp + 0x148], rbx
mov qword [rbp + 0x150], rbx
mov qword [rbp + 0x158], rbx
mov qword [rbp + 0x160], rbx
mov qword [rbp + 0x168], rbx
mov qword [rbp + 0x170], rbx
mov qword [rbp + 0x178], rbx
mov qword [rbp + 0x180], rbx
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0x190], rbx
mov qword [rbp + 0x198], rbx
mov qword [rbp + 0x1a0], rbx
mov qword [rbp + 0x30], rdx
mov rax, qword [r15 + r13]
movzx esi, dx
mov r8, rax
shr r8, 0x20
xor r8d, r10d
shr rcx, 0x20
mov edx, r8d
mov qword [rbp + 0x18], rax
ror edx, 0x1d
lea r9d, [r8 + r14]
ror r9d, 3
imul r9d, esi
add r9d, edx
xor r9d, eax
xor r9d, edi
movzx edi, r14w
mov r11d, r9d
mov edx, r9d
ror edx, 2
xor r11d, r14d
ror r11d, 0x18
imul r11d, dword [rbp + 0x10]
xor r11d, edx
xor r11d, r8d
mov r10d, r11d
mov edx, r11d
ror edx, 0x15
xor r10d, ebx
ror r10d, 0x1c
imul r10d, dword [rbp + 0x38]
sub r10d, edx
xor r10d, r9d
mov r8d, r10d
mov edx, r10d
ror edx, 6
sub r8d, ebx
ror r8d, 0xf
imul r8d, edi
xor r8d, edx
xor r8d, r11d
mov r11, qword [rbp + 0x38]
mov r9d, r8d
mov edx, r8d
xor r9d, r11d
ror edx, 0x15
rol r9d, 1
imul r9d, esi
sub r9d, edx
xor r9d, r10d
mov edx, r9d
sub edx, dword [rbp + 0x10]
sub edx, r14d
xor edx, r8d
mov r8d, edx
ror r8d, 5
xor r8d, r11d
imul r8d, edi
xor r8d, r9d
mov r9d, r8d
not r9d
ror r9d, 0xb
add r9d, edi
mov edi, ebx
imul r9d, r11d
xor r9d, edx
mov edx, r9d
xor edx, r14d
sub edi, edx
xor edi, r8d
mov edx, edi
xor edi, dword [rbp + 0x20]
mov r10d, edx
mov qword [rbp + 0x20], rax
ror r10d, 8
xor edx, esi
imul edx, dword [rbp + 0x10]
mov dword [r15], edi
xor r10d, edx
xor r10d, ecx
mov rcx, rax
xor r10d, r9d
mov rdx, qword [rbp + 0x30]
mov dword [r15 + 4], r10d
lea r15, [r15 + 8]
sub r12, 1
jne 0x140018f6d
mov r14, qword [rbp + 0x48]
mov r15, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x28]
mov dword [rbp + 0xc], r10d
mov dword [rbp + 8], edi
mov al, byte [rsi + r14 - 1]
mov edi, 8
jmp 0x1400190ad
mov al, byte [rbp]
cmp al, byte [rbp]
je 0x1400190b7
call fcn.140015f70
mov ecx, dword [r15 + 4]
mov r8d, 0xfffffff
test r8d, ecx
je 0x1400190eb
lea rax, [0x140000000]
and rcx, r8
mov qword [rbp + 0x30], rax
lea rdx, [rbp + 0x30]
add rcx, r14
mov al, byte [rdx]
inc rdx
mov byte [rcx], al
inc rcx
sub rdi, 1
jne 0x1400190db
mov ecx, dword [r15 + 0x1c]
test r8d, ecx
je 0x140019116
and rcx, r8
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x14001910a
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.14007a9f0
sub rsp, rax
and qword [rbp + 0x60], 0
lea r9, [rbp + 0x58]
and qword [rbp + 0x58], 0
lea r8, [rbp + 0x60]
mov rdx, r14
call fcn.140016bfc
mov rax, r14
mov rcx, qword [rbp + 0x1a8]
xor rcx, rbp
call fcn.14003b560
mov rbx, qword [rbp + 0x1e8]
mov rsi, qword [rbp + 0x1f0]
mov rdi, qword [rbp + 0x1f8]
lea rsp, [rbp + 0x1b0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret