Function at 0x4ffa40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov eax, 0x78
call fcn.005555e0
sub rsp, rax
cmp dword [rsp + 0xb0], 0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], r12
mov r12, qword [rsp + 0xa8]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r14
mov ebx, dword [r12]
mov qword [rsp + 0x38], r15
mov r10, r9
mov rdi, r8
mov rsi, rdx
mov rbp, rcx
je 0x4ffbf6
test ebx, ebx
mov r12, qword [rsp + 0xa0]
je 0x4ffad7
nop
test rdi, rdi
je 0x4ffad7
movzx eax, byte [rbp]
mov ecx, ebx
inc rsi
xor byte [rcx + r12], al
movzx eax, byte [rcx + r12]
inc rbp
dec rdi
mov byte [rsi - 1], al
inc ebx
and ebx, 0xf
jne 0x4ffab0
cmp rdi, 0x10
mov r9, qword [rsp + 0xb8]
movsxd r15, ebx
jb 0x4ffbac
mov r13, rsi
mov r14, rbp
mov rcx, rdi
shr rcx, 4
sub r13, r12
sub r14, r12
mov rax, rcx
imul rax, rax, 0xfffffffffffffff0
add rdi, rax
mov rax, rcx
shl rax, 4
add rsi, rax
add rbp, rax
mov qword [rsp + 0x80], rbp
mov rbp, qword [rsp + 0x98]
mov qword [rsp + 0x88], rsi
mov rsi, rcx
mov r8, rbp
mov rdx, r12
mov rcx, r12
call r9
cmp ebx, 0x10
jae 0x4ffb7a
mov edx, reloc.WS2_32.dll_ntohs
lea rcx, [r15 + r12]
sub edx, ebx
shr edx, 3
inc edx
nop
nop
nop
nop
mov rax, qword [r14 + rcx]
add rcx, 8
xor qword [rcx - 8], rax
dec rdx
mov rax, qword [rcx - 8]
mov qword [r13 + rcx - 8], rax
jne 0x4ffb60
mov r9, qword [rsp + 0xb8]
add r13, 0x10
add r14, 0x10
xor ebx, ebx
xor r15d, r15d
dec rsi
jne 0x4ffb31
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x80]
mov r10, qword [rsp + 0x98]
test rdi, rdi
je 0x4ffbe7
mov r8, r10
mov rdx, r12
mov rcx, r12
call r9
movsxd rcx, ebx
sub rbp, r12
add rcx, r12
sub rsi, r12
add ebx, edi
nop
nop
movzx eax, byte [rcx + rbp]
inc rcx
xor byte [rcx - 1], al
dec rdi
movzx eax, byte [rcx - 1]
mov byte [rcx + rsi - 1], al
jne 0x4ffbd0
mov rax, qword [rsp + 0xa8]
mov dword [rax], ebx
jmp 0x4ffd40
test ebx, ebx
mov r13, qword [rsp + 0xa0]
je 0x4ffc2b
test rdi, rdi
je 0x4ffc2b
movzx edx, byte [rbp]
mov ecx, ebx
inc rsi
movzx eax, byte [rcx + r13]
inc rbp
dec rdi
xor al, dl
inc ebx
and ebx, 0xf
mov byte [rsi - 1], al
mov byte [rcx + r13], dl
jne 0x4ffc02
cmp rdi, 0x10
mov r9, qword [rsp + 0xb8]
movsxd r14, ebx
jb 0x4ffcf4
mov r15, rdi
mov r12, rsi
shr r15, 4
sub r12, r13
mov rax, r15
imul rax, rax, 0xfffffffffffffff0
add rdi, rax
mov qword [rsp + 0x90], rdi
mov rdi, qword [rsp + 0x98]
nop
nop
nop
mov r8, rdi
mov rdx, r13
mov rcx, r13
call r9
cmp ebx, 0x10
jae 0x4ffcbe
mov r9d, reloc.WS2_32.dll_ntohs
mov r10, rbp
lea r8, [r14 + r13]
sub r9d, ebx
sub r10, rsi
shr r9d, 3
inc r9d
nop
nop
mov rax, qword [r8]
lea rcx, [r12 + r8]
add r8, 8
mov rdx, qword [rcx + r10]
xor rax, rdx
dec r9
mov qword [rcx], rax
mov qword [r8 - 8], rdx
jne 0x4ffca0
mov r9, qword [rsp + 0xb8]
add rsi, 0x10
add r12, 0x10
add rbp, 0x10
xor ebx, ebx
xor r14d, r14d
dec r15
jne 0x4ffc70
mov rdi, qword [rsp + 0x90]
mov r10, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa8]
test rdi, rdi
je 0x4ffd3c
mov r8, r10
mov rdx, r13
mov rcx, r13
call r9
movsxd r8, ebx
sub rbp, rsi
add r8, r13
sub rsi, r13
add ebx, edi
nop
nop
nop
nop
movzx eax, byte [r8]
lea rcx, [r8 + rsi]
inc r8
movzx edx, byte [rcx + rbp]
xor al, dl
dec rdi
mov byte [rcx], al
mov byte [r8 - 1], dl
jne 0x4ffd20
mov dword [r12], ebx
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
add rsp, 0x78
ret