Function at 0x1800056f0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x60], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x18002f528]
xor rax, rsp
mov qword [rbp - 8], rax
mov rdi, r8
mov rsi, rdx
mov r15, rcx
mov qword [rbp - 0x50], rdx
mov qword [rbp - 0x58], r8
add rcx, 0x10
call fcn.18000550c
xor r13d, r13d
mov rdx, rdi
cmp qword [rax], r13
jne 0x1800057cc
mov rcx, r15
call fcn.180004a60
mov byte [rax], r13b
mov r8d, dword [0x180031de8]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 4
jne 0x180005796
lea edx, [rcx - 3]
test r8d, r8d
cmove r8d, edx
mov dword [0x180031de8], r8d
cmp qword [rsi + 0x18], 0x10
jb 0x1800057a5
mov rcx, qword [rsi]
call fcn.18000c430
mov r14d, 0xf
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x10], r13
mov byte [rsi], r13b
cmp qword [rdi + 0x18], 0x10
jb 0x1800057c5
mov rcx, qword [rdi]
call fcn.18000c430
xor eax, eax
jmp 0x180005a03
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], r13
mov r14d, 0xf
mov qword [rbp - 0x10], r14
mov qword [rbp - 0x18], r13
mov byte [rbp - 0x28], r13b
or rbx, 0xffffffffffffffff
mov r9, rbx
xor r8d, r8d
lea rcx, [rbp - 0x28]
call fcn.1800013f8
nop
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x38], r13
mov byte [rbp - 0x48], r13b
mov r9, rbx
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x48]
call fcn.1800013f8
nop
lea rbx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rbx, qword [rbp - 0x48]
mov rdx, rsi
lea rcx, [r15 + 0x10]
call fcn.18000550c
mov rdx, rbx
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x18000598d
mov r8d, dword [0x180031de8]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 0x16
jne 0x1800058c0
mov r10d, r13d
lea edx, [rbx + 1]
mov r9d, r10d
mov r11d, 8
mov ecx, r9d
and ecx, edx
sub ecx, edx
not ecx
and ecx, r8d
mov eax, r9d
sar eax, 1
mov r9d, ecx
xor r9d, eax
sub r11, rdx
jne 0x18000588e
add r8d, r9d
add r10d, edx
cmp r10d, 0x100
jl 0x180005885
mov dword [0x180031de8], r8d
mov rdx, rdi
mov rcx, r15
call fcn.180004a60
mov byte [rax], r13b
mov r8d, dword [0x180031de8]
mov ecx, r8d
imul ecx, r8d
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
cmp ecx, 0x11
jne 0x18000593d
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub r8d, edx
add r8d, 0x2f4
movsxd rcx, r8d
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.18000bd44
mov rcx, rax
call fcn.18000d084
nop
cmp qword [rbp - 0x30], 0x10
jb 0x18000594d
mov rcx, qword [rbp - 0x48]
call fcn.18000c430
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x38], r13
mov byte [rbp - 0x48], r13b
cmp qword [rbp - 0x10], 0x10
jb 0x180005969
mov rcx, qword [rbp - 0x28]
call fcn.18000c430
mov qword [rbp - 0x10], r14
mov qword [rbp - 0x18], r13
mov byte [rbp - 0x28], r13b
cmp qword [rsi + 0x18], 0x10
jb 0x1800057ab
mov rcx, qword [rsi]
call fcn.18000c430
jmp 0x1800057ab
cmp qword [rbp - 0x30], 0x10
jb 0x18000599d
mov rcx, qword [rbp - 0x48]
call fcn.18000c430
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x38], r13
mov byte [rbp - 0x48], r13b
cmp qword [rbp - 0x10], 0x10
jb 0x1800059b9
mov rcx, qword [rbp - 0x28]
call fcn.18000c430
mov qword [rbp - 0x10], r14
mov qword [rbp - 0x18], r13
mov byte [rbp - 0x28], r13b
mov rdx, rdi
mov rcx, r15
call fcn.180004a60
mov edx, 1
mov byte [rax], dl
cmp qword [rsi + 0x18], 0x10
jb 0x1800059e6
mov rcx, qword [rsi]
call fcn.18000c430
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x10], r13
mov byte [rsi], r13b
cmp qword [rdi + 0x18], 0x10
jb 0x180005a00
mov rcx, qword [rdi]
call fcn.18000c430
mov rax, rbx
mov qword [rdi + 0x18], r14
mov qword [rdi + 0x10], r13
mov byte [rdi], r13b
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.18000bd80
mov rbx, qword [rsp + 0xd8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret