Function at 0x4e597f
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 0x4e5ab5
mov rax, qword [rbp + 0x18]
cmp rax, 4
jb 0x4e5a60
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
call fcn.004e8cab
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.004e8cab
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.004e8cab
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.004e8cab
mov rcx, qword [rbp - 0x20]
or rcx, rax
mov qword [rbp - 0x18], rcx
jmp 0x4e5ab0
mov rax, qword [rbp + 0x18]
cmp rax, 0
jbe 0x4e5a9e
mov rax, qword [rbp + 0x18]
mov r11, rax
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004e8ce5
mov qword [rbp - 0x10], rax
movabs rax, 0
mov qword [rbp - 0x18], rax
jmp 0x4e5ab0
movabs rax, 0
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
jmp 0x4e5cd3
mov rax, qword [rbp + 0x18]
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
cmp rax, 0x30
jbe 0x4e5c1b
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.004e8c70
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.004e8c70
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.004e8c37
mov qword [rbp + 0x20], rax
mov rax, qword [rbp - 8]
add rax, 0x10
mov r10, rax
mov rcx, r10
call fcn.004e8c70
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.004e8c70
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.004e8c37
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 8]
add rax, 0x20
mov r10, rax
mov rcx, r10
call fcn.004e8c70
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.004e8c70
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.004e8c37
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 0x4e5adb
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 0x4e5c97
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
call fcn.004e8c70
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.004e8c70
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.004e8c37
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 0x4e5c1b
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 8]
add rcx, rax
sub rcx, 0x10
mov r10, rcx
mov rcx, r10
call fcn.004e8c70
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.004e8c70
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.004e8c37
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004e8c37
leave
ret