Function at 0x18005cb50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x50
movzx eax, byte [rcx + 0x3a00]
lea r8, [rcx + 0x39f0]
movzx r11d, byte [rcx + 0x39f1]
xor r10d, r10d
mov qword [rsp + 0x80], rsi
mov ecx, r10d
mov qword [rsp + 0x30], r15
mov rsi, r8
mov r15, qword [r8 + rax*8 + 0x18]
lea rax, [rbp - 0x30]
sub rsi, rax
mov qword [rbp + 0x20], r15
mov qword [rbp - 0x30], r15
test r11, r11
je 0x18005cbc5
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [r8 + rcx*8 + 8]
not rax
xor qword [rbp + rcx*8 - 0x30], rax
inc rcx
cmp rcx, r11
jb 0x18005cbb0
movzx ebx, byte [r8 + 2]
mov edi, 8
movdqa xmm2, xmmword [0x18006d6c0]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
test bl, bl
je 0x18005cd48
mov eax, edi
mov rcx, rsi
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005cd25
cmp rbx, rdi
jb 0x18005cd25
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r9, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005cc33
lea rax, [rbp - 0x29]
mov rcx, rsi
cmp rax, r9
jae 0x18005cd21
cmp rbx, 0x40
jb 0x18005cce7
mov r9, rbx
mov r14, rdi
and r9d, 0x3f
sub r14, r9
lea rcx, [r15 + 0x18]
lea r12, [rbp - 0x30]
lea r13, [rbp - 0x20]
sub r12, r8
lea rax, [rbp - 0x28]
sub r13, r8
sub rax, r8
lea r15, [rbp - 0x18]
sub r15, r8
nop word [rax + rax]
movdqu xmm0, xmmword [r12 + rcx - 0x18]
add rdx, 0x40
movdqu xmm1, xmmword [rcx - 0x10]
lea rcx, [rcx + 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r12 + rcx - 0x58], xmm1
movdqu xmm0, xmmword [rcx + r13 - 0x58]
movdqu xmm1, xmmword [rcx - 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + r13 - 0x58], xmm1
movdqu xmm0, xmmword [rax + rcx - 0x40]
movdqu xmm1, xmmword [rcx - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rax + rcx - 0x40], xmm1
movdqu xmm0, xmmword [r15 + rcx - 0x40]
movdqu xmm1, xmmword [rcx - 0x20]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r15 + rcx - 0x40], xmm1
cmp rdx, r14
jb 0x18005cc70
mov rcx, rsi
cmp r9, rdi
jb 0x18005cd21
mov rax, rbx
mov r9, rdi
and eax, 7
sub r9, rax
lea rax, [rbp - 0x30]
mov rcx, r8
sub rcx, rax
nop dword [rax]
movq xmm0, qword [rbp + rdx - 0x30]
movq xmm1, qword [r8 + rdx + 8]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rdx - 0x30], xmm1
add rdx, rdi
cmp rdx, r9
jb 0x18005cd00
mov r15, qword [rbp + 0x20]
cmp rdx, rdi
jae 0x18005cd48
lea r9, [rcx + 8]
nop
lea rcx, [rbp - 0x30]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r9]
not al
xor byte [rcx], al
cmp rdx, rdi
jb 0x18005cd30
mov qword [rbp - 0x30], r15
mov rdx, r10
lea r9, [rsi + 8]
test r11, r11
je 0x18005cd79
nop dword [rax + rax]
lea rax, [r9 + rdx*8]
mov rcx, qword [rbp + rax - 0x30]
not rcx
xor qword [rbp + rdx*8 - 0x30], rcx
inc rdx
cmp rdx, r11
jb 0x18005cd60
test bl, bl
je 0x18005ced8
mov rax, rdi
mov r11, r9
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005ceb4
cmp rbx, rdi
jb 0x18005ceb4
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r14, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005cdc4
lea rax, [rbp - 0x29]
cmp rax, r14
jae 0x18005ceb4
cmp rbx, 0x40
jb 0x18005ce77
mov r14, rbx
mov r11, rdi
and r14d, 0x3f
sub r11, r14
lea rcx, [r15 + 0x18]
lea r12, [rbp - 0x30]
lea r13, [rbp - 0x20]
sub r12, r8
lea rax, [rbp - 0x28]
sub r13, r8
sub rax, r8
lea r15, [rbp - 0x18]
sub r15, r8
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx + r12 - 0x18]
add rdx, 0x40
movdqu xmm1, xmmword [rcx - 0x10]
lea rcx, [rcx + 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + r12 - 0x58], xmm1
movdqu xmm0, xmmword [rcx + r13 - 0x58]
movdqu xmm1, xmmword [rcx - 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + r13 - 0x58], xmm1
movdqu xmm0, xmmword [rcx + rax - 0x40]
movdqu xmm1, xmmword [rcx - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + rax - 0x40], xmm1
movdqu xmm0, xmmword [rcx + r15 - 0x40]
movdqu xmm1, xmmword [rcx - 0x20]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + r15 - 0x40], xmm1
cmp rdx, r11
jb 0x18005ce00
mov r11, r9
cmp r14, rdi
jb 0x18005ceb4
and ebx, 7
mov rcx, rdi
sub rcx, rbx
lea r11, [rsi + 8]
nop dword [rax]
nop dword [rax + rax]
movq xmm0, qword [rbp + rdx - 0x30]
lea rax, [r11 + rdx]
movq xmm1, qword [rbp + rax - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rdx - 0x30], xmm1
add rdx, rdi
cmp rdx, rcx
jb 0x18005ce90
cmp rdx, rdi
jae 0x18005ced8
nop dword [rax]
lea rcx, [rbp - 0x30]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r11]
not al
xor byte [rcx], al
cmp rdx, rdi
jb 0x18005cec0
mov rax, qword [rbp - 0x30]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
or dword [rax + 0x5c], 4
movzx eax, byte [r8 + 0x10]
movzx edx, byte [r8 + 1]
mov rcx, qword [r8 + rax*8 + 0x18]
mov qword [rbp - 0x30], rcx
test dl, dl
je 0x18005cf1a
lea rax, [r9 + r10*8]
mov rcx, qword [rbp + rax - 0x30]
not rcx
xor qword [rbp + r10*8 - 0x30], rcx
inc r10
cmp r10, rdx
jb 0x18005cf01
movzx r10d, byte [r8 + 2]
test r10b, r10b
je 0x18005d069
mov rcx, rdi
sub rcx, r10
mov rax, rcx
cmp rcx, rdi
jae 0x18005d045
cmp r10, rdi
jb 0x18005d050
lea rsi, [rcx + r8]
lea rdx, [rbp - 0x30]
add rdx, rcx
lea r11, [rsi + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x18005cf68
lea rcx, [rbp - 0x29]
cmp rcx, r11
jae 0x18005d050
cmp r10, 0x40
jb 0x18005d012
mov r11, r10
mov rbx, rdi
and r11d, 0x3f
sub rbx, r11
lea rdx, [rsi + 0x18]
lea r14, [rbp - 0x30]
lea r15, [rbp - 0x20]
sub r14, r8
lea rcx, [rbp - 0x28]
sub r15, r8
sub rcx, r8
lea rsi, [rbp - 0x18]
sub rsi, r8
nop
movdqu xmm0, xmmword [r14 + rdx - 0x18]
add rax, 0x40
movdqu xmm1, xmmword [rdx - 0x10]
lea rdx, [rdx + 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r14 + rdx - 0x58], xmm1
movdqu xmm0, xmmword [r15 + rdx - 0x58]
movdqu xmm1, xmmword [rdx - 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r15 + rdx - 0x58], xmm1
movdqu xmm0, xmmword [rcx + rdx - 0x40]
movdqu xmm1, xmmword [rdx - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + rdx - 0x40], xmm1
movdqu xmm0, xmmword [rsi + rdx - 0x40]
movdqu xmm1, xmmword [rdx - 0x20]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rsi + rdx - 0x40], xmm1
cmp rax, rbx
jb 0x18005cfa0
cmp r11, rdi
jb 0x18005d045
and r10d, 7
sub rdi, r10
nop dword [rax]
movq xmm0, qword [rbp + rax - 0x30]
lea rcx, [r9 + rax]
movq xmm1, qword [rbp + rcx - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rax - 0x30], xmm1
add rax, 8
cmp rax, rdi
jb 0x18005d020
cmp rax, 8
jae 0x18005d069
nop dword [rax + rax]
lea rdx, [rbp - 0x30]
add rdx, rax
inc rax
movzx ecx, byte [rdx + r9]
not cl
xor byte [rdx], cl
cmp rax, 8
jb 0x18005d050
mov ecx, dword [0x180078404]
mov rax, qword gs:[0x58]
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x80]
mov rax, qword [rax + rcx*8]
mov edx, 4
mov ecx, dword [rdx + rax]
cmp dword [0x180078d44], ecx
jle 0x18005d0d4
lea rcx, [0x180078d44]
call fcn.18005dd5c
cmp dword [0x180078d44], 0xffffffff
jne 0x18005d0d4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x8940f0
lea rcx, [0x180078d44]
mov qword [0x180078d50], rax
call fcn.18005dcf0
mov rbx, qword [0x180078d50]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x30]
mov r8, qword [rax + 0x21f2250]
add r8, 0x270
call rbx
mov rax, qword [rbp + 0x28]
add rsp, 0x50
pop rdi
pop rbx
pop rbp
ret