Function at 0x4f1ddb
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], r9
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rax]
xor rcx, rdx
mov qword [rbp + 0x20], rcx
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
ja 0x4f1f11
mov rax, qword [rbp + 0x18]
cmp rax, 4
jb 0x4f1ebc
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
call fcn.004f5638
shl rax, 0x20
mov rcx, qword [rbp + 0x18]
shr rcx, 3
shl rcx, 2
mov rdx, qword [rbp - 8]
add rdx, rcx
mov r10, rdx
mov qword [rbp - 0x20], rax
mov rcx, r10
call fcn.004f5638
mov rcx, qword [rbp - 0x20]
or rcx, rax
mov qword [rbp - 0x10], rcx
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp - 8]
add rcx, rax
sub rcx, 4
mov r10, rcx
mov rcx, r10
call fcn.004f5638
shl rax, 0x20
mov rcx, qword [rbp + 0x18]
mov rdx, qword [rbp - 8]
add rdx, rcx
sub rdx, 4
mov rcx, qword [rbp + 0x18]
shr rcx, 3
shl rcx, 2
sub rdx, rcx
mov r10, rdx
mov qword [rbp - 0x20], rax
mov rcx, r10
call fcn.004f5638
mov rcx, qword [rbp - 0x20]
or rcx, rax
mov qword [rbp - 0x18], rcx
jmp 0x4f1f0c
mov rax, qword [rbp + 0x18]
cmp rax, 0
jbe 0x4f1efa
mov rax, qword [rbp + 0x18]
mov r11, rax
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004f5672
mov qword [rbp - 0x10], rax
movabs rax, 0
mov qword [rbp - 0x18], rax
jmp 0x4f1f0c
movabs rax, 0
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
jmp 0x4f212f
mov rax, qword [rbp + 0x18]
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
cmp rax, 0x30
jbe 0x4f2077
mov rax, qword [rbp + 0x20]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp + 0x20]
mov qword [rbp - 0x38], rax
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp + 0x28]
add rcx, 8
mov rdx, qword [rcx]
xor rax, rdx
mov rcx, qword [rbp - 8]
add rcx, 8
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp + 0x20]
xor rax, rcx
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004f55c4
mov qword [rbp + 0x20], rax
mov rax, qword [rbp - 8]
add rax, 0x10
mov r10, rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp + 0x28]
add rcx, 0x10
mov rdx, qword [rcx]
xor rax, rdx
mov rcx, qword [rbp - 8]
add rcx, 0x18
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp - 0x30]
xor rax, rcx
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004f55c4
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 8]
add rax, 0x20
mov r10, rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp + 0x28]
add rcx, 0x18
mov rdx, qword [rcx]
xor rax, rdx
mov rcx, qword [rbp - 8]
add rcx, 0x28
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp - 0x38]
xor rax, rcx
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004f55c4
mov qword [rbp - 0x38], rax
mov rax, qword [rbp - 8]
add rax, 0x30
mov qword [rbp - 8], rax
mov rax, qword [rbp - 0x28]
sub rax, 0x30
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
cmp rax, 0x30
ja 0x4f1f37
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x38]
xor rax, rcx
mov rcx, qword [rbp + 0x20]
xor rcx, rax
mov qword [rbp + 0x20], rcx
mov rax, qword [rbp - 0x28]
cmp rax, 0x10
jbe 0x4f20f3
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp + 0x28]
add rcx, 8
mov rdx, qword [rcx]
xor rax, rdx
mov rcx, qword [rbp - 8]
add rcx, 8
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
call fcn.004f55fd
mov rcx, qword [rbp + 0x20]
xor rax, rcx
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004f55c4
mov qword [rbp + 0x20], rax
mov rax, qword [rbp - 0x28]
sub rax, 0x10
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 8]
add rax, 0x10
mov qword [rbp - 8], rax
jmp 0x4f2077
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 8]
add rcx, rax
sub rcx, 0x10
mov r10, rcx
mov rcx, r10
call fcn.004f55fd
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 8]
add rcx, rax
sub rcx, 8
mov r10, rcx
mov rcx, r10
call fcn.004f55fd
mov qword [rbp - 0x18], rax
mov rax, qword [rbp + 0x28]
add rax, 8
mov rcx, qword [rax]
mov rax, qword [rbp + 0x18]
xor rcx, rax
mov rax, qword [rbp + 0x28]
add rax, 8
mov rdx, qword [rbp - 0x10]
mov qword [rbp - 0x20], rcx
mov rcx, qword [rax]
xor rdx, rcx
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x20]
xor rax, rcx
mov r11, rax
mov r10, rdx
mov rcx, r10
mov rdx, r11
call fcn.004f55c4
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004f55c4
leave
ret