Function at 0x18005cb30
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 + 0x3a38]
lea r8, [rcx + 0x3a28]
movzx r11d, byte [rcx + 0x3a29]
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 0x18005cba5
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 0x18005cb90
movzx ebx, byte [r8 + 2]
mov edi, 8
movdqa xmm2, xmmword [0x18006d6d0]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
test bl, bl
je 0x18005cd28
mov eax, edi
mov rcx, rsi
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005cd05
cmp rbx, rdi
jb 0x18005cd05
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r9, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005cc13
lea rax, [rbp - 0x29]
mov rcx, rsi
cmp rax, r9
jae 0x18005cd01
cmp rbx, 0x40
jb 0x18005ccc7
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 0x18005cc50
mov rcx, rsi
cmp r9, rdi
jb 0x18005cd01
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 0x18005cce0
mov r15, qword [rbp + 0x20]
cmp rdx, rdi
jae 0x18005cd28
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 0x18005cd10
mov qword [rbp - 0x30], r15
mov rdx, r10
lea r9, [rsi + 8]
test r11, r11
je 0x18005cd59
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 0x18005cd40
test bl, bl
je 0x18005ceb8
mov rax, rdi
mov r11, r9
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005ce94
cmp rbx, rdi
jb 0x18005ce94
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r14, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005cda4
lea rax, [rbp - 0x29]
cmp rax, r14
jae 0x18005ce94
cmp rbx, 0x40
jb 0x18005ce57
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 0x18005cde0
mov r11, r9
cmp r14, rdi
jb 0x18005ce94
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 0x18005ce70
cmp rdx, rdi
jae 0x18005ceb8
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 0x18005cea0
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 0x18005cefa
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 0x18005cee1
movzx r10d, byte [r8 + 2]
test r10b, r10b
je 0x18005d049
mov rcx, rdi
sub rcx, r10
mov rax, rcx
cmp rcx, rdi
jae 0x18005d025
cmp r10, rdi
jb 0x18005d030
lea rsi, [rcx + r8]
lea rdx, [rbp - 0x30]
add rdx, rcx
lea r11, [rsi + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x18005cf48
lea rcx, [rbp - 0x29]
cmp rcx, r11
jae 0x18005d030
cmp r10, 0x40
jb 0x18005cff2
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 0x18005cf80
cmp r11, rdi
jb 0x18005d025
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 0x18005d000
cmp rax, 8
jae 0x18005d049
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 0x18005d030
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 0x18005d0b4
lea rcx, [0x180078d44]
call fcn.18005dd3c
cmp dword [0x180078d44], 0xffffffff
jne 0x18005d0b4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x8a58c0
lea rcx, [0x180078d44]
mov qword [0x180078d50], rax
call fcn.18005dcd0
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 + 0x2205ee0]
add r8, 0x270
call rbx
mov rax, qword [rbp + 0x28]
add rsp, 0x50
pop rdi
pop rbx
pop rbp
ret