Function at 0x599c70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x3f8
lea r10, [rsp + 0xdf]
mov rbx, r9
mov qword [rsp + 0x440], rcx
mov qword [rsp + 0x448], rdx
and r10, 0xffffffffffffff80
mov r12, r8
mov r8, rdx
mov rdx, rcx
lea rax, [r10 + 0x100]
mov r13, r10
mov rdi, rax
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.005993a0
mov r8, rbx
mov rdx, r12
mov rcx, rdi
call fcn.00575b70
cmp qword [rsp + 0x470], 0
je 0x599f4b
lea rbx, [rsp + 0x5c]
lea rdi, [r13 + 0x300]
mov qword [rsp + 0x30], 1
mov eax, 0x1000000
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x28], 0
lea rbp, [r13 + 0x200]
lea rbx, [r13 + 0x80]
lea r12, [r13 + 0x280]
mov qword [rsp + 0x48], rdi
mov r14, r13
nop word [rax + rax]
mov rsi, qword [rsp + 0x38]
mov ecx, 0x20
mov rdi, r14
mov r8d, 4
rep movsq qword [rdi], qword [rsi]
mov rdx, qword [rsp + 0x40]
mov rcx, r14
mov dword [rsp + 0x5c], eax
call fcn.00575b70
mov rdx, rbp
mov rcx, r14
call fcn.00575d30
mov r8d, 0x20
mov rdx, rbp
mov rcx, rbx
call fcn.00575b70
mov rdx, r12
mov rcx, rbx
call fcn.00575d30
vmovups xmm0, xmmword [r14 + 0x280]
vmovups xmm1, xmmword [r14 + 0x290]
cmp qword [rsp + 0x460], 1
vmovups xmmword [r14 + 0x300], xmm0
vmovups xmmword [r14 + 0x310], xmm1
jbe 0x599e83
mov r15, qword [r14 + 0x308]
mov esi, 2
mov rdi, qword [r14 + 0x318]
mov r11, qword [r14 + 0x300]
mov r13, qword [r14 + 0x310]
mov r10, rdi
mov rdi, r15
mov r15, r11
nop dword [rax + rax]
mov r8, qword [rsp + 0x448]
mov rdx, qword [rsp + 0x440]
mov rcx, r14
mov qword [rsp + 0x20], r10
inc rsi
call fcn.005993a0
mov r8d, 0x20
mov rdx, r12
mov rcx, r14
call fcn.00575b70
mov rdx, rbp
mov rcx, r14
call fcn.00575d30
mov r8d, 0x20
mov rdx, rbp
mov rcx, rbx
call fcn.00575b70
mov rdx, r12
mov rcx, rbx
call fcn.00575d30
xor r15, qword [r14 + 0x280]
xor rdi, qword [r14 + 0x288]
xor r13, qword [r14 + 0x290]
mov r10, qword [rsp + 0x20]
xor r10, qword [r14 + 0x298]
mov qword [r14 + 0x300], r15
mov qword [r14 + 0x308], rdi
mov qword [r14 + 0x310], r13
mov qword [r14 + 0x318], r10
cmp qword [rsp + 0x460], rsi
jae 0x599de0
mov rsi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x470]
mov edx, 0x20
mov rcx, qword [rsp + 0x468]
sub rax, rsi
add rcx, rsi
cmp rax, 0x20
cmova rax, rdx
mov edx, eax
cmp eax, 8
jae 0x599f00
test al, 4
jne 0x599f5f
test eax, eax
je 0x599ed1
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax]
mov byte [rcx], al
test dl, 2
jne 0x599f77
add qword [rsp + 0x28], 0x20
inc qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x470]
jae 0x599f4b
movbe eax, dword [rsp + 0x30]
jmp 0x599d30
mov rdi, qword [rsp + 0x48]
mov rdx, qword [rdi]
mov qword [rcx], rdx
mov edx, eax
mov r8, qword [rdi + rdx - 8]
mov qword [rcx + rdx - 8], r8
lea r8, [rcx + 8]
and r8, 0xfffffffffffffff8
sub rcx, r8
lea edx, [rax + rcx]
sub rdi, rcx
and edx, 0xfffffff8
mov r10, rdi
cmp edx, 8
jb 0x599ed1
and edx, 0xfffffff8
xor eax, eax
mov ecx, eax
add eax, 8
mov r9, qword [r10 + rcx]
mov qword [r8 + rcx], r9
cmp eax, edx
jb 0x599f38
jmp 0x599ed1
add rsp, 0x3f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x48]
mov eax, dword [rdi]
mov dword [rcx], eax
mov eax, edx
mov edx, dword [rdi + rax - 4]
mov dword [rcx + rax - 4], edx
jmp 0x599ed1
mov rdi, qword [rsp + 0x48]
mov eax, edx
movzx edx, word [rdi + rax - 2]
mov word [rcx + rax - 2], dx
jmp 0x599ed1