Function at 0x140040480
Capabilities:
Encode data using xor

Disassembly:
test r8d, r8d
jle 0x140040ef8
mov r11, rsp
mov dword [r11 + 0x18], r8d
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
sub rsp, 0x310
mov qword [r11 - 0x10], rbx
xor eax, eax
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
mov dword [rsp + 0x338], eax
nop word [rax + rax]
shl eax, 7
lea r10, [rsp + 0x58]
movsxd rcx, eax
lea r11, [rsp + 0x60]
lea rax, [rdx - 0xa]
xor r13d, r13d
lea rdi, [rsp + 0x56]
lea rsi, [rsp + 0x5e]
lea r8, [rcx + rdx]
sub rcx, r8
lea r14, [rsp + 0x66]
add rax, rcx
lea r15, [rsp + 0x6e]
mov qword [rsp], rax
lea r12, [rsp + 0x76]
mov rbp, qword [rsp]
lea rax, [rdx - 9]
add rax, rcx
lea rbx, [rsp + 0x50]
mov qword [rsp + 8], rax
lea r9, [r8 + 0x12]
lea rax, [rdx - 8]
sub r10, r8
add rax, rcx
sub r11, r8
mov qword [rsp + 0x10], rax
sub rdi, r8
lea rax, [rdx - 7]
sub rsi, r8
add rax, rcx
sub r14, r8
mov qword [rsp + 0x18], rax
sub r15, r8
lea rax, [rdx - 6]
sub r12, r8
add rax, rcx
mov qword [rsp + 0x20], rax
lea rax, [rdx - 5]
add rax, rcx
mov qword [rsp + 0x28], rax
lea rax, [rdx - 4]
add rax, rcx
mov qword [rsp + 0x30], rax
lea rax, [rdx - 3]
add rax, rcx
mov qword [rsp + 0x38], rax
sub rbx, r8
nop word [rax + rax]
lea eax, [r13*8]
movsxd rcx, eax
movzx eax, byte [rcx + r8]
movzx edx, byte [rcx + r8 + 1]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 7]
movzx ecx, byte [r9 + rbp]
shl rcx, 8
shl rdx, 8
or rdx, rax
mov rax, qword [rsp + 8]
mov qword [r9 + rbx - 0x12], rdx
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x10]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x18]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x20]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x28]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x30]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x38]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
movzx eax, byte [r9 - 1]
mov qword [r9 + r10 - 0x12], rcx
movzx ecx, byte [r9 - 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 7]
mov qword [r9 + r11 - 0x12], rcx
movzx ecx, byte [r9 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 9]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xa]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xb]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xc]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xd]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xf]
mov qword [r9 + rdi], rcx
movzx ecx, byte [r9 + 0xe]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x10]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x11]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x12]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x13]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x17]
mov qword [r9 + rsi], rcx
movzx ecx, byte [r9 + 0x16]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x18]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x19]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1f]
mov qword [r9 + r14], rcx
movzx ecx, byte [r9 + 0x1e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x20]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x21]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x22]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x23]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x24]
shl rcx, 8
lea r9, [r9 + 0x40]
or rcx, rax
add r13d, 8
movzx eax, byte [r9 - 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x19]
mov qword [r9 + r15 - 0x40], rcx
movzx ecx, byte [r9 - 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x18]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x16]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x13]
shl rcx, 8
or rcx, rax
mov qword [r9 + r12 - 0x40], rcx
cmp r13d, 0x10
jl 0x140040590
mov r15, qword [rsp + 0xc0]
lea rax, [rsp + 0xc0]
mov rbp, qword [rsp + 0x320]
mov r12d, 8
mov r9, qword [rax - 0x68]
mov rdx, r15
mov r11, qword [rax - 0x60]
mov r14, r9
mov rsi, qword [rax + 8]
mov rcx, r9
mov r10, qword [rax - 0x58]
mov r8, rsi
mov rbx, qword [rax - 0x50]
ror rcx, 1
ror rdx, 0x3d
ror r8, 0x3d
ror r14, 8
xor r14, rcx
mov rcx, r9
shr rcx, 7
xor r14, rcx
mov rcx, r15
ror rcx, 0x13
xor rdx, rcx
mov rcx, r15
shr rcx, 6
xor rdx, rcx
mov rcx, rsi
ror rcx, 0x13
add r14, rdx
add r14, qword [rax - 0x70]
xor r8, rcx
add r14, qword [rax - 0x28]
mov rdx, r11
ror rdx, 8
mov rcx, rsi
shr rcx, 6
xor r8, rcx
mov qword [rax + 0x10], r14
mov rcx, r11
ror rcx, 1
xor rdx, rcx
mov rcx, r11
shr rcx, 7
xor rdx, rcx
mov rcx, r14
add r8, rdx
ror rcx, 0x13
add r8, qword [rax - 0x20]
mov rdx, r10
add r9, r8
ror rdx, 8
mov rdi, r9
mov qword [rax + 0x18], r9
ror rdi, 0x3d
mov r8, r14
ror r8, 0x3d
xor r8, rcx
mov rcx, r14
shr rcx, 6
xor r8, rcx
mov rcx, r10
ror rcx, 1
xor rdx, rcx
mov rcx, r10
shr rcx, 7
xor rdx, rcx
mov rcx, r9
ror rcx, 0x13
add r8, rdx
add r8, qword [rax - 0x18]
xor rdi, rcx
shr r9, 6
add r11, r8
mov rcx, rbx
mov qword [rax + 0x20], r11
ror rcx, 1
mov rdx, rbx
ror rdx, 8
xor rdi, r9
xor rdx, rcx
mov rcx, rbx
shr rcx, 7
xor rdx, rcx
add rdi, rdx
mov r9, qword [rax - 0x40]
mov rdx, r11
add rdi, qword [rax - 0x10]
ror rdx, 0x3d
add rdi, r10
mov r10, qword [rax - 0x48]
mov r8, r10
mov qword [rax + 0x28], rdi
ror r8, 8
mov rcx, r10
ror rcx, 1
xor r8, rcx
mov rcx, r10
shr rcx, 7
xor r8, rcx
mov rcx, r11
ror rcx, 0x13
xor rdx, rcx
shr r11, 6
xor rdx, r11
mov rcx, r9
add r8, rdx
ror rcx, 1
add r8, qword [rax - 8]
mov r11, rdi
add rbx, r8
ror r11, 0x3d
mov r8, r9
mov qword [rax + 0x30], rbx
ror r8, 8
xor r8, rcx
mov rcx, r9
shr rcx, 7
xor r8, rcx
mov rcx, rdi
ror rcx, 0x13
xor r11, rcx
shr rdi, 6
xor r11, rdi
mov rdi, qword [rax - 0x38]
lea rcx, [r10 + r8]
mov r8, rdi
add r11, rcx
ror r8, 8
add r11, r15
mov rcx, rdi
ror rcx, 1
mov r15, rbx
xor r8, rcx
ror r15, 0x3d
mov rcx, rdi
mov qword [rax + 0x38], r11
shr rcx, 7
xor r8, rcx
mov rcx, rbx
ror rcx, 0x13
xor r15, rcx
shr rbx, 6
xor r15, rbx
lea rcx, [r9 + r8]
mov r9, qword [rax - 0x30]
add r15, rcx
mov r8, r11
ror r8, 0x3d
mov rcx, r11
ror rcx, 0x13
mov rdx, r9
xor r8, rcx
ror rdx, 8
shr r11, 6
mov rcx, r9
ror rcx, 1
xor r8, r11
xor rdx, rcx
shr r9, 7
xor rdx, r9
add r15, rsi
mov qword [rax + 0x40], r15
lea rcx, [r14 + r8]
add rdx, rcx
add rdx, rdi
mov qword [rax + 0x48], rdx
lea rax, [rax + 0x40]
sub r12, 1
jne 0x1400408e1
mov rax, qword [rbp + 0x108]
xor edi, edi
mov qword [rsp + 0x38], rax
mov rsi, rax
mov rax, qword [rbp + 0x110]
mov qword [rsp + 0x30], rax
mov r14, rax
mov rax, qword [rbp + 0x118]
mov qword [rsp + 0x28], rax
mov r11, rax
mov rax, qword [rbp + 0x120]
mov qword [rsp + 0x20], rax
mov rbx, rax
mov rax, qword [rbp + 0x128]
mov qword [rsp + 0x18], rax
mov r15, rax
mov rax, qword [rbp + 0x130]
mov qword [rsp + 0x10], rax
mov r12, rax
mov rax, qword [rbp + 0x138]
mov qword [rsp + 8], rax
mov r13, rax
mov rax, qword [rbp + 0x140]
mov qword [rsp + 0x40], rax
mov rbp, rax
nop dword [rax]
nop dword [rax + rax]
lea r8, [0x140143da0]
mov rdx, r15
ror rdx, 0x29
mov rax, r15
ror rax, 0x12
mov rcx, r15
xor rdx, rax
not rcx
and rcx, r13
mov rax, r15
ror rax, 0xe
mov r9, r14
xor rdx, rax
xor r9, r11
and r9, rsi
mov rax, r12
and rax, r15
xor rcx, rax
mov rax, rsi
add rdx, rcx
ror rax, 0x22
add rdx, qword [rdi + r8]
mov rcx, rsi
add rdx, qword [rsp + rdi + 0x50]
add rdx, rbp
ror rcx, 0x27
xor rcx, rax
mov rax, rsi
ror rax, 0x1c
xor rcx, rax
mov rax, r14
lea r10, [rbx + rdx]
and rax, r11
xor r9, rax
mov rbx, r14
xor rbx, rsi
lea rax, [rdx + rcx]
mov rdx, r10
add r9, rax
ror rdx, 0x29
and rbx, r9
mov rax, r10
ror rax, 0x12
mov rcx, r10
xor rdx, rax
not rcx
and rcx, r12
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r15
xor rcx, rax
mov rax, r9
add rdx, rcx
ror rax, 0x22
add rdx, qword [rdi + r8 + 8]
mov rcx, r9
add rdx, qword [rsp + rdi + 0x58]
add rdx, r13
ror rcx, 0x27
xor rcx, rax
mov rax, r9
ror rax, 0x1c
xor rcx, rax
mov rax, r14
and rax, rsi
lea rbp, [r11 + rdx]
xor rbx, rax
lea rax, [rdx + rcx]
mov rdx, rbp
add rbx, rax
ror rdx, 0x29
mov rax, rbp
mov rcx, rbp
ror rax, 0x12
not rcx
xor rdx, rax
mov rax, rbp
ror rax, 0xe
xor rdx, rax
and rcx, r15
mov rax, rbp
and rax, r10
mov r11, r9
xor rcx, rax
xor r11, rsi
add rdx, rcx
and r11, rbx
add rdx, qword [rdi + r8 + 0x10]
mov rcx, rbx
add rdx, qword [rsp + rdi + 0x60]
mov rax, rbx
ror rax, 0x22
add rdx, r12
ror rcx, 0x27
xor rcx, rax
mov rax, rbx
ror rax, 0x1c
xor rcx, rax
lea r13, [r14 + rdx]
mov rax, r9
mov r8, r13
and rax, rsi
ror r8, 0x29
xor r11, rax
mov r14, rbx
lea rax, [rdx + rcx]
xor r14, r9
add r11, rax
mov rcx, r13
not rcx
and r14, r11
and rcx, r10
mov rax, r13
ror rax, 0x12
mov rdx, r11
xor r8, rax
ror rdx, 0x27
mov rax, r13
ror rax, 0xe
xor r8, rax
mov rax, rbp
and rax, r13
xor rcx, rax
lea rax, [0x140143da0]
add r8, rcx
add r8, qword [rsp + rdi + 0x68]
add r8, qword [rdi + rax + 0x18]
mov rax, r11
ror rax, 0x22
add r8, r15
xor rdx, rax
mov rax, r11
ror rax, 0x1c
xor rdx, rax
mov rax, rbx
lea r12, [rsi + r8]
and rax, r9
xor r14, rax
mov rcx, r12
not rcx
lea rax, [r8 + rdx]
and rcx, rbp
add r14, rax
mov r8, r12
ror r8, 0x29
mov rax, r12
ror rax, 0x12
xor r8, rax
mov rax, r12
ror rax, 0xe
xor r8, rax
mov rax, r12
and rax, r13
xor rcx, rax
lea rax, [0x140143da0]
add r8, rcx
add r8, qword [rdi + rax + 0x20]
add r8, qword [rsp + rdi + 0x70]
add r8, r10
lea r15, [r9 + r8]
mov rdx, r14
mov rax, r14
ror rax, 0x22
mov rsi, r11
xor rsi, rbx
ror rdx, 0x27
xor rdx, rax
and rsi, r14
mov rax, r14
add rdi, 0x28
ror rax, 0x1c
xor rdx, rax
mov rax, r11
and rax, rbx
xor rsi, rax
lea rax, [r8 + rdx]
add rsi, rax
cmp rdi, 0x280
jl 0x140040ba0
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x328]
add rax, rsi
mov qword [rsp], rbp
mov rbp, qword [rsp + 0x320]
mov qword [rbp + 0x108], rax
mov rax, qword [rsp + 0x30]
add rax, r14
mov qword [rbp + 0x110], rax
mov rax, qword [rsp + 0x28]
add rax, r11
mov qword [rbp + 0x118], rax
mov rax, qword [rsp + 0x20]
add rax, rbx
mov qword [rbp + 0x120], rax
mov rax, qword [rsp + 0x18]
add rax, r15
mov qword [rbp + 0x128], rax
mov rax, qword [rsp + 0x10]
add rax, r12
mov qword [rbp + 0x130], rax
mov rax, qword [rsp + 8]
add rax, r13
mov qword [rbp + 0x138], rax
mov rax, qword [rsp]
add rax, qword [rsp + 0x40]
mov qword [rbp + 0x140], rax
mov eax, dword [rsp + 0x338]
inc eax
mov dword [rsp + 0x338], eax
cmp eax, dword [rsp + 0x330]
jl 0x1400404d0
mov r15, qword [rsp + 0x2d8]
mov r14, qword [rsp + 0x2e0]
mov r13, qword [rsp + 0x2e8]
mov r12, qword [rsp + 0x2f0]
mov rdi, qword [rsp + 0x2f8]
mov rsi, qword [rsp + 0x300]
mov rbx, qword [rsp + 0x308]
add rsp, 0x310
pop rbp
ret