Function at 0x180016300
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x180062020]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea rbp, [0x18005a434]
xor edi, edi
mov r11d, 8
mov r12d, 0xc
mov r10d, r11d
mov esi, r12d
mov r14d, 0x10
sub r10, rbp
sub rsi, rbp
sub r14, rbp
mov r15d, 0x14
mov rbx, rcx
sub r15, rbp
mov r9d, edi
nop
mov rcx, qword [rbx + 0x10]
lea r8, [r9 + rbp]
mov eax, dword [r8 - 4]
lea rdx, [r10 + r8]
mov dword [r9 + rcx], eax
mov rcx, qword [rbx + 0x10]
mov eax, dword [r8]
mov dword [r9 + rcx + 4], eax
add r9, 0x18
mov rcx, qword [rbx + 0x10]
mov eax, dword [r8 + 4]
mov dword [rdx + rcx], eax
lea rdx, [rsi + r8]
mov rcx, qword [rbx + 0x10]
mov eax, dword [r8 + 8]
mov dword [rdx + rcx], eax
lea rdx, [r14 + r8]
mov rcx, qword [rbx + 0x10]
mov eax, dword [r8 + 0xc]
mov dword [rdx + rcx], eax
lea rdx, [r15 + r8]
mov rcx, qword [rbx + 0x10]
mov eax, dword [r8 + 0x10]
mov dword [rdx + rcx], eax
cmp r9, 0x48
jl 0x180016360
lea rbp, [0x180059434]
mov rsi, r12
sub r11, rbp
mov r9, rdi
sub rsi, rbp
nop word [rax + rax]
mov r10d, 0x40
nop word [rax + rax]
mov rcx, qword [rbx + 8]
lea r8, [r9 + rbp]
mov eax, dword [r8 - 4]
lea rdx, [r11 + r8]
mov dword [r9 + rcx], eax
mov rcx, qword [rbx + 8]
mov eax, dword [r8]
mov dword [r9 + rcx + 4], eax
add r9, 0x10
mov rcx, qword [rbx + 8]
mov eax, dword [r8 + 4]
mov dword [rdx + rcx], eax
lea rdx, [rsi + r8]
mov rcx, qword [rbx + 8]
mov eax, dword [r8 + 8]
mov dword [rdx + rcx], eax
sub r10, 1
jne 0x1800163f0
cmp r9, 0x1000
jl 0x1800163e0
mov r10d, edi
lea r11, [0x180062c70]
nop word [rax + rax]
mov r9, qword [rbx + 0x10]
lea ecx, [r10 + 1]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
shl r8d, 8
add r10d, 4
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12 - 0xc], r8d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
shl r8d, 8
add r10d, 4
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12 - 8], r8d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
add r10d, 4
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
xor dword [r9 + r12 - 4], r8d
imul r10d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
add r10d, 4
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12], r8d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
shl r8d, 8
add r10d, 4
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12 + 4], r8d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
or r8d, ecx
add r10d, 4
xor dword [r9 + r12 + 8], r8d
mov eax, 0x92492493
imul r10d
mov r9, qword [rbx + 0x10]
add edx, r10d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
add r10d, 4
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12 + 0xc], r8d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
shl r8d, 8
add r10d, 4
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12 + 0x10], r8d
add edx, r10d
mov r9, qword [rbx + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
mov eax, 0x92492493
lea ecx, [r10 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r11]
movsxd rax, r10d
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
or r8d, ecx
lea ecx, [r10 + 3]
imul ecx
shl r8d, 8
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add r10d, 4
add edx, eax
imul eax, edx, 0x38
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r11]
mov eax, 0x92492493
imul r10d
or r8d, ecx
xor dword [r9 + r12 + 0x14], r8d
add edx, r10d
sar edx, 5
add r12, 0x24
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x38
sub r10d, eax
cmp r12, 0x54
jl 0x180016450
mov dword [rsp + 0x20], edi
mov rsi, rdi
mov dword [rsp + 0x24], edi
nop dword [rax + rax]
lea r8, [rsp + 0x24]
mov rcx, rbx
lea rdx, [rsp + 0x20]
call fcn.180015ec0
mov rcx, qword [rbx + 0x10]
mov eax, dword [rsp + 0x20]
mov dword [rsi + rcx], eax
mov rcx, qword [rbx + 0x10]
mov eax, dword [rsp + 0x24]
mov dword [rcx + rsi + 4], eax
add rsi, 8
cmp rsi, 0x48
jl 0x180016aa0
mov esi, 0x80
nop dword [rax + rax]
lea r8, [rsp + 0x24]
mov rcx, rbx
lea rdx, [rsp + 0x20]
call fcn.180015ec0
mov rcx, qword [rbx + 8]
mov eax, dword [rsp + 0x20]
mov dword [rdi + rcx], eax
mov rcx, qword [rbx + 8]
mov eax, dword [rsp + 0x24]
mov dword [rcx + rdi + 4], eax
add rdi, 8
sub rsi, 1
jne 0x180016ae0
cmp rdi, 0x1000
jl 0x180016ad3
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.180018470
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret