Function at 0x18007d470
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x50
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x60], rdi
mov rax, qword [section..data]
xor rax, rbp
mov qword [rbp + 0x18], rax
mov eax, dword [rsp]
mov rbx, r8
mov qword [rbp], rbx
mov eax, 0x2c0
sub rsp, rax
lea r15, [rsp + 0x30]
mov eax, dword [r15]
and r15, 0xffffffffffffffc0
mov edx, 3
add r15, 0x40
mov qword [rbp + 0x10], r15
mov rax, r15
lea r13, [r15 + 0x140]
nop dword [rax]
nop word [rax + rax]
lea rax, [rax + 0x50]
movups xmm0, xmmword [rcx]
movups xmmword [rax - 0x50], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax - 0x40], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax - 0x30], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax - 0x20], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax - 0x10], xmm0
sub rdx, 1
jne 0x18007d4e0
movups xmm0, xmmword [rcx]
mov r12d, 0x100
cmp r9d, r12d
mov edi, r12d
movups xmmword [r15 + 0xf0], xmm0
cmovbe edi, r9d
mov eax, r12d
movups xmm0, xmmword [rcx]
xor esi, esi
div edi
movups xmmword [r15 + 0x100], xmm0
mov dword [rbp + 8], eax
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r15 + 0x110], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [r15 + 0x120], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [r15 + 0x130], xmm1
test eax, eax
je 0x18007d5a5
mov ebx, esi
mov r14d, eax
mov esi, edi
mov r15, r8
nop dword [rax]
nop word [rax + rax]
mov ecx, ebx
mov r8, rsi
add rcx, r13
mov rdx, r15
call fcn.180082090
add ebx, edi
sub r14, 1
jne 0x18007d580
mov r15, qword [rbp + 0x10]
xor esi, esi
mov rbx, qword [rbp]
mov eax, dword [rbp + 8]
imul edi, eax
mov eax, r12d
sub eax, edi
je 0x18007d5bf
mov ecx, edi
mov rdx, rbx
add rcx, r13
mov r8d, eax
call fcn.180082090
movups xmm0, xmmword [rbx]
lea r10, [r15 + 0x260]
mov qword [rbp], 0x20
lea rax, [r10 + 1]
mov r14d, esi
movups xmmword [r13 + 0x100], xmm0
mov qword [rbp + 0x10], rax
lea rax, [r10 + 0x1f]
movups xmm1, xmmword [rbx + 0x10]
mov qword [rbp + 8], rax
movups xmmword [r13 + 0x110], xmm1
nop dword [rax + rax]
mov eax, r14d
mov r9b, 0x20
mov byte [rsp + 0x28], 0x20
mov ebx, esi
mov edi, esi
mov qword [rsp + 0x20], r10
lea r8, [rax + r13]
lea rcx, [rax + r15]
call fcn.18007d240
mov rcx, qword [rbp + 0x10]
mov edx, 0x10
nop word [rax + rax]
movzx eax, byte [rcx - 1]
lea rcx, [rcx + 2]
add ebx, eax
movzx eax, byte [rcx - 2]
add edi, eax
sub rdx, 1
jne 0x18007d630
lea eax, [rdi + rbx]
movzx r14d, al
lea r10, [r15 + 0x260]
lea r9, [r14 + r13]
lea rax, [r9 + 0x1f]
cmp r9, qword [rbp + 8]
ja 0x18007d6a0
cmp rax, r10
jb 0x18007d6a0
mov r8, r10
mov r11d, 0x20
sub r8, r9
mov edx, r11d
mov rax, r9
nop dword [rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x18007d680
jmp 0x18007d6cf
movdqu xmm0, xmmword [r10]
mov r11d, 0x20
movdqu xmm1, xmmword [r9]
pxor xmm1, xmm0
movdqu xmmword [r9], xmm1
movdqu xmm1, xmmword [r10 + 0x10]
movdqu xmm0, xmmword [r9 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [r9 + 0x10], xmm1
cmp r14d, 0x20
jae 0x18007d6f4
mov eax, r11d
lea ecx, [r14 + 0x100]
sub eax, r14d
mov rdx, r9
cmp eax, 0x20
cmova eax, r11d
add rcx, r13
mov r8d, eax
jmp 0x18007d710
mov eax, r12d
sub eax, r14d
cmp eax, 0x20
jae 0x18007d71c
lea r8d, [r14 - 0xe0]
mov rcx, r13
lea rdx, [r13 + 0x100]
call fcn.180082090
lea r10, [r15 + 0x260]
sub qword [rbp], 1
jne 0x18007d600
cmp dword [rbp + 0x80], r12d
mov edi, r12d
cmovbe edi, dword [rbp + 0x80]
sub r12d, r14d
cmp r12d, edi
jb 0x18007d7ea
lea rdx, [r14 + r13]
test edi, edi
je 0x18007d7e1
cmp edi, 0x20
jb 0x18007d7b3
lea eax, [rdi - 1]
lea r8, [rax + rdx]
add rax, r15
cmp rdx, rax
ja 0x18007d769
cmp r8, r15
jae 0x18007d7b3
mov eax, edi
mov r8d, edi
and eax, 0x1f
sub r8d, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [rdx + rsi]
lea eax, [rsi + 0x10]
movdqu xmm1, xmmword [rsi + r15]
pxor xmm1, xmm0
movdqu xmmword [rdx + rsi], xmm1
add esi, 0x20
movdqu xmm1, xmmword [rax + r15]
movdqu xmm0, xmmword [rdx + rax]
pxor xmm1, xmm0
movdqu xmmword [rdx + rax], xmm1
cmp esi, r8d
jb 0x18007d780
cmp esi, edi
jae 0x18007d7e1
mov ecx, esi
sub r15, rdx
add rcx, rdx
mov r8d, edi
sub r8d, esi
nop word [rax + rax]
movzx eax, byte [r15 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x18007d7d0
mov rcx, qword [rbp + 0x78]
jmp 0x18007d92a
lea r10, [r14 + r13]
mov edx, esi
test r12d, r12d
je 0x18007d881
cmp r12d, 0x20
jb 0x18007d859
lea eax, [r12 - 1]
lea r8, [r10 + rax]
add rax, r15
cmp r10, rax
ja 0x18007d815
cmp r8, r15
jae 0x18007d859
mov r8d, r12d
and r8d, 0xffffffe0
nop dword [rax]
mov eax, edx
movdqu xmm0, xmmword [r10 + rax]
movdqu xmm1, xmmword [rax + r15]
pxor xmm1, xmm0
movdqu xmmword [r10 + rax], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm1, xmmword [rax + r15]
movdqu xmm0, xmmword [r10 + rax]
pxor xmm1, xmm0
movdqu xmmword [r10 + rax], xmm1
cmp edx, r8d
jb 0x18007d820
cmp edx, r12d
jae 0x18007d881
mov ecx, edx
mov r8, r15
add rcx, r10
sub r8, r10
mov eax, r12d
sub eax, edx
mov edx, eax
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18007d870
mov r14d, r12d
lea r8, [r12 + r15]
sub edi, r12d
je 0x18007d911
cmp edi, 0x20
jb 0x18007d8e6
lea eax, [rdi - 1]
lea rdx, [rax + r13]
add rax, r8
cmp r13, rax
ja 0x18007d8aa
cmp rdx, r8
jae 0x18007d8e6
mov edx, edi
and edx, 0xffffffe0
nop
movdqu xmm0, xmmword [rsi + r13]
lea eax, [rsi + 0x10]
movdqu xmm1, xmmword [rsi + r8]
pxor xmm1, xmm0
movdqu xmmword [rsi + r13], xmm1
add esi, 0x20
movdqu xmm1, xmmword [rax + r8]
movdqu xmm0, xmmword [rax + r13]
pxor xmm1, xmm0
movdqu xmmword [rax + r13], xmm1
cmp esi, edx
jb 0x18007d8b0
cmp esi, edi
jae 0x18007d911
mov ecx, esi
sub r8, r13
add rcx, r13
mov r9d, edi
sub r9d, esi
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r9, 1
jne 0x18007d900
mov rbx, qword [rbp + 0x78]
mov r8, r14
mov rcx, rbx
mov rdx, r10
call fcn.180082090
lea rcx, [r12 + rbx]
mov rdx, r13
mov r8d, edi
call fcn.180082090
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.1800810a0
mov rbx, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x60]
lea rsp, [rbp + 0x20]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret