Function at 0x18005cb60
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 0x18005cbd5
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 0x18005cbc0
movzx ebx, byte [r8 + 2]
mov edi, 8
movdqa xmm2, xmmword [0x18006d6f0]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
test bl, bl
je 0x18005cd58
mov eax, edi
mov rcx, rsi
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005cd35
cmp rbx, rdi
jb 0x18005cd35
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r9, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005cc43
lea rax, [rbp - 0x29]
mov rcx, rsi
cmp rax, r9
jae 0x18005cd31
cmp rbx, 0x40
jb 0x18005ccf7
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 0x18005cc80
mov rcx, rsi
cmp r9, rdi
jb 0x18005cd31
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 0x18005cd10
mov r15, qword [rbp + 0x20]
cmp rdx, rdi
jae 0x18005cd58
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 0x18005cd40
mov qword [rbp - 0x30], r15
mov rdx, r10
lea r9, [rsi + 8]
test r11, r11
je 0x18005cd89
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 0x18005cd70
test bl, bl
je 0x18005cee8
mov rax, rdi
mov r11, r9
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005cec4
cmp rbx, rdi
jb 0x18005cec4
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r14, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005cdd4
lea rax, [rbp - 0x29]
cmp rax, r14
jae 0x18005cec4
cmp rbx, 0x40
jb 0x18005ce87
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 0x18005ce10
mov r11, r9
cmp r14, rdi
jb 0x18005cec4
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 0x18005cea0
cmp rdx, rdi
jae 0x18005cee8
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 0x18005ced0
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 0x18005cf2a
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 0x18005cf11
movzx r10d, byte [r8 + 2]
test r10b, r10b
je 0x18005d079
mov rcx, rdi
sub rcx, r10
mov rax, rcx
cmp rcx, rdi
jae 0x18005d055
cmp r10, rdi
jb 0x18005d060
lea rsi, [rcx + r8]
lea rdx, [rbp - 0x30]
add rdx, rcx
lea r11, [rsi + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x18005cf78
lea rcx, [rbp - 0x29]
cmp rcx, r11
jae 0x18005d060
cmp r10, 0x40
jb 0x18005d022
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 0x18005cfb0
cmp r11, rdi
jb 0x18005d055
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 0x18005d030
cmp rax, 8
jae 0x18005d079
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 0x18005d060
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 0x18005d0e4
lea rcx, [0x180078d44]
call fcn.18005dd6c
cmp dword [0x180078d44], 0xffffffff
jne 0x18005d0e4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x8a58c0
lea rcx, [0x180078d44]
mov qword [0x180078d50], rax
call fcn.18005dd00
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