Function at 0x140016de9
Capabilities:
Encode data using xor

Disassembly:
test r8d, r8d
jle 0x14001757a
mov r11, rsp
push rbp
push rdi
sub rsp, 0x318
mov rax, qword [0x14005bed0]
xor rax, rsp
mov qword [rsp + 0x2f0], rax
mov rax, qword [rcx + 0x128]
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], r12
mov r12, qword [rcx + 0x108]
mov qword [r11 - 0x18], r13
mov r13, qword [rcx + 0x110]
mov rdi, rcx
mov qword [r11 - 0x20], r14
mov r14, qword [rcx + 0x118]
mov qword [rsp + 0x50], rcx
mov qword [r11 - 0x28], r15
mov r15, qword [rcx + 0x120]
mov rcx, qword [rcx + 0x130]
mov qword [rsp + 0x48], rax
mov rax, qword [rdi + 0x138]
mov qword [rsp + 0x10], rcx
mov rcx, qword [rdi + 0x140]
xor ebp, ebp
mov qword [rsp + 0x18], rcx
mov dword [rsp + 4], r8d
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x20], r13
mov dword [rsp], ebp
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x30], rax
nop word [rax + rax]
mov eax, ebp
lea r10, [rsp + 0x78]
shl eax, 7
movsxd r9, eax
add r9, rdx
xor r11d, r11d
lea r8, [r9 + 0x12]
nop word [rax + rax]
lea eax, [r11*8]
movsxd rcx, eax
movzx eax, byte [rcx + r9 + 1]
movzx edx, byte [rcx + r9]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
movzx ecx, byte [r8 - 0xa]
shl rcx, 8
shl rdx, 8
or rdx, rax
movzx eax, byte [r8 - 9]
or rcx, rax
movzx eax, byte [r8 - 8]
mov qword [r10 - 8], rdx
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 1]
mov qword [r10], rcx
movzx ecx, byte [r8 - 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 7]
mov qword [r10 + 8], rcx
movzx ecx, byte [r8 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 9]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xa]
shl rcx, 8
add r11d, 4
or rcx, rax
movzx eax, byte [r8 + 0xb]
add r10, 0x20
shl rcx, 8
add r8, 0x20
or rcx, rax
movzx eax, byte [r8 - 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 0x13]
shl rcx, 8
or rcx, rax
mov qword [r10 - 0x10], rcx
cmp r11d, 0x10
jl 0x140016ec0
lea rbx, [rsp + 0x70]
mov esi, 0x10
nop word [rax + rax]
mov r9, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x70]
mov rcx, rdx
mov r11, r9
mov rax, r9
ror r11, 8
ror rax, 1
mov r10, r8
xor r11, rax
mov rax, r9
shr rax, 7
xor r11, rax
ror rcx, 0x13
mov rax, rdx
shr rdx, 6
rol rax, 3
xor rcx, rax
mov rax, r8
xor rcx, rdx
mov rdx, qword [rbx + 0x78]
add r11, rcx
mov rcx, rdx
add r11, qword [rbx + 0x48]
add r11, qword [rbx]
ror r10, 8
ror rax, 1
xor r10, rax
mov rax, r8
mov qword [rbx + 0x80], r11
shr rax, 7
xor r10, rax
ror rcx, 0x13
mov rax, rdx
shr rdx, 6
rol rax, 3
xor rcx, rax
xor rcx, rdx
add r10, rcx
mov rcx, r11
add r10, qword [rbx + 0x50]
add r10, r9
mov r9, qword [rbx + 0x18]
mov rdx, r9
mov rax, r9
mov qword [rbx + 0x88], r10
ror rdx, 8
ror rax, 1
xor rdx, rax
mov rax, r9
shr rax, 7
xor rdx, rax
ror rcx, 0x13
mov rax, r11
rol rax, 3
shr r11, 6
xor rcx, rax
xor rcx, r11
add rdx, rcx
mov rcx, qword [rbx + 0x20]
add rdx, qword [rbx + 0x58]
mov rax, rcx
add rdx, r8
mov qword [rbx + 0x90], rdx
mov rdx, rcx
shr rcx, 7
ror rdx, 8
ror rax, 1
xor rdx, rax
mov rax, r10
xor rdx, rcx
mov rcx, r10
shr r10, 6
ror rcx, 0x13
rol rax, 3
xor rcx, rax
xor rcx, r10
add rdx, rcx
add rdx, qword [rbx + 0x60]
add rdx, r9
mov qword [rbx + 0x98], rdx
add rbx, 0x20
dec rsi
jne 0x140017070
mov rax, qword [rdi + 0x108]
mov rsi, qword [rdi + 0x110]
mov rbx, qword [rdi + 0x118]
mov r11, qword [rdi + 0x120]
mov r13, qword [rdi + 0x128]
mov r14, qword [rdi + 0x130]
mov rbp, qword [rdi + 0x138]
mov r15, qword [rdi + 0x140]
xor r12d, r12d
mov rdi, rax
nop dword [rax]
mov r8, r13
mov rax, r13
mov rcx, r13
rol r8, 0x17
ror rax, 0x12
not rcx
xor r8, rax
and rcx, rbp
mov rax, r13
ror rax, 0xe
mov r10, rdi
xor r8, rax
mov rax, r14
and rax, r13
xor rcx, rax
lea rax, [0x14005b890]
add r8, rcx
mov rcx, rsi
add r8, qword [r12 + rax]
xor rcx, rdi
mov rax, rdi
add r8, qword [rsp + r12 + 0x70]
and rcx, rbx
add r8, r15
rol r10, 0x1e
ror rax, 0x1c
xor r10, rax
lea r9, [r11 + r8]
mov rax, rdi
rol rax, 0x19
xor r10, rax
mov rax, rsi
and rax, rdi
xor rcx, rax
mov rax, r9
add r10, rcx
mov rcx, r9
add r10, r8
not rcx
mov r8, r9
rol r8, 0x17
ror rax, 0x12
and rcx, r14
xor r8, rax
mov rax, r9
mov r11, r10
ror rax, 0xe
xor r8, rax
mov rax, r13
and rax, r9
xor rcx, rax
lea rax, [0x14005b890]
add r8, rcx
mov rcx, rdi
add r8, qword [r12 + rax + 8]
xor rcx, r10
mov rax, r10
add r8, qword [rsp + r12 + 0x78]
and rcx, rsi
add r8, rbp
rol r11, 0x1e
ror rax, 0x1c
xor r11, rax
lea r15, [rbx + r8]
mov rax, r10
rol rax, 0x19
xor r11, rax
mov rax, rdi
and rax, r10
xor rcx, rax
mov rax, r15
add r11, rcx
mov rcx, r15
add r11, r8
mov r8, r15
rol r8, 0x17
ror rax, 0x12
xor r8, rax
mov rax, r15
ror rax, 0xe
xor r8, rax
not rcx
mov rax, r9
mov rbx, r11
and rax, r15
and rcx, r13
xor rcx, rax
lea rax, [0x14005b890]
add r8, rcx
mov rcx, r10
add r8, qword [r12 + rax + 0x10]
xor rcx, r11
mov rax, r11
add r8, qword [rsp + r12 + 0x80]
and rcx, rdi
add r8, r14
rol rbx, 0x1e
ror rax, 0x1c
xor rbx, rax
lea rbp, [rsi + r8]
mov rax, r11
rol rax, 0x19
xor rbx, rax
mov rax, r10
and rax, r11
xor rcx, rax
mov rax, rbp
add rbx, rcx
mov rcx, rbp
add rbx, r8
not rcx
mov r8, rbp
rol r8, 0x17
ror rax, 0x12
and rcx, r9
xor r8, rax
mov rax, rbp
mov rsi, rbx
ror rax, 0xe
xor r8, rax
mov rax, r15
and rax, rbp
xor rcx, rax
lea rax, [0x14005b890]
add r8, rcx
mov rcx, r11
add r8, qword [r12 + rax + 0x18]
xor rcx, rbx
mov rax, rbx
add r8, qword [rsp + r12 + 0x88]
and rcx, r10
add r8, r13
rol rsi, 0x1e
ror rax, 0x1c
xor rsi, rax
lea r14, [rdi + r8]
mov rax, rbx
rol rax, 0x19
xor rsi, rax
mov rax, r11
and rax, rbx
xor rcx, rax
mov rax, r14
add rsi, rcx
mov rcx, r14
add rsi, r8
not rcx
mov r8, r14
rol r8, 0x17
ror rax, 0x12
and rcx, r15
xor r8, rax
mov rax, r14
ror rax, 0xe
xor r8, rax
mov rax, rbp
and rax, r14
xor rcx, rax
lea rax, [0x14005b890]
add r8, rcx
add r8, qword [r12 + rax + 0x20]
add r8, qword [rsp + r12 + 0x90]
add r8, r9
mov rdi, rsi
mov rax, rsi
rol rdi, 0x1e
ror rax, 0x1c
mov rcx, rbx
xor rdi, rax
xor rcx, rsi
mov rax, rsi
rol rax, 0x19
and rcx, r11
add r12, 0x28
xor rdi, rax
mov rax, rbx
lea r13, [r10 + r8]
and rax, rsi
xor rcx, rax
add rdi, rcx
add rdi, r8
cmp r12, 0x280
jl 0x1400171e0
mov r12, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x60]
add r12, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 8], r13
add rcx, qword [rsp + 8]
mov r13, qword [rsp + 0x20]
mov qword [rsp + 0x68], r14
mov r14, qword [rsp + 0x38]
mov qword [rdi + 0x128], rcx
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x10]
mov qword [rsp + 0x58], r15
mov r15, qword [rsp + 0x28]
add rcx, qword [rsp + 0x68]
add r13, rsi
add r14, rbx
mov qword [rsp + 0x10], rcx
mov qword [rdi + 0x130], rcx
mov rcx, qword [rsp + 0x30]
add rcx, rbp
mov ebp, dword [rsp]
add r15, r11
mov qword [rsp + 0x30], rcx
mov qword [rdi + 0x138], rcx
mov rcx, qword [rsp + 0x18]
add rcx, qword [rsp + 0x58]
inc ebp
mov qword [rsp + 0x40], r12
mov qword [rdi + 0x108], r12
mov qword [rsp + 0x20], r13
mov qword [rdi + 0x110], r13
mov qword [rsp + 0x18], rcx
mov qword [rdi + 0x140], rcx
mov qword [rsp + 0x38], r14
mov qword [rdi + 0x118], r14
mov qword [rsp + 0x28], r15
mov qword [rdi + 0x120], r15
mov dword [rsp], ebp
cmp ebp, dword [rsp + 4]
jl 0x140016ea0
mov r15, qword [rsp + 0x300]
mov r14, qword [rsp + 0x308]
mov r13, qword [rsp + 0x310]
mov r12, qword [rsp + 0x348]
mov rsi, qword [rsp + 0x340]
mov rbx, qword [rsp + 0x338]
mov rcx, qword [rsp + 0x2f0]
xor rcx, rsp
call fcn.14001d550
add rsp, 0x318
pop rdi
pop rbp
repz ret