Function at 0x140017ce0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x1f0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x208], rbx
mov qword [rbp + 0x210], rsi
mov qword [rbp + 0x218], rdi
mov rax, qword [0x1401652a8]
xor rax, rbp
mov qword [rbp + 0x1c0], rax
mov al, byte [rcx + 0x1c]
mov edi, 0xfffffff
mov r14d, dword [rcx + 0x10]
mov r12, rcx
mov r13d, dword [rcx + 0x20]
and r14d, edi
mov edx, dword [rcx]
and r13d, edi
mov rbx, qword [rcx + 8]
and edx, edi
mov byte [rbp], al
mov qword [rbp + 0x68], rcx
lea rcx, [0x140000000]
mov eax, r13d
add rax, rcx
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x30], rax
call fcn.140016770
mov qword [rbp + 0x60], rax
mov r15, rax
mov esi, 8
test r14, r14
je 0x140018234
mov ecx, r14d
and ecx, 7
mov dword [rbp + 0x10], ecx
mov ecx, r13d
not ecx
jne 0x140017da1
mov r10d, dword [rbp + 0x10]
xor r14d, r14d
mov dword [rbp + 0x1c], r13d
xor r9d, r9d
mov dword [rbp + 0x18], ecx
mov rcx, qword [rbp + 0x18]
mov qword [rbp + 8], r14
jmp 0x140017fe1
movzx edi, bx
mov rsi, rbx
shr rsi, 0x20
mov rax, rbx
shr rax, 0x10
mov r8d, esi
movzx r11d, ax
mov r9, rbx
movzx r10d, si
mov eax, r13d
ror eax, 0x16
lea edx, [rsi + r13]
ror edx, 0x17
imul edx, r11d
shr r9, 0x30
mov qword [rbp + 0x80], rbx
mov qword [rbp + 0x88], rbx
mov qword [rbp + 0x90], rbx
add edx, eax
mov qword [rbp + 0x98], rbx
xor edx, ecx
mov qword [rbp + 0xa0], rbx
sub r8d, edx
mov qword [rbp + 0xa8], rbx
mov eax, edx
ror r8d, 0xd
ror eax, 0x14
imul r8d, edi
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rbx
mov qword [rbp + 0xc0], rbx
mov qword [rbp + 0xc8], rbx
add r8d, eax
mov qword [rbp + 0xd0], rbx
xor r8d, r13d
mov qword [rbp + 0xd8], rbx
mov ecx, r8d
mov qword [rbp + 0xe0], rbx
xor ecx, r10d
mov qword [rbp + 0xe8], rbx
rol ecx, 5
mov eax, r8d
shr eax, 3
imul ecx, r9d
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], rbx
add ecx, eax
xor ecx, edx
mov edx, ebx
sub edx, ecx
mov eax, ecx
ror edx, 0x1b
imul edx, r10d
ror eax, 0x1f
xor edx, eax
xor edx, r8d
mov eax, edx
mov r8d, edx
xor eax, r10d
ror r8d, 0xe
imul eax, r11d
add r8d, eax
xor r8d, ecx
mov ecx, r8d
mov eax, r8d
xor ecx, esi
ror eax, 9
ror ecx, 0x16
imul ecx, edi
add ecx, eax
xor ecx, edx
mov edx, ebx
sub edx, ecx
mov eax, ecx
ror edx, 0xd
imul edx, r9d
ror eax, 0x12
sub edx, eax
xor edx, r8d
mov r8d, edx
sub r8d, ebx
ror r8d, 0x17
mov eax, edx
ror eax, 0x18
imul r8d, r10d
mov r10d, dword [rbp + 0x10]
mov qword [rbp + 0x100], rbx
mov qword [rbp + 0x108], rbx
mov qword [rbp + 0x110], rbx
sub r8d, eax
mov qword [rbp + 0x118], rbx
xor r8d, ecx
xor ecx, ecx
mov eax, r8d
mov qword [rbp + 0x20], rcx
ror eax, 9
mov r14d, r8d
xor r14d, esi
ror r14d, 0x1c
imul r14d, r11d
mov r11d, r10d
sub r14d, eax
xor r14d, edx
mov edx, r10d
mov eax, r14d
mov dword [rbp + 8], r14d
ror eax, 1
mov r9d, r14d
sub r9d, esi
ror r9d, 0x14
imul r9d, edi
xor r9d, eax
mov rax, qword [rbp + 0x30]
xor r9d, r8d
mov r8, rax
mov dword [rbp + 0xc], r9d
test r10d, r10d
je 0x140017f7a
lea rcx, [rbp + 0x20]
sub rcx, rax
mov al, byte [r8]
mov byte [r8 + rcx], al
inc r8
sub r11, 1
jne 0x140017f5e
mov r9d, dword [rbp + 0xc]
mov r14d, dword [rbp + 8]
mov rcx, qword [rbp + 0x20]
xor r9d, dword [rbp + 0x24]
lea r8, [rbp + 8]
xor r14d, ecx
mov dword [rbp + 0xc], r9d
mov esi, 8
mov dword [rbp + 8], r14d
mov eax, esi
mov qword [rbp + 0x18], rcx
lea r8, [r8 + r10]
sub rax, rdx
je 0x140017fb6
mov byte [r8], 0
inc r8
sub rax, 1
jne 0x140017fa1
mov r9d, dword [rbp + 0xc]
mov r14d, dword [rbp + 8]
lea r8, [rbp + 8]
test r10d, r10d
je 0x140017fe1
lea rax, [rbp + 8]
mov r9, r15
sub r9, rax
mov al, byte [r8]
mov byte [r8 + r9], al
inc r8
sub rdx, 1
jne 0x140017fc9
mov r9d, dword [rbp + 0xc]
mov r14d, dword [rbp + 8]
mov r13, qword [rbp + 0x40]
mov eax, r10d
add rax, r15
mov qword [rbp + 0x50], rax
mov rax, r13
shr rax, 3
mov qword [rbp + 0x48], rax
test rax, rax
je 0x140018228
mov r12, qword [rbp + 0x30]
mov rax, rbx
mov r13, qword [rbp + 0x48]
mov rdx, rbx
shr rax, 0x30
mov r11, rbx
shr rdx, 0x10
shr r11, 0x20
mov qword [rbp + 0x58], rax
sub r12, r15
mov r15, qword [rbp + 0x50]
movzx eax, bx
mov dword [rbp + 0x10], eax
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 + 0x1a8], rbx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x1b0], rbx
mov qword [rbp + 0x1b8], rbx
mov qword [rbp + 0x38], r11
mov rax, qword [r12 + r15]
mov r10d, r11d
movzx edi, dx
mov r8, rax
shr r8, 0x20
xor r8d, r9d
mov qword [rbp + 0x20], rax
mov edx, r8d
ror edx, 0x16
lea r9d, [r11 + r8]
movzx r11d, r11w
ror r9d, 0x17
imul r9d, edi
add r9d, edx
xor r9d, eax
xor r9d, r14d
mov r14, qword [rbp + 0x58]
sub r10d, r9d
mov edx, r9d
ror edx, 0x14
ror r10d, 0xd
imul r10d, dword [rbp + 0x10]
add r10d, edx
xor r10d, r8d
mov r8d, r11d
xor r8d, r10d
mov edx, r10d
shr edx, 3
rol r8d, 5
imul r8d, r14d
add r8d, edx
xor r8d, r9d
mov r9d, ebx
sub r9d, r8d
mov edx, r8d
ror edx, 0x1f
ror r9d, 0x1b
imul r9d, r11d
xor r9d, edx
xor r9d, r10d
mov edx, r9d
mov r10d, r9d
xor edx, r11d
ror r10d, 0xe
imul edx, edi
add r10d, edx
xor r10d, r8d
mov r8d, r10d
mov edx, r10d
xor r8d, dword [rbp + 0x38]
ror edx, 9
ror r8d, 0x16
imul r8d, dword [rbp + 0x10]
add r8d, edx
xor r8d, r9d
mov r9d, ebx
sub r9d, r8d
mov edx, r8d
ror edx, 0x12
ror r9d, 0xd
imul r9d, r14d
sub r9d, edx
xor r9d, r10d
mov r10d, r9d
mov edx, r9d
sub r10d, ebx
ror edx, 0x18
ror r10d, 0x17
imul r10d, r11d
mov r11, qword [rbp + 0x38]
sub r10d, edx
xor r10d, r8d
mov r14d, r10d
mov edx, r10d
xor r14d, r11d
ror edx, 9
ror r14d, 0x1c
imul r14d, edi
sub r14d, edx
xor r14d, r9d
mov edx, r14d
xor r14d, dword [rbp + 0x18]
mov r9d, edx
sub r9d, r11d
ror edx, 1
ror r9d, 0x14
imul r9d, dword [rbp + 0x10]
shr rcx, 0x20
mov dword [r15], r14d
mov qword [rbp + 0x18], rax
xor r9d, edx
mov rdx, qword [rbp + 0x28]
xor r9d, ecx
mov rcx, rax
xor r9d, r10d
mov dword [r15 + 4], r9d
add r15, rsi
sub r13, 1
jne 0x1400180c5
mov r15, qword [rbp + 0x60]
mov r12, qword [rbp + 0x68]
mov r13, qword [rbp + 0x40]
mov dword [rbp + 8], r14d
mov dword [rbp + 0xc], r9d
mov al, byte [r15 + r13 - 1]
mov edi, 0xfffffff
jmp 0x140018237
mov al, byte [rbp]
cmp al, byte [rbp]
je 0x140018241
call fcn.140015f70
mov ecx, dword [r12 + 0x14]
test edi, ecx
je 0x14001826f
lea rax, [0x140000000]
and rcx, rdi
mov qword [rbp + 0x28], rax
lea rdx, [rbp + 0x28]
add rcx, r15
mov al, byte [rdx]
inc rdx
mov byte [rcx], al
inc rcx
sub rsi, 1
jne 0x14001825f
mov ecx, dword [r12 + 0x18]
test edi, ecx
je 0x14001829a
and rcx, rdi
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x14001828e
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.14007a9f0
sub rsp, rax
and qword [rbp + 0x78], 0
lea r9, [rbp + 0x70]
and qword [rbp + 0x70], 0
lea r8, [rbp + 0x78]
mov rdx, r15
call fcn.140016bfc
mov rax, r15
mov rcx, qword [rbp + 0x1c0]
xor rcx, rbp
call fcn.14003b560
mov rbx, qword [rbp + 0x208]
mov rsi, qword [rbp + 0x210]
mov rdi, qword [rbp + 0x218]
lea rsp, [rbp + 0x1d0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret