Function at 0x18007dfd0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xa0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rsi
mov qword [rbp + 0xa0], rdi
mov rax, qword [section..data]
xor rax, rbp
mov qword [rbp + 0x58], rax
xor r12d, r12d
mov r13d, 0x80
mov qword [rbp + 0x48], rdx
mov esi, 2
mov qword [rbp + 0x50], rcx
mov rdx, rcx
mov dword [rbp + 4], r13d
mov r14d, esi
mov dword [rbp + 0xc], 1
mov dword [rbp + 8], 0x14
test r8b, 1
je 0x18007e056
mov r13d, 0x400
lea r14d, [rsi - 1]
mov dword [rbp + 4], r13d
mov dword [rbp + 0xc], r12d
mov dword [rbp + 8], 8
test r8d, r8d
jns 0x18007e088
mov ecx, r8d
mov r13d, 1
sar ecx, 8
mov r14d, 1
and ecx, 0x1f
sar r8d, 5
inc ecx
and r8d, 7
shl r13d, cl
movzx ecx, r8b
shl r14d, cl
mov dword [rbp + 4], r13d
lea ecx, [r13 + 3]
imul ecx, r14d
shl ecx, 7
add rcx, 0x40
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x18007e0aa
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.180096a90
sub rsp, rax
mov r9d, 0x50
mov eax, r14d
mov r8, rdx
shl eax, 5
mov rcx, rdx
mov r15d, eax
lea rbx, [rsp + 0x40]
mov qword [rbp + 0x18], r15
and rbx, 0xffffffffffffffc0
add rbx, 0x40
mov qword [rbp + 0x30], rbx
lea rdi, [rbx + rax*4]
mov eax, r14d
shl eax, 6
mov qword [rbp + 0x38], rdi
lea rax, [rbx + rax*4]
mov qword [rbp + 0x28], rax
lea eax, [r14 + r14*2]
shl eax, 5
lea rax, [rbx + rax*4]
mov qword [rbp + 0x20], rax
mov eax, r14d
shl eax, 7
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rbx
mov dword [rbp], eax
call fcn.18007d470
cmp dword [rbp + 0xc], r12d
je 0x18007e282
mov r8d, dword [rbp]
mov rdx, rbx
mov rcx, rdi
call fcn.18007b080
test r13d, r13d
je 0x18007e331
mov ebx, dword [rbp + 8]
mov r15d, r8d
shr r15d, 3
bts ebx, 8
nop dword [rax]
mov rcx, qword [rbp + 0x20]
lea r8, [rcx + r12*4]
test r15d, r15d
je 0x18007e1a4
mov edx, esi
nop
lea eax, [rdx - 2]
mov ecx, eax
mov rax, qword [rdi + rax*8]
mov qword [r8 + rcx*8], rax
lea eax, [rdx - 1]
mov ecx, eax
mov rax, qword [rdi + rax*8]
mov qword [r8 + rcx*8], rax
mov eax, edx
lea rcx, [rax*8]
mov rax, qword [rcx + rdi]
mov qword [rcx + r8], rax
lea eax, [rdx + 1]
mov ecx, eax
add edx, 4
mov rax, qword [rdi + rax*8]
mov qword [r8 + rcx*8], rax
lea eax, [rdx - 2]
cmp eax, r15d
jb 0x18007e160
mov rdx, qword [rbp + 0x28]
mov r9d, ebx
mov r8d, r14d
mov rcx, rdi
call fcn.18007d960
add r12d, dword [rbp + 0x18]
sub r13, 1
jne 0x18007e150
mov r13d, dword [rbp + 4]
mov rbx, qword [rbp + 0x30]
mov r15, qword [rbp + 0x18]
mov r8d, dword [rbp]
test r13d, r13d
je 0x18007e331
mov ebx, dword [rbp + 8]
lea eax, [r15 - 0x10]
lea rax, [rdi + rax*4]
mov r12d, r13d
mov qword [rbp + 0x40], rax
mov r15d, r8d
lea eax, [r13 - 1]
shr r15d, 3
mov r13, qword [rbp + 0x40]
bts ebx, 8
mov dword [rbp + 0x10], eax
and eax, dword [r13]
mov rcx, qword [rbp + 0x20]
imul eax, r14d
shl eax, 5
lea r8, [rcx + rax*4]
test r15d, r15d
je 0x18007e25f
mov edx, esi
nop dword [rax + rax]
lea eax, [rdx - 2]
mov ecx, eax
mov rax, qword [r8 + rax*8]
xor qword [rdi + rcx*8], rax
lea eax, [rdx - 1]
mov ecx, eax
mov rax, qword [r8 + rax*8]
xor qword [rdi + rcx*8], rax
mov eax, edx
lea rcx, [rdi + rax*8]
mov rax, qword [r8 + rax*8]
xor qword [rcx], rax
lea eax, [rdx + 1]
mov ecx, eax
add edx, 4
mov rax, qword [r8 + rax*8]
xor qword [rdi + rcx*8], rax
lea eax, [rdx - 2]
cmp eax, r15d
jb 0x18007e220
mov rdx, qword [rbp + 0x28]
mov r9d, ebx
mov r8d, r14d
mov rcx, rdi
call fcn.18007d960
mov eax, dword [rbp + 0x10]
sub r12, 1
jne 0x18007e201
mov rbx, qword [rbp + 0x30]
mov r13d, dword [rbp + 4]
test r13d, r13d
je 0x18007e331
mov r15d, dword [rbp]
shr r15d, 3
mov r12d, r13d
xor edi, edi
mov r13, qword [rbp + 0x20]
nop dword [rax]
lea r8, [rdi*4]
add r8, r13
test r15d, r15d
je 0x18007e304
mov edx, esi
nop dword [rax]
nop word [rax + rax]
lea eax, [rdx - 2]
mov ecx, eax
mov rax, qword [rbx + rax*8]
mov qword [r8 + rcx*8], rax
lea eax, [rdx - 1]
mov ecx, eax
mov rax, qword [rbx + rax*8]
mov qword [r8 + rcx*8], rax
mov eax, edx
lea rcx, [rax*8]
mov rax, qword [rcx + rbx]
mov qword [rcx + r8], rax
lea eax, [rdx + 1]
mov ecx, eax
add edx, 4
mov rax, qword [rbx + rax*8]
mov qword [r8 + rcx*8], rax
lea eax, [rdx - 2]
cmp eax, r15d
jb 0x18007e2c0
mov r9d, dword [rbp + 8]
mov r8d, r14d
mov rdx, qword [rbp + 0x28]
mov rcx, rbx
call fcn.18007d960
mov rax, qword [rbp + 0x18]
add edi, eax
sub r12, 1
jne 0x18007e2a0
mov rdi, qword [rbp + 0x38]
mov r13d, dword [rbp + 4]
jmp 0x18007e335
mov rax, qword [rbp + 0x18]
test r13d, r13d
je 0x18007e3df
mov r15d, dword [rbp]
add eax, 0xfffffff0
shr r15d, 3
mov r12d, r13d
lea rdi, [rbx + rax*4]
lea eax, [r13 - 1]
mov dword [rbp + 0x10], eax
nop word [rax + rax]
and eax, dword [rdi]
mov rcx, qword [rbp + 0x20]
imul eax, r14d
shl eax, 5
lea r8, [rcx + rax*4]
test r15d, r15d
je 0x18007e3bf
mov edx, esi
nop dword [rax + rax]
lea eax, [rdx - 2]
mov ecx, eax
mov rax, qword [r8 + rax*8]
xor qword [rbx + rcx*8], rax
lea eax, [rdx - 1]
mov ecx, eax
mov rax, qword [r8 + rax*8]
xor qword [rbx + rcx*8], rax
mov eax, edx
lea rcx, [rbx + rax*8]
mov rax, qword [r8 + rax*8]
xor qword [rcx], rax
lea eax, [rdx + 1]
mov ecx, eax
add edx, 4
mov rax, qword [r8 + rax*8]
xor qword [rbx + rcx*8], rax
lea eax, [rdx - 2]
cmp eax, r15d
jb 0x18007e380
mov r9d, dword [rbp + 8]
mov r8d, r14d
mov rdx, qword [rbp + 0x28]
mov rcx, rbx
call fcn.18007d960
mov eax, dword [rbp + 0x10]
sub r12, 1
jne 0x18007e360
mov rdi, qword [rbp + 0x38]
cmp dword [rbp + 0xc], 0
mov r9d, dword [rbp]
je 0x18007e43e
mov edx, r9d
shr edx, 3
test edx, edx
je 0x18007e43e
nop dword [rax]
nop word [rax + rax]
lea eax, [rsi - 2]
mov ecx, eax
mov rax, qword [rdi + rax*8]
xor qword [rbx + rcx*8], rax
lea eax, [rsi - 1]
mov ecx, eax
mov rax, qword [rdi + rax*8]
xor qword [rbx + rcx*8], rax
mov eax, esi
lea rcx, [rbx + rax*8]
mov rax, qword [rdi + rax*8]
xor qword [rcx], rax
lea eax, [rsi + 1]
mov ecx, eax
add esi, 4
mov rax, qword [rdi + rax*8]
xor qword [rbx + rcx*8], rax
lea eax, [rsi - 2]
cmp eax, edx
jb 0x18007e400
mov rax, qword [rbp + 0x48]
mov r8, rbx
mov rcx, qword [rbp + 0x50]
mov dword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], rax
call fcn.18007d470
mov rcx, qword [rbp + 0x58]
xor rcx, rbp
call fcn.1800810a0
mov rbx, qword [rbp + 0x90]
mov rsi, qword [rbp + 0x98]
mov rdi, qword [rbp + 0xa0]
lea rsp, [rbp + 0x60]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret