Function at 0x39f040
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2e8
xor eax, eax
nop word cs:[rax + rax]
nop
mov rbx, qword [rcx + rax*8 + 8]
mov qword [rsp + rax*8], rbx
add rax, 1
cmp rax, 8
jne 0x39f060
mov qword [rsp + 0x48], rcx
xor eax, eax
nop word [rax + rax]
mov rbx, qword [rdx + rax*8]
bswap rbx
mov qword [rsp + rax*8 + 0x60], rbx
add rax, 1
cmp rax, 0x10
jne 0x39f080
xor eax, eax
nop dword [rax + rax]
mov rdx, qword [rsp + rax*8 + 0xd0]
mov rbx, rdx
rol rbx, 0x2d
mov rdi, rdx
rol rdi, 3
shr rdx, 6
xor rdx, rdi
xor rdx, rbx
mov rbx, qword [rsp + rax*8 + 0x60]
mov rdi, qword [rsp + rax*8 + 0x68]
mov r8, rdi
ror r8, 1
mov rsi, rdi
rol rsi, 0x38
shr rdi, 7
xor rdi, rsi
xor rdi, r8
add rbx, qword [rsp + rax*8 + 0xa8]
add rbx, rdx
add rbx, rdi
mov qword [rsp + rax*8 + 0xe0], rbx
add rax, 1
cmp rax, 0x40
jne 0x39f0a0
mov r10, qword [rsp + 0x38]
mov r14, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x30]
mov r11, qword [rsp + 0x28]
mov r15, qword [rsp]
mov r9, qword [rsp + 8]
mov rdx, qword [rsp + 0x10]
mov r8, qword [rsp + 0x18]
xor eax, eax
nop word [rax + rax]
mov rdi, r14
rol rdi, 0x32
mov r12, r14
rol r12, 0x2e
mov r13, r14
rol r13, 0x17
mov rbp, r11
xor rbp, rbx
mov rcx, rax
lea rax, [0x003b7860]
add r10, qword [rax + rcx*8]
mov rsi, rcx
xor r12, rdi
and rbp, r14
mov rax, r15
rol rax, 0x24
xor r13, r12
xor rbp, rbx
mov rdi, r15
rol rdi, 0x1e
mov rcx, r15
add r10, r13
rol rcx, 0x19
add r10, qword [rsp + rsi*8 + 0x60]
mov r13, rsi
xor rdi, rax
xor rcx, rdi
mov rsi, r9
or rsi, r15
add r10, rbp
and rsi, rdx
mov rax, r9
and rax, r15
or rax, rsi
add r8, r10
add rax, r10
add rax, rcx
mov rcx, r8
rol rcx, 0x32
mov rdi, r8
rol rdi, 0x2e
mov r12, r8
mov rsi, rbx
mov rbx, r11
rol r12, 0x17
xor rbx, r14
and rbx, r8
xor rbx, r11
mov rbp, rax
add rbx, rsi
rol rbp, 0x24
lea rsi, [0x003b7860]
mov r10, r13
add rbx, qword [rsi + r13*8 + 8]
xor rdi, rcx
mov rcx, rax
rol rcx, 0x1e
mov rsi, rax
xor r12, rdi
rol rsi, 0x19
add rbx, qword [rsp + r13*8 + 0x68]
xor rcx, rbp
mov rdi, rax
or rdi, r15
and rdi, r9
mov rbp, rax
xor rsi, rcx
and rbp, r15
or rbp, rdi
add rbp, rsi
add rbx, r12
add rdx, rbx
add rbp, rbx
mov r13, rbp
mov r12, rdx
rol r12, 0x32
mov rsi, rdx
rol rsi, 0x2e
mov rdi, rdx
mov rbx, r8
rol rdi, 0x17
xor rbx, r14
lea rbp, [0x003b7860]
add r11, qword [rbp + r10*8 + 0x10]
and rbx, rdx
add r11, qword [rsp + r10*8 + 0x70]
mov rbp, r13
rol rbp, 0x24
xor rbx, r14
mov rcx, r13
rol rcx, 0x1e
xor rsi, r12
add r11, rbx
mov rbx, r13
rol rbx, 0x19
xor rdi, rsi
xor rcx, rbp
xor rbx, rcx
mov rcx, r13
or rcx, rax
add r11, rdi
and rcx, r15
mov rsi, r13
and rsi, rax
or rsi, rcx
add rsi, rbx
add r9, r11
add r11, rsi
mov r12, r9
rol r12, 0x32
mov rsi, r9
rol rsi, 0x2e
mov rdi, r9
mov rbx, rdx
rol rdi, 0x17
xor rbx, r8
lea rcx, [0x003b7860]
add r14, qword [rcx + r10*8 + 0x18]
and rbx, r9
add r14, qword [rsp + r10*8 + 0x78]
mov rbp, r11
rol rbp, 0x24
xor rbx, r8
mov rcx, r11
rol rcx, 0x1e
xor rsi, r12
add r14, rbx
mov rbx, r11
rol rbx, 0x19
xor rdi, rsi
xor rcx, rbp
xor rbx, rcx
mov rcx, r11
mov qword [rsp + 0x50], r13
or rcx, r13
add r14, rdi
and rcx, rax
mov rsi, r11
and rsi, r13
or rsi, rcx
add rsi, rbx
add r15, r14
add r14, rsi
mov r12, r15
rol r12, 0x32
mov r13, r15
rol r13, 0x2e
mov rdi, r15
mov rbx, r9
rol rdi, 0x17
xor rbx, rdx
mov qword [rsp + 0x58], r10
lea rbp, [0x003b7860]
add r8, qword [rbp + r10*8 + 0x20]
and rbx, r15
add r8, qword [rsp + r10*8 + 0x80]
mov rbp, r14
rol rbp, 0x24
xor rbx, rdx
mov rcx, r14
rol rcx, 0x1e
xor r13, r12
add r8, rbx
mov rsi, r14
rol rsi, 0x19
xor rdi, r13
mov r12, r8
xor rcx, rbp
xor rsi, rcx
mov rcx, r14
or rcx, r11
add r12, rdi
mov rbx, qword [rsp + 0x50]
and rcx, rbx
mov r8, r14
and r8, r11
or r8, rcx
mov r10, rax
add r8, rsi
add r10, r12
add r8, r12
mov rcx, r10
rol rcx, 0x32
mov rbp, r10
rol rbp, 0x2e
mov rdi, r10
mov rsi, r15
rol rdi, 0x17
xor rsi, r9
mov r12, qword [rsp + 0x58]
lea r13, [0x003b7860]
add rdx, qword [r13 + r12*8 + 0x28]
and rsi, r10
xor rsi, r9
add rdx, qword [rsp + r12*8 + 0x88]
xor rbp, rcx
add rdx, rsi
mov rcx, r8
rol rcx, 0x24
mov rax, r8
xor rdi, rbp
mov rbp, rdx
rol rax, 0x1e
xor rax, rcx
mov rcx, r8
add rbp, rdi
rol rcx, 0x19
mov rdi, r8
or rdi, r14
xor rcx, rax
and rdi, r11
mov rdx, r8
and rdx, r14
or rdx, rdi
add rdx, rcx
mov rsi, rbx
add rsi, rbp
add rdx, rbp
mov rax, rsi
rol rax, 0x32
mov rcx, rsi
rol rcx, 0x2e
mov rbp, rsi
mov rbx, r10
rol rbp, 0x17
xor rbx, r15
add r9, qword [r13 + r12*8 + 0x30]
and rbx, rsi
xor rbx, r15
add r9, qword [rsp + r12*8 + 0x90]
xor rcx, rax
add r9, rbx
mov rbx, rsi
mov rax, rdx
rol rax, 0x24
mov rsi, rdx
xor rbp, rcx
mov rcx, r9
rol rsi, 0x1e
xor rsi, rax
mov rax, rdx
add rcx, rbp
rol rax, 0x19
mov rdi, rdx
or rdi, r8
xor rax, rsi
and rdi, r14
mov r9, rdx
and r9, r8
or r9, rdi
add r9, rax
add r11, rcx
add r9, rcx
mov rax, r11
rol rax, 0x32
mov rcx, r11
rol rcx, 0x2e
mov rsi, r11
mov rdi, rbx
rol rsi, 0x17
xor rdi, r10
mov rbp, r12
add r15, qword [r13 + r12*8 + 0x38]
and rdi, r11
xor rdi, r10
add r15, qword [rsp + r12*8 + 0x98]
xor rcx, rax
add r15, rdi
mov rax, r9
rol rax, 0x24
mov rdi, r9
xor rsi, rcx
mov rcx, r15
rol rdi, 0x1e
xor rdi, rax
mov rax, r9
add rcx, rsi
rol rax, 0x19
mov rsi, r9
or rsi, rdx
xor rax, rdi
and rsi, r8
mov r15, r9
and r15, rdx
or r15, rsi
add r15, rax
add r14, rcx
add r15, rcx
mov rcx, rbp
add rcx, 8
mov rax, rcx
cmp rcx, 0x50
jb 0x39f130
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov qword [rsp], r15
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
xor eax, eax
mov rdx, qword [rsp + 0x48]
nop dword [rax]
mov rcx, qword [rsp + rax*8]
add qword [rdx + rax*8 + 8], rcx
add rax, 1
cmp rax, 8
jne 0x39f550
add rsp, 0x2e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret