Function at 0x1800058e0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rax - 0x448]
sub rsp, 0x520
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x18003c008]
xor rax, rsp
mov qword [rbp + 0x410], rax
mov r12, rdx
mov r14, rcx
mov qword [rbp - 0x18], rcx
mov qword [rsp + 0x28], rdx
xor r13d, r13d
mov dword [rsp + 0x20], r13d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
lea r8d, [r13 + 3]
mov rdx, qword [rdx]
lea rcx, [rsp + 0x40]
call fcn.1800026a0
nop
mov qword [rbp + 8], 0xf
mov qword [rbp], r13
mov byte [rbp - 0x10], r13b
or rdi, 0xffffffffffffffff
mov rdx, qword [rsp + 0x40]
cmp byte [rdx], r13b
jne 0x180005971
mov r8d, r13d
jmp 0x18000597e
mov r8, rdi
inc r8
cmp byte [rdx + r8], 0
jne 0x180005974
lea rcx, [rbp - 0x10]
call fcn.180004e70
nop
lea rax, [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
cmp rcx, rax
je 0x18000599c
call fcn.180010cf0
xor eax, eax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x30]
call fcn.180004750
nop
mov rbx, qword [rbp - 0x28]
sub rbx, qword [rbp - 0x30]
mov esi, 0x400
cmp rbx, rsi
jbe 0x180005a92
call fcn.180001cc0
mov rcx, rax
mov eax, r13d
test rcx, rcx
setne al
test eax, eax
jne 0x1800059ee
mov ecx, 0x80004005
call fcn.180001ba0
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r14], rax
lea rdx, [0x18002b99c]
test rdx, 0xffffffffffff0000
jne 0x180005a2a
movzx ebx, dx
mov ecx, ebx
call fcn.180003690
test rax, rax
je 0x180005a36
mov r8d, ebx
mov rdx, rax
mov rcx, r14
call fcn.1800040c0
jmp 0x180005a36
xor r8d, r8d
mov rcx, r14
call fcn.180004210
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x180005a50
call fcn.180010cac
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], r13
cmp qword [rbp + 8], 0x10
jb 0x180005a60
mov rcx, qword [rbp - 0x10]
call fcn.180010cac
mov qword [rbp + 8], 0xf
mov qword [rbp], r13
mov byte [rbp - 0x10], 0
mov rdx, qword [r12]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x180005c0d
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
jmp 0x180005c0d
mov r8, rsi
xor edx, edx
lea rcx, [rbp + 0x10]
call fcn.180012ff0
mov r8, rbx
mov rdx, qword [rbp - 0x30]
lea rcx, [rbp + 0x10]
call fcn.1800114c0
mov ecx, dword [rbp + 0x10]
mov eax, 4
cmp rax, rbx
jae 0x180005ad3
nop dword [rax]
xor dword [rbp + rax + 0x10], ecx
add ecx, 0x20200611
add rax, 4
cmp rax, rbx
jb 0x180005ac0
sub rsi, rbx
lea rcx, [rbp + 0x10]
add rcx, rbx
mov r8, rsi
xor edx, edx
call fcn.180012ff0
call fcn.180001cc0
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x180005b07
mov ecx, 0x80004005
call fcn.180001ba0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x18], rax
lea rcx, [rbp + 0x14]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x180005b20
mov r8d, eax
lea rdx, [rbp + 0x14]
lea rcx, [rbp - 0x18]
call fcn.180004210
mov rbx, qword [rbp - 0x18]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x180005b61
cmp rax, qword [rbx - 0x18]
jne 0x180005b61
lea rsi, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x180005b9e
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rsi, rax
test rax, rax
jne 0x180005b7d
call fcn.180004020
int3
mov eax, dword [rbx - 0x10]
mov dword [rsi + 8], eax
mov eax, dword [rbx - 0x10]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rbx
add rdx, rdx
lea rcx, [rsi + 0x18]
call fcn.180011420
lea rax, [rsi + 0x18]
mov qword [r14], rax
lock add dword [rbx - 8], 0xffffffff
jg 0x180005bbb
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + 8]
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x180005bd5
call fcn.180010cac
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], r13
cmp qword [rbp + 8], 0x10
jb 0x180005be5
mov rcx, qword [rbp - 0x10]
call fcn.180010cac
mov qword [rbp + 8], 0xf
mov qword [rbp], r13
mov byte [rbp - 0x10], 0
mov rdx, qword [r12]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x180005c0d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, r14
mov rcx, qword [rbp + 0x410]
xor rcx, rsp
call fcn.180010cd0
lea r11, [rsp + 0x520]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret