Function at 0x180014170
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rdi
sub rsp, 0x30
mov rax, qword [0x18003a7d8]
xor rax, rsp
mov qword [rsp + 0x20], rax
mov rax, qword [rdx]
mov ebp, dword [rcx + 4]
mov r9, rcx
lea rcx, [rsp]
sub ebp, 6
xor edi, edi
mov qword [rcx], rax
mov rax, qword [rdx + 8]
xor ebx, ebx
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
xor r8d, r8d
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
xor edx, edx
movsxd r10, ebp
mov qword [rcx + 0x18], rax
test ebp, ebp
jle 0x180014227
xor r11d, r11d
cmp edi, dword [r9 + 4]
jg 0x180014227
cmp rdx, r10
jge 0x180014212
cmp r8, 4
jge 0x180014212
movzx eax, byte [rsp + rdx*4]
lea rcx, [r11 + r8]
inc rdx
mov byte [r9 + rcx*4 + 0x18], al
movzx eax, byte [rsp + rdx*4 - 3]
lea rcx, [r11 + r8]
mov byte [r9 + rcx*4 + 0x19], al
movzx eax, byte [rsp + rdx*4 - 2]
inc ebx
mov byte [r9 + rcx*4 + 0x1a], al
movzx eax, byte [rsp + rdx*4 - 1]
inc r8
cmp rdx, r10
mov byte [r9 + rcx*4 + 0x1b], al
jl 0x1800141d0
cmp r8, 4
jne 0x180014222
inc edi
add r11, r8
xor ebx, ebx
xor r8d, r8d
cmp rdx, r10
jl 0x1800141c5
cmp edi, dword [r9 + 4]
movsxd r11, edi
movsxd r8, ebx
jg 0x180014407
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], r12
lea r12, [0x180041df0]
lea rsi, [0x180041cd0]
nop
movzx ecx, byte [rsp + r10*4 - 3]
movzx eax, byte [rsp]
inc rsi
xor al, byte [rcx + r12]
mov byte [rsp], al
movzx eax, byte [rsp + r10*4 - 2]
movzx eax, byte [rax + r12]
xor byte [rsp + 1], al
movzx eax, byte [rsp + r10*4 - 1]
movzx eax, byte [rax + r12]
xor byte [rsp + 2], al
movzx eax, byte [rsp + r10*4 - 4]
movzx eax, byte [rax + r12]
xor byte [rsp + 3], al
movzx eax, byte [rsi - 1]
xor byte [rsp], al
cmp ebp, 8
je 0x1800142da
cmp r10, 1
jle 0x180014385
lea rdx, [rsp + 1]
lea rbx, [r10 - 1]
movzx eax, byte [rdx - 1]
add rdx, 4
xor byte [rdx - 1], al
movzx eax, byte [rdx - 4]
xor byte [rdx], al
movzx eax, byte [rdx - 3]
xor byte [rdx + 1], al
movzx eax, byte [rdx - 2]
xor byte [rdx + 2], al
sub rbx, 1
jne 0x1800142b0
jmp 0x180014385
lea rdx, [rsp + 1]
mov ebx, 3
nop word [rax + rax]
movzx eax, byte [rdx - 1]
add rdx, 4
xor byte [rdx - 1], al
movzx eax, byte [rdx - 4]
xor byte [rdx], al
movzx eax, byte [rdx - 3]
xor byte [rdx + 1], al
movzx eax, byte [rdx - 2]
xor byte [rdx + 2], al
sub rbx, 1
jne 0x1800142f0
movzx eax, byte [rsp + 0xc]
movzx eax, byte [rax + r12]
xor byte [rsp + 0x10], al
movzx eax, byte [rsp + 0xd]
movzx eax, byte [rax + r12]
xor byte [rsp + 0x11], al
movzx eax, byte [rsp + 0xe]
movzx eax, byte [rax + r12]
xor byte [rsp + 0x12], al
movzx eax, byte [rsp + 0xf]
movzx eax, byte [rax + r12]
xor byte [rsp + 0x13], al
cmp r10, 5
jle 0x180014385
lea rdx, [rsp + 0x11]
lea rbx, [r10 - 5]
nop dword [rax]
movzx eax, byte [rdx - 1]
add rdx, 4
xor byte [rdx - 1], al
movzx eax, byte [rdx - 4]
xor byte [rdx], al
movzx eax, byte [rdx - 3]
xor byte [rdx + 1], al
movzx eax, byte [rdx - 2]
xor byte [rdx + 2], al
sub rbx, 1
jne 0x180014360
xor edx, edx
test ebp, ebp
jle 0x1800143f3
nop dword [rax + rax]
cmp edi, dword [r9 + 4]
jg 0x1800143f3
cmp rdx, r10
jge 0x1800143e0
nop dword [rax + rax]
cmp r8, 4
jge 0x1800143e0
movzx eax, byte [rsp + rdx*4]
lea rcx, [r8 + r11*4]
inc rdx
mov byte [r9 + rcx*4 + 0x18], al
movzx eax, byte [rsp + rdx*4 - 3]
lea rcx, [r8 + r11*4]
mov byte [r9 + rcx*4 + 0x19], al
movzx eax, byte [rsp + rdx*4 - 2]
inc r8
cmp rdx, r10
mov byte [r9 + rcx*4 + 0x1a], al
movzx eax, byte [rsp + rdx*4 - 1]
mov byte [r9 + rcx*4 + 0x1b], al
jl 0x1800143a0
cmp r8, 4
jne 0x1800143ee
inc edi
inc r11
xor r8d, r8d
cmp rdx, r10
jl 0x180014390
cmp edi, dword [r9 + 4]
jle 0x180014250
mov r12, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.180025eb0
add rsp, 0x30
pop rdi
pop rbp
pop rbx
ret