Function at 0x180016230
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov rax, rcx
mov ecx, dword [rcx + 8]
mov dword [rsp + 0x10], ecx
mov dword [rsp + 0x188], ecx
mov ecx, dword [rax + 0xc]
mov dword [rsp + 0x14], ecx
mov dword [rsp + 0x180], ecx
mov ecx, dword [rax + 0x10]
mov dword [rsp + 0x18], ecx
mov dword [rsp + 0xc], ecx
mov ecx, dword [rax + 0x14]
mov r15d, ecx
mov dword [rsp + 0x1c], ecx
mov ecx, dword [rax + 0x18]
mov r13d, ecx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rax + 0x1c]
mov dword [rsp + 0x24], ecx
mov dword [rsp], ecx
mov ecx, dword [rax + 0x20]
mov eax, dword [rax + 0x24]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 4], ecx
movzx ecx, byte [rdx]
shl ecx, 8
mov dword [rsp + 0x2c], eax
mov dword [rsp + 8], eax
movzx eax, byte [rdx + 1]
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 5]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rdx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
mov dword [rsp + 0x34], ecx
movzx ecx, byte [rdx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xd]
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rdx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x11]
mov dword [rsp + 0x3c], ecx
movzx ecx, byte [rdx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x40], ecx
movzx ecx, byte [rdx + 0x14]
shl ecx, 8
movzx eax, byte [rdx + 0x15]
or ecx, eax
movzx eax, byte [rdx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x19]
mov dword [rsp + 0x44], ecx
movzx ecx, byte [rdx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1d]
mov dword [rsp + 0x48], ecx
movzx ecx, byte [rdx + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x21]
mov dword [rsp + 0x4c], ecx
movzx ecx, byte [rdx + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x25]
mov dword [rsp + 0x50], ecx
movzx ecx, byte [rdx + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x29]
mov dword [rsp + 0x54], ecx
movzx ecx, byte [rdx + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2d]
mov dword [rsp + 0x58], ecx
movzx ecx, byte [rdx + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x31]
mov dword [rsp + 0x5c], ecx
movzx ecx, byte [rdx + 0x30]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdx + 0x32]
mov ebp, 6
movzx r12d, byte [rdx + 0x38]
or ecx, eax
movzx eax, byte [rdx + 0x33]
shl ecx, 8
or ecx, eax
shl r12d, 8
movzx eax, byte [rdx + 0x35]
mov dword [rsp + 0x60], ecx
movzx ecx, byte [rdx + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x36]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x39]
or r12d, eax
mov dword [rsp + 0x64], ecx
movzx eax, byte [rdx + 0x3a]
movzx ecx, byte [rdx + 0x3c]
shl ecx, 8
shl r12d, 8
or r12d, eax
movzx eax, byte [rdx + 0x3b]
shl r12d, 8
or r12d, eax
movzx eax, byte [rdx + 0x3d]
or ecx, eax
mov dword [rsp + 0x68], r12d
movzx eax, byte [rdx + 0x3e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3f]
shl ecx, 8
or ecx, eax
lea rax, [rsp + 0x68]
mov dword [rsp + 0x6c], ecx
nop dword [rax + rax]
mov r9d, dword [rax - 0x34]
mov edx, r12d
mov r10d, dword [rax - 0x30]
mov r14d, r9d
mov esi, dword [rax + 4]
mov ecx, r9d
mov r11d, dword [rax - 0x2c]
mov r8d, esi
mov ebx, dword [rax - 0x28]
ror ecx, 7
ror edx, 0x13
ror r8d, 0x13
ror r14d, 0x12
xor r14d, ecx
mov ecx, r9d
shr ecx, 3
xor r14d, ecx
mov ecx, r12d
ror ecx, 0x11
xor edx, ecx
mov ecx, r12d
shr ecx, 0xa
xor edx, ecx
mov ecx, esi
ror ecx, 0x11
add r14d, edx
add r14d, dword [rax - 0x38]
xor r8d, ecx
add r14d, dword [rax - 0x14]
mov edx, r10d
ror edx, 0x12
mov ecx, esi
shr ecx, 0xa
xor r8d, ecx
mov dword [rax + 8], r14d
mov ecx, r10d
ror ecx, 7
xor edx, ecx
mov ecx, r10d
shr ecx, 3
xor edx, ecx
mov ecx, r11d
add r8d, edx
ror ecx, 7
add r8d, dword [rax - 0x10]
mov edx, r14d
add r9d, r8d
ror edx, 0x13
mov dword [rax + 0xc], r9d
mov r8d, r11d
ror r8d, 0x12
xor r8d, ecx
mov ecx, r11d
shr ecx, 3
xor r8d, ecx
mov ecx, r14d
ror ecx, 0x11
xor edx, ecx
mov ecx, r14d
shr ecx, 0xa
xor edx, ecx
mov ecx, r9d
add r8d, edx
ror ecx, 0x11
add r8d, dword [rax - 0xc]
mov edx, ebx
add r10d, r8d
ror edx, 0x12
mov r8d, r9d
mov dword [rax + 0x10], r10d
ror r8d, 0x13
xor r8d, ecx
shr r9d, 0xa
mov ecx, ebx
xor r9d, r8d
ror ecx, 7
xor edx, ecx
mov ecx, ebx
shr ecx, 3
xor edx, ecx
add r9d, edx
add r9d, dword [rax - 8]
mov r8d, r10d
mov edi, dword [rax - 0x1c]
add r9d, r11d
mov r11d, dword [rax - 0x24]
mov ecx, r10d
ror ecx, 0x11
mov edx, r11d
ror r8d, 0x13
xor r8d, ecx
ror edx, 0x12
mov ecx, r11d
shr r10d, 0xa
ror ecx, 7
xor r8d, r10d
mov r10d, dword [rax - 0x20]
xor edx, ecx
mov ecx, r11d
mov dword [rax + 0x14], r9d
shr ecx, 3
xor edx, ecx
mov ecx, r9d
add r8d, edx
ror ecx, 0x11
add r8d, dword [rax - 4]
mov edx, r10d
add ebx, r8d
ror edx, 0x12
mov r8d, r9d
mov dword [rax + 0x18], ebx
ror r8d, 0x13
xor r8d, ecx
shr r9d, 0xa
xor r8d, r9d
mov ecx, r10d
mov r9d, dword [rax - 0x18]
add r11d, r8d
ror ecx, 7
mov r8d, edi
xor edx, ecx
ror r8d, 0x12
mov ecx, r10d
shr ecx, 3
xor edx, ecx
mov ecx, edi
ror ecx, 7
add r11d, edx
xor r8d, ecx
add r11d, r12d
mov r12d, ebx
mov dword [rax + 0x1c], r11d
ror r12d, 0x13
mov edx, r9d
ror edx, 0x12
mov ecx, edi
shr ecx, 3
xor r8d, ecx
mov ecx, ebx
ror ecx, 0x11
xor r12d, ecx
shr ebx, 0xa
xor r12d, ebx
lea ecx, [r10 + r8]
mov r8d, r11d
add r12d, ecx
ror r8d, 0x13
mov ecx, r11d
add r12d, esi
ror ecx, 0x11
xor r8d, ecx
shr r11d, 0xa
mov ecx, r9d
mov dword [rax + 0x20], r12d
ror ecx, 7
xor r8d, r11d
xor edx, ecx
shr r9d, 3
xor edx, r9d
lea ecx, [r14 + r8]
add edx, ecx
add edx, edi
mov dword [rax + 0x24], edx
lea rax, [rax + 0x20]
sub rbp, 1
jne 0x1800164f0
mov r12d, dword [rsp + 0x180]
lea r14, [0x1801aa110]
mov ebp, dword [rsp + 0x188]
xor r11d, r11d
mov ebx, dword [rsp]
mov edi, dword [rsp + 4]
mov esi, dword [rsp + 8]
mov r8d, dword [rsp + 0xc]
nop dword [rax + rax]
mov edx, r13d
mov eax, r13d
ror eax, 0xb
mov ecx, ebp
ror edx, 0x19
mov r9d, ebp
xor edx, eax
ror ecx, 0x16
mov eax, r13d
ror eax, 6
xor edx, eax
mov eax, ebx
xor eax, edi
and eax, r13d
xor eax, edi
add edx, eax
mov eax, ebp
add edx, dword [r11 + r14]
add edx, dword [rsp + r11 + 0x30]
ror eax, 0xd
add edx, esi
xor ecx, eax
mov eax, ebp
ror eax, 2
xor ecx, eax
mov eax, r12d
and eax, ebp
lea esi, [r15 + rdx]
mov r15d, r12d
or r15d, ebp
and r15d, r8d
or r15d, eax
lea eax, [rdx + rcx]
add r15d, eax
mov edx, esi
ror edx, 0x19
mov eax, esi
ror eax, 0xb
mov ecx, r15d
xor edx, eax
ror ecx, 0x16
mov eax, esi
mov r10d, r15d
ror eax, 6
or r10d, ebp
xor edx, eax
and r10d, r12d
mov eax, ebx
xor eax, r13d
and eax, esi
xor eax, ebx
add edx, eax
mov eax, r15d
add edx, dword [r11 + r14 + 4]
add edx, dword [rsp + r11 + 0x34]
ror eax, 0xd
add edx, edi
xor ecx, eax
mov eax, r15d
ror eax, 2
xor ecx, eax
mov eax, r15d
and eax, ebp
lea edi, [r8 + rdx]
or r10d, eax
mov r8d, edi
ror r8d, 0x19
lea eax, [rdx + rcx]
add r10d, eax
mov eax, edi
ror eax, 0xb
xor r8d, eax
mov eax, edi
ror eax, 6
xor r8d, eax
mov eax, esi
xor eax, r13d
and eax, edi
xor eax, r13d
add r8d, eax
add r8d, dword [r11 + r14 + 8]
add r8d, dword [rsp + r11 + 0x38]
mov edx, r10d
add r8d, ebx
ror edx, 0x16
mov eax, r10d
ror eax, 0xd
xor edx, eax
mov eax, r10d
ror eax, 2
lea ebx, [r12 + r8]
xor edx, eax
mov r12d, r10d
or r12d, r15d
mov eax, r10d
and eax, r15d
and r12d, ebp
or r12d, eax
lea eax, [r8 + rdx]
mov r8d, ebx
add r12d, eax
ror r8d, 0x19
mov eax, ebx
mov edx, r12d
ror eax, 0xb
mov ebp, r12d
xor r8d, eax
ror edx, 0x16
or ebp, r10d
mov eax, ebx
ror eax, 6
and ebp, r15d
xor r8d, eax
mov eax, edi
xor eax, esi
and eax, ebx
xor eax, esi
add r8d, eax
mov eax, r12d
add r8d, dword [r11 + r14 + 0xc]
add r8d, dword [rsp + r11 + 0x3c]
add r11, 0x10
ror eax, 0xd
add r8d, r13d
xor edx, eax
mov eax, r12d
ror eax, 2
xor edx, eax
mov eax, r12d
and eax, r10d
lea r13d, [r9 + r8]
or ebp, eax
lea eax, [r8 + rdx]
mov r8d, r10d
add ebp, eax
cmp r11, 0x100
jl 0x180016720
mov rcx, qword [rsp + 0x170]
mov eax, dword [rsp + 0x10]
add eax, ebp
mov dword [rcx + 8], eax
mov eax, dword [rsp + 0x14]
add eax, r12d
mov dword [rcx + 0xc], eax
mov eax, dword [rsp + 0x18]
add eax, r10d
mov dword [rcx + 0x10], eax
mov eax, dword [rsp + 0x1c]
add eax, r15d
mov dword [rcx + 0x14], eax
mov eax, dword [rsp + 0x20]
add eax, r13d
mov dword [rcx + 0x18], eax
mov eax, dword [rsp + 0x24]
add eax, ebx
mov rbx, qword [rsp + 0x178]
mov dword [rcx + 0x1c], eax
mov eax, dword [rsp + 0x28]
add eax, edi
mov dword [rcx + 0x20], eax
mov eax, dword [rsp + 0x2c]
add eax, esi
mov dword [rcx + 0x24], eax
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret