Function at 0x180058500
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
lea eax, [r9 + 0x666]
mov r15d, r9d
mov dword [rsp + 0x50], eax
mov rdi, r8
mov r14, rdx
mov rbx, rcx
cmp r9d, eax
jae 0x1800589ab
mov r13, qword [rsp + 0x58]
lea rcx, [0x180069c90]
mov r12, qword [rsp + 0x58]
lea r9, [0x180069b90]
lea r8, [0x180069b70]
lea rdx, [0x180000000]
cmp r15d, 0x108
ja 0x180058898
je 0x180058740
lea eax, [r15 - 6]
cmp eax, 0xfc
ja case.default.0x18005859b
movzx eax, byte [rdx + rax + 0x589e8]
mov ecx, dword [rdx + rax*4 + 0x589cc]
add rcx, rdx
jmp rcx
movdqa xmm0, xmmword [0x1800a0010]
lea rdx, [rbp - 0x78]
movups xmmword [rbp - 0x38], xmm0
mov dword [rbp - 0x48], 5
mov ecx, 0x4c
mov dword [rbp - 0x44], 6
movsd xmm0, qword [rbp - 0x48]
movsd qword [rbp - 0x28], xmm0
movdqa xmm0, xmmword [0x1800a0060]
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 0x78], r8
lea r8, [rbp - 0x80]
mov dword [rbp - 0x48], 9
mov dword [rbp - 0x44], 0xa
movsd xmm0, qword [rbp - 0x48]
movsd qword [rbp - 8], xmm0
mov dword [rbp - 0x20], 7
mov dword [rbp], 0xb
mov qword [rbp - 0x80], r9
call fcn.1800461a0
mov r13, rax
lea rdi, [rbp - 0x38]
mov esi, 7
nop dword [rax]
mov r8d, 0x64
mov qword [rsp + 0x30], rdi
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.1800309d0
add rdi, 4
sub rsi, 1
jne 0x180058620
mov rdi, qword [rbp + 0x60]
jmp case.0x18005859b.12
xor edx, edx
mov dword [rbp + 0x68], 0
lea r8, [rbp + 0x68]
lea ecx, [rdx + 0x3d]
call fcn.180015f20
jmp case.0x18005859b.12
mov rax, qword [rbp + 0x70]
mov ecx, dword [rax]
test ecx, ecx
jne 0x180058684
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0x60], xmm0
jmp case.0x18005859b.12
movsd xmm0, qword [rdi]
lea rdx, [rsp + 0x4c]
mov eax, dword [rdi + 8]
mov r8d, 0x20
mov dword [rbp + 0x68], ecx
lea rcx, [rbp + 0x68]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.18005c4a0
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0x60], xmm0
jmp case.0x18005859b.12
xor edx, edx
lea ecx, [rdx + 8]
call fcn.1800202b0
mov qword [rsp + 0x58], rax
jmp case.0x18005859b.12
mov qword [rbp - 0x68], r8
lea rdx, [rbp - 0x68]
lea r8, [rbp - 0x70]
mov qword [rbp - 0x70], r9
mov ecx, 0x4c
call fcn.1800461a0
mov r12, rax
lea rdi, [rbp - 0x18]
mov esi, 7
nop dword [rax]
nop word [rax + rax]
mov r8d, 0x64
mov qword [rsp + 0x30], rdi
mov rdx, r12
lea rcx, [rsp + 0x30]
call fcn.1800309d0
add rdi, 4
sub rsi, 1
jne 0x180058700
mov r8d, 0xe3
mov rdx, r12
mov rcx, r13
call fcn.180019530
mov rdi, qword [rbp + 0x60]
mov qword [rbp - 0x60], rax
jmp case.0x18005859b.12
mov rax, qword [rbp + 0x70]
lea rdx, [rsp + 0x6c]
mov r8d, 0x20
lea rcx, [rbp + 0x68]
mov eax, dword [rax]
mov dword [rbp + 0x68], eax
call fcn.18005c4a0
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 0x53]
call fcn.180063980
mov rcx, qword [rbp + 0x78]
mov ecx, dword [rcx]
test eax, eax
jne 0x180058985
xor esi, esi
test ecx, ecx
je case.0x18005859b.12
nop word [rax + rax]
mov edi, 0x68
mov eax, edi
sub eax, 0x68
je 0x18005882b
sub eax, 0x1f
je 0x1800587be
cmp eax, 0x1f
jne 0x180058871
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x40], xmm0
jmp 0x180058871
xor eax, eax
lea rdx, [rsp + 0x4f]
lea rcx, [rbx + 0xf]
cmp rbx, rdx
ja 0x1800587d8
lea rdx, [rsp + 0x40]
cmp rcx, rdx
jae 0x1800587f0
lea rdx, [rsp + 0x7f]
cmp rbx, rdx
ja 0x180058809
lea rdx, [rsp + 0x70]
cmp rcx, rdx
jb 0x180058809
nop dword [rax]
movzx ecx, byte [rsp + rax + 0x70]
xor cl, byte [rsp + rax + 0x40]
inc rax
xor byte [rbx], cl
inc rbx
cmp rax, 0x10
jb 0x1800587f0
jmp 0x180058871
movdqu xmm0, xmmword [rsp + 0x70]
movdqa xmm1, xmmword [rsp + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbx]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
add rbx, 0x10
jmp 0x180058871
mov r8d, 0x40
lea rdx, [rsp + 0x6c]
xor ecx, ecx
call fcn.1800309d0
inc eax
lea rdx, [rsp + 0x6c]
mov r8d, 0x20
mov dword [rbp + 0x68], eax
lea rcx, [rbp + 0x68]
call fcn.18005c4a0
xor r9d, r9d
mov qword [rsp + 0x20], r14
lea r8, [rsp + 0x60]
lea rcx, [rsp + 0x70]
lea edx, [r9 + 0x43]
call fcn.18001d3e0
add edi, 0x1f
cmp edi, 0xc5
jb 0x180058795
mov rax, qword [rbp + 0x78]
add esi, 0x10
cmp esi, dword [rax]
jb 0x180058790
mov rdi, qword [rbp + 0x60]
jmp case.0x18005859b.12
mov eax, r15d
sub eax, 0x126
je 0x180058934
sub eax, 0x4e
je 0x18005891d
sub eax, 0xc
je 0x1800588fa
sub eax, 0x7e
je 0x1800588e5
cmp eax, 0x7e
jne case.default.0x18005859b
lea r9d, [rax + 0x6f]
xor r8d, r8d
mov rdx, r12
xor ecx, ecx
call fcn.180031af0
mov rdx, qword [rbp - 0x60]
mov r9d, 0xed
xor r8d, r8d
xor ecx, ecx
call fcn.180031af0
jmp case.0x18005859b.12
mov r9d, 0xed
xor r8d, r8d
mov rdx, r13
xor ecx, ecx
call fcn.180031af0
jmp case.0x18005859b.12
xor edx, edx
mov dword [rbp + 0x68], 4
lea r8, [rbp + 0x68]
lea ecx, [rdx + 0x3d]
call fcn.180015f20
xor edx, edx
mov ecx, 0xf0
call fcn.18001e480
jmp case.0x18005859b.12
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x11d
call fcn.180042ca0
jmp case.0x18005859b.12
mov qword [rsp + 0x30], rcx
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x68]
mov dword [rbp + 0x68], 1
mov r8d, 0x13
call fcn.180047770
xor r8d, r8d
mov edx, 0xc2
mov rcx, rax
call fcn.18005b430
lea rcx, [0x180069c90]
add r15d, 0x7e
cmp r15d, dword [rsp + 0x50]
jae 0x1800589ab
jmp 0x180058552
mov ecx, dword [rdi]
xor eax, eax
mov dword [r14 + 0x14], ecx
jmp 0x1800589ae
mov dword [rbp + 0x68], ecx
lea r9, [rbp + 0x68]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x28], r14
mov r8d, 0x6a
mov qword [rsp + 0x20], rbx
lea rdx, [rsp + 0x40]
call fcn.18002a840
mov eax, dword [rbp + 0x68]
mov rbx, qword [rsp + 0x150]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret