Function at 0x180001010
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
push r15
mov eax, dword [rcx + 8]
mov r10, rdx
mov r13d, dword [section..data]
mov r9, rdx
cdq
xor r15d, r15d
idiv dword [rcx]
xor r8d, r8d
mov rsi, rcx
cmp dword [rcx], 2
lea r14d, [r15 + 4]
movsxd rbp, eax
mov r11d, ebp
jne 0x1800010a5
mov r9, qword [rcx + 0x28]
xor edi, edi
mov ecx, dword [rcx + 0xc]
add ecx, ecx
test ecx, ecx
jle 0x180001373
mov rbx, r9
nop dword [rax]
movsx eax, word [r10]
lea rbx, [rbx + 2]
movsx ecx, word [r10 + 2]
lea r10, [r10 + 4]
add ecx, eax
add edi, 2
sar ecx, 1
mov word [rbx - 2], cx
movsx eax, cx
cdq
xor eax, edx
sub eax, edx
add r8d, eax
mov eax, dword [rsi + 0xc]
add eax, eax
cmp edi, eax
jl 0x180001070
jmp 0x1800011b6
movsxd rdx, dword [rcx + 0xc]
xor ebx, ebx
test edx, edx
jle 0x180001170
cmp edx, 8
jb 0x180001170
cmp r13d, 2
jl 0x180001170
mov ecx, edx
xorps xmm5, xmm5
xorps xmm4, xmm4
mov r8, rdx
and ecx, 0x80000007
jge 0x1800010e0
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, edx
xor edi, edi
sub eax, ecx
lea rcx, [r10 + rdx*2]
movsxd r12, eax
mov rax, r14
sub rax, r8
neg r8
add rax, rax
add r8, r8
nop dword [rax]
pmovsxwd xmm1, qword [r8 + rcx]
pabsd xmm3, xmm1
add ebx, 8
add rdi, 8
pmovsxwd xmm1, qword [rcx]
lea rcx, [rcx + 0x10]
pabsd xmm2, xmm1
paddd xmm3, xmm2
paddd xmm5, xmm3
pmovsxwd xmm1, qword [rax + rcx - 0x10]
pabsd xmm3, xmm1
pmovsxwd xmm1, qword [rcx - 8]
pabsd xmm2, xmm1
paddd xmm3, xmm2
paddd xmm4, xmm3
cmp rdi, r12
jl 0x180001100
paddd xmm4, xmm5
movdqa xmm0, xmm4
psrldq xmm0, 8
paddd xmm4, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 4
paddd xmm4, xmm0
movd r8d, xmm4
movsxd rcx, ebx
mov rbx, rdx
cmp rcx, rdx
jge 0x1800011b6
movsxd rax, dword [rsi + 0xc]
lea r10, [r10 + rcx*2]
sub rbx, rcx
lea rdi, [rax + rax]
nop word [rax + rax]
movsx eax, word [r10 + rdi]
lea r10, [r10 + 2]
cdq
mov ecx, eax
movsx eax, word [r10 - 2]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
add r8d, eax
add r8d, ecx
sub rbx, 1
jne 0x180001190
test r8d, r8d
je 0x180001373
xor edx, edx
mov eax, 0xfffffffe
div r8d
xor edx, edx
xor ebx, ebx
mov r12d, eax
test ebp, ebp
jle 0x18000128f
cmp ebp, 8
jb 0x18000128f
cmp r13d, 2
jl 0x18000128f
mov ecx, ebp
xorps xmm5, xmm5
xorps xmm4, xmm4
and ecx, 0x80000007
jge 0x180001202
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, ebp
xor r8d, r8d
sub eax, ecx
sub r14, rbp
movsxd r10, eax
lea rcx, [r9 + rbp*2]
mov rax, rbp
neg rax
add rax, rax
nop dword [rax]
pmovsxwd xmm1, qword [rax + rcx]
pabsd xmm3, xmm1
add edx, 8
add r8, 8
pmovsxwd xmm1, qword [rcx]
lea rcx, [rcx + 0x10]
pabsd xmm2, xmm1
paddd xmm3, xmm2
paddd xmm5, xmm3
pmovsxwd xmm1, qword [rcx + r14*2 - 0x10]
pabsd xmm3, xmm1
pmovsxwd xmm1, qword [rcx - 8]
pabsd xmm2, xmm1
paddd xmm3, xmm2
paddd xmm4, xmm3
cmp r8, r10
jl 0x180001220
paddd xmm4, xmm5
movdqa xmm0, xmm4
psrldq xmm0, 8
paddd xmm4, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 4
paddd xmm4, xmm0
movd ebx, xmm4
movsxd rax, edx
cmp rax, rbp
jge 0x1800012c5
mov r10, rbp
lea r8, [r9 + rax*2]
sub r10, rax
movsx eax, word [r8 + rbp*2]
lea r8, [r8 + 2]
cdq
mov ecx, eax
movsx eax, word [r8 - 2]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
add ebx, eax
add ebx, ecx
sub r10, 1
jne 0x1800012a1
mov r14d, dword [rsi]
lea rdi, [r9 + rbp*4]
mov esi, dword [rsi + 0xc]
nop
movsxd rax, r11d
xor r8d, r8d
lea rcx, [r9 + rax*2]
cmp rcx, r9
je 0x180001321
lea eax, [r11 + r11]
movsxd rdx, eax
lea r10, [rdx + rdx]
sub r10, rcx
add r10, r9
movsx edx, word [r10 + rcx - 2]
sub rcx, 2
movsx eax, word [rcx]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
add r8d, eax
cmp rcx, r9
jne 0x1800012f0
test r8d, r8d
je 0x180001321
mov eax, r12d
xor edx, edx
imul eax, ebx
div r8d
mov r8d, eax
jmp 0x180001327
mov r8d, 0xffffffff
cmp r8d, r15d
mov eax, r11d
cmovb eax, ebp
mov ebp, eax
mov eax, r14d
imul eax, r11d
cmp eax, esi
je 0x18000136a
movsx eax, word [rdi + 2]
inc r11d
cdq
mov ecx, eax
movsx eax, word [rdi]
xor ecx, edx
add rdi, 4
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
add ebx, eax
add ebx, ecx
cmp r8d, r15d
cmovb r8d, r15d
mov r15d, r8d
jmp 0x1800012d0
imul r14d, ebp
mov eax, r14d
jmp 0x180001376
mov eax, dword [rsi + 0xc]
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret