Function at 0x16d9c
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rbp
push rbx
sub rsp, 0x170
mov rbx, rdx
xor ebp, ebp
xor eax, eax
mov esi, dword [rcx + rbp*4]
mov r8d, esi
ror r8d, 0x18
and r8d, 0xff00ff
ror esi, 8
and esi, 0xff00ff00
or r8d, esi
mov dword [rsp + rax + 0x28], r8d
add rax, 4
add rbp, 1
cmp rbp, 0x10
jl 0x16db5
cmp rbp, 0x50
jge 0x16e0d
mov ecx, dword [rsp + rax + 0x1c]
xor ecx, dword [rsp + rax + 8]
xor ecx, dword [rsp + rax - 0x10]
xor ecx, dword [rsp + rax - 0x18]
rol ecx, 1
mov dword [rsp + rax + 0x28], ecx
add rax, 4
cmp rax, 0x140
jl 0x16deb
mov eax, dword [0x000248c0]
mov r14d, dword [rbx]
mov ecx, dword [rbx + 4]
mov r11d, dword [rbx + 8]
mov r9d, dword [rbx + 0x10]
mov r8d, r14d
rol r8d, 5
add r8d, dword [rsp + 0x28]
mov esi, ecx
and esi, r11d
mov ebp, ecx
not ebp
and ebp, dword [rbx + 0xc]
or esi, ebp
add r8d, esi
add r9d, eax
add r8d, r9d
rol ecx, 0x1e
mov esi, r8d
rol esi, 5
mov r9d, r14d
and r9d, ecx
add esi, dword [rsp + 0x2c]
add esi, dword [rbx + 0xc]
mov ebp, r14d
not ebp
and ebp, r11d
or r9d, ebp
add r9d, eax
add esi, r9d
mov ebp, r14d
rol ebp, 0x1e
mov r10d, esi
rol r10d, 5
add r10d, dword [rsp + 0x30]
add r10d, r11d
mov r11d, r8d
and r11d, ebp
mov r9d, r8d
not r9d
and r9d, ecx
or r11d, r9d
add r11d, eax
add r10d, r11d
rol r8d, 0x1e
mov r9d, r10d
rol r9d, 5
add r9d, dword [rsp + 0x34]
add r9d, eax
mov r12d, esi
and r12d, r8d
mov r11d, esi
not r11d
and r11d, ebp
or r12d, r11d
add ecx, r12d
add r9d, ecx
rol esi, 0x1e
mov ecx, r9d
rol ecx, 5
add ecx, dword [rsp + 0x38]
add ecx, eax
mov r12d, r10d
and r12d, esi
mov r11d, r10d
not r11d
and r11d, r8d
or r12d, r11d
add ebp, r12d
add ecx, ebp
rol r10d, 0x1e
mov r15d, ecx
rol r15d, 5
mov r11d, r9d
and r11d, r10d
add r15d, dword [rsp + 0x3c]
mov ebp, r9d
not ebp
and ebp, esi
or r11d, ebp
add r15d, r11d
add r8d, eax
add r15d, r8d
rol r9d, 0x1e
mov r8d, r15d
rol r8d, 5
add r8d, dword [rsp + 0x40]
add r8d, esi
mov esi, ecx
and esi, r9d
mov ebp, ecx
not ebp
and ebp, r10d
or esi, ebp
add esi, eax
add r8d, esi
rol ecx, 0x1e
mov esi, r8d
rol esi, 5
add esi, dword [rsp + 0x44]
add esi, r10d
mov r10d, r15d
and r10d, ecx
mov ebp, r15d
not ebp
and ebp, r9d
or r10d, ebp
add r10d, eax
add esi, r10d
rol r15d, 0x1e
mov ebp, esi
rol ebp, 5
mov r11d, r8d
and r11d, r15d
add ebp, dword [rsp + 0x48]
add ebp, eax
mov r10d, r8d
not r10d
and r10d, ecx
or r11d, r10d
add r9d, r11d
add ebp, r9d
rol r8d, 0x1e
mov r13d, ebp
rol r13d, 5
add r13d, dword [rsp + 0x4c]
add r13d, eax
mov r10d, esi
and r10d, r8d
mov r9d, esi
not r9d
and r9d, r15d
or r10d, r9d
add ecx, r10d
add r13d, ecx
rol esi, 0x1e
mov r11d, r13d
rol r11d, 5
add r11d, dword [rsp + 0x50]
mov r9d, ebp
and r9d, esi
mov ecx, ebp
not ecx
and ecx, r8d
or r9d, ecx
add r11d, r9d
add r15d, eax
add r11d, r15d
rol ebp, 0x1e
mov r9d, r11d
rol r9d, 5
mov ecx, r13d
not ecx
add r9d, dword [rsp + 0x54]
add r9d, r8d
mov r8d, r13d
and r8d, ebp
and ecx, esi
or r8d, ecx
add r8d, eax
add r9d, r8d
mov r8d, dword [0x000248c4]
rol r13d, 0x1e
mov r12d, r9d
rol r12d, 5
add r12d, dword [rsp + 0x58]
add r12d, esi
mov esi, r11d
and esi, r13d
mov ecx, r11d
not ecx
and ecx, ebp
or esi, ecx
add esi, eax
add r12d, esi
rol r11d, 0x1e
mov r10d, r12d
rol r10d, 5
add r10d, dword [rsp + 0x5c]
add r10d, eax
mov esi, r9d
and esi, r11d
mov ecx, r9d
not ecx
and ecx, r13d
or esi, ecx
add ebp, esi
add r10d, ebp
rol r9d, 0x1e
mov ecx, r10d
rol ecx, 5
add ecx, dword [rsp + 0x60]
add ecx, eax
mov esi, r12d
and esi, r9d
mov ebp, r12d
not ebp
and ebp, r11d
or esi, ebp
add r13d, esi
add ecx, r13d
rol r12d, 0x1e
mov r13d, ecx
rol r13d, 5
add r13d, dword [rsp + 0x64]
mov esi, r10d
and esi, r12d
mov ebp, r10d
not ebp
and ebp, r9d
or esi, ebp
add r13d, esi
add r11d, eax
add r13d, r11d
rol r10d, 0x1e
mov r11d, r13d
rol r11d, 5
mov esi, ecx
and esi, r10d
add r11d, dword [rsp + 0x68]
add r11d, r9d
mov ebp, ecx
not ebp
and ebp, r12d
or esi, ebp
add esi, eax
add r11d, esi
rol ecx, 0x1e
mov r9d, r11d
rol r9d, 5
add r9d, dword [rsp + 0x6c]
add r9d, r12d
mov esi, r13d
and esi, ecx
mov ebp, r13d
not ebp
and ebp, r10d
or esi, ebp
add esi, eax
add r9d, esi
rol r13d, 0x1e
mov r12d, r9d
rol r12d, 5
add r12d, dword [rsp + 0x70]
add r12d, eax
mov esi, r11d
and esi, r13d
mov ebp, r11d
not ebp
and ebp, ecx
or esi, ebp
add r10d, esi
add r12d, r10d
rol r11d, 0x1e
mov r10d, r12d
rol r10d, 5
mov ebp, r9d
and ebp, r11d
add r10d, dword [rsp + 0x74]
add r10d, eax
mov eax, r9d
not eax
and eax, r13d
or ebp, eax
add ecx, ebp
add r10d, ecx
rol r9d, 0x1e
mov eax, 0x14
mov esi, 0x50
add r13d, dword [rsp + rsi + 0x28]
mov r15d, r10d
rol r15d, 5
add r15d, r8d
mov ecx, r12d
xor ecx, r9d
xor ecx, r11d
add r15d, ecx
add r15d, r13d
rol r12d, 0x1e
mov ebp, r15d
rol ebp, 5
add ebp, r8d
add ebp, r11d
mov r13d, r10d
xor r13d, r12d
xor r13d, r9d
add r13d, dword [rsp + rsi + 0x2c]
add ebp, r13d
rol r10d, 0x1e
mov ecx, ebp
rol ecx, 5
add ecx, r8d
add ecx, r9d
mov r11d, r15d
xor r11d, r10d
xor r11d, r12d
mov r13d, r15d
add r11d, dword [rsp + rsi + 0x30]
add ecx, r11d
rol r13d, 0x1e
mov r9d, ecx
rol r9d, 5
add r9d, r8d
add r9d, r12d
mov r12d, ebp
xor r12d, r13d
xor r12d, r10d
mov r11d, ebp
add r12d, dword [rsp + rsi + 0x34]
add r12d, r9d
rol r11d, 0x1e
mov ebp, r12d
rol ebp, 5
add ebp, r8d
add ebp, r10d
mov r10d, ecx
xor r10d, r11d
xor r10d, r13d
mov r9d, ecx
add r10d, dword [rsp + rsi + 0x38]
add r10d, ebp
rol r9d, 0x1e
add rax, 5
add rsi, 0x14
cmp rax, 0x28
jl 0x17150
mov r15d, eax
movsxd r8, eax
xor esi, esi
cmp r15d, 0x3c
jge 0x1734b
mov ebp, dword [0x000248c8]
mov eax, 0x66666667
mov rcx, r8
shl rcx, 2
neg r15d
mov qword [rsp + 0x20], rdi
add r15d, 0x40
imul r15d
sar r15d, 0x1f
sar edx, 1
sub edx, r15d
movsxd rax, edx
add r13d, dword [rsp + rcx + 0x28]
mov edx, r10d
rol edx, 5
add edx, ebp
mov r15d, r9d
or r15d, r11d
and r15d, r12d
mov edi, r9d
and edi, r11d
or r15d, edi
add edx, r15d
add edx, r13d
rol r12d, 0x1e
mov r15d, edx
rol r15d, 5
add r15d, ebp
add r15d, r11d
mov r11d, r9d
or r11d, r12d
and r11d, r10d
mov r13d, r9d
and r13d, r12d
or r11d, r13d
add r11d, dword [rsp + rcx + 0x2c]
add r15d, r11d
rol r10d, 0x1e
mov edi, r15d
rol edi, 5
add edi, ebp
add edi, r9d
mov r11d, r12d
or r11d, r10d
and r11d, edx
mov r9d, r12d
and r9d, r10d
or r11d, r9d
add r11d, dword [rsp + rcx + 0x30]
add edi, r11d
mov r13d, edx
rol r13d, 0x1e
mov r11d, edi
rol r11d, 5
add r11d, ebp
add r11d, r12d
mov r12d, r10d
or r12d, r13d
and r12d, r15d
mov r9d, r10d
and r9d, r13d
or r12d, r9d
mov r9d, r13d
add r12d, dword [rsp + rcx + 0x34]
add r12d, r11d
mov r11d, r15d
rol r11d, 0x1e
mov r15d, r12d
rol r15d, 5
add r15d, ebp
add r15d, r10d
mov r10d, r13d
or r10d, r11d
and r10d, edi
and r9d, r11d
or r10d, r9d
add r10d, dword [rsp + rcx + 0x38]
add r10d, r15d
mov r9d, edi
rol r9d, 0x1e
add rsi, 1
add rcx, 0x14
cmp rsi, rax
jl 0x17250
mov rdi, qword [rsp + 0x20]
lea eax, [rsi + rsi*4]
add r8d, eax
movsxd rax, r8d
mov r8, rax
shl r8, 2
cmp rax, 0x50
jge 0x1741c
mov ebp, dword [0x000248cc]
add r13d, dword [rsp + r8 + 0x28]
mov esi, r10d
rol esi, 5
add esi, ebp
mov r15d, r12d
xor r15d, r9d
xor r15d, r11d
add esi, r15d
add esi, r13d
rol r12d, 0x1e
mov ecx, esi
rol ecx, 5
add ecx, ebp
add ecx, r11d
mov r13d, r10d
xor r13d, r12d
xor r13d, r9d
add r13d, dword [rsp + r8 + 0x2c]
add ecx, r13d
rol r10d, 0x1e
mov eax, ecx
rol eax, 5
add eax, ebp
add eax, r9d
mov r11d, esi
xor r11d, r10d
xor r11d, r12d
mov r13d, esi
add r11d, dword [rsp + r8 + 0x30]
add eax, r11d
rol r13d, 0x1e
mov r9d, eax
rol r9d, 5
add r9d, ebp
add r9d, r12d
mov r12d, ecx
xor r12d, r13d
xor r12d, r10d
mov r11d, ecx
add r12d, dword [rsp + r8 + 0x34]
add r12d, r9d
rol r11d, 0x1e
mov ecx, r12d
rol ecx, 5
add ecx, ebp
add ecx, r10d
mov r10d, eax
xor r10d, r11d
xor r10d, r13d
mov r9d, eax
add r10d, dword [rsp + r8 + 0x38]
add r10d, ecx
rol r9d, 0x1e
add r8, 0x14
cmp r8, 0x140
jl 0x17362
add dword [rbx + 4], r12d
add r14d, r10d
mov dword [rbx], r14d
add dword [rbx + 8], r9d
add dword [rbx + 0xc], r11d
add dword [rbx + 0x10], r13d
add rsp, 0x170
pop rbx
pop rbp
pop rsi
pop r12
pop r13
pop r14
pop r15
ret