Function at 0x18005b4f0
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 + 0x39e8]
lea r8, [rcx + 0x39d8]
movzx edi, byte [rcx + 0x39d9]
xor r9d, r9d
mov qword [rsp + 0x80], rsi
mov ecx, r9d
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 rdi, rdi
je 0x18005b565
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r8 + rcx*8 + 8]
not rax
xor qword [rbp + rcx*8 - 0x30], rax
inc rcx
cmp rcx, rdi
jb 0x18005b550
movzx r10d, byte [r8 + 2]
mov ebx, 8
movdqa xmm2, xmmword [0x18006b670]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
test r10b, r10b
je 0x18005b6e8
mov eax, ebx
mov rcx, rsi
sub rax, r10
mov rdx, rax
cmp rax, rbx
jae 0x18005b6c5
cmp r10, rbx
jb 0x18005b6c5
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r11, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005b5d4
lea rax, [rbp - 0x29]
mov rcx, rsi
cmp rax, r11
jae 0x18005b6c1
cmp r10, 0x40
jb 0x18005b687
mov r11, r10
mov r14, rbx
and r11d, 0x3f
sub r14, r11
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 [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 0x18005b610
mov rcx, rsi
cmp r11, rbx
jb 0x18005b6c1
mov rax, r10
mov r11, rbx
and eax, 7
sub r11, 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, rbx
cmp rdx, r11
jb 0x18005b6a0
mov r15, qword [rbp + 0x20]
cmp rdx, rbx
jae 0x18005b6e8
lea r11, [rcx + 8]
nop
lea rcx, [rbp - 0x30]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r11]
not al
xor byte [rcx], al
cmp rdx, rbx
jb 0x18005b6d0
mov qword [rbp - 0x30], r15
mov rcx, r9
lea r11, [rsi + 8]
test rdi, rdi
je 0x18005b714
lea rdx, [rbp - 0x30]
add rdx, r11
nop
mov rax, qword [rdx + rcx*8]
not rax
xor qword [rbp + rcx*8 - 0x30], rax
inc rcx
cmp rcx, rdi
jb 0x18005b700
test r10b, r10b
je 0x18005b877
mov rax, rbx
mov rdi, r11
sub rax, r10
mov rdx, rax
cmp rax, rbx
jae 0x18005b84f
cmp r10, rbx
jb 0x18005b84f
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r14, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005b760
lea rax, [rbp - 0x29]
cmp rax, r14
jae 0x18005b84f
cmp r10, 0x40
jb 0x18005b817
mov r14, r10
mov rdi, rbx
and r14d, 0x3f
sub rdi, 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 word [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, rdi
jb 0x18005b7a0
mov rdi, r11
cmp r14, rbx
jb 0x18005b84f
and r10d, 7
mov rax, rbx
sub rax, r10
lea rdi, [rsi + 8]
lea rcx, [rbp - 0x30]
add rcx, rdi
nop dword [rax]
movq xmm0, qword [rbp + rdx - 0x30]
movq xmm1, qword [rcx + rdx]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rdx - 0x30], xmm1
add rdx, rbx
cmp rdx, rax
jb 0x18005b830
cmp rdx, rbx
jae 0x18005b877
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rbp - 0x30]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + rdi]
not al
xor byte [rcx], al
cmp rdx, rbx
jb 0x18005b860
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]
mov rcx, qword [r8 + rax*8 + 0x18]
mov qword [rbp - 0x30], rcx
movzx ecx, byte [r8 + 1]
test cl, cl
je 0x18005b8c4
lea rdx, [rbp - 0x30]
add rdx, r11
nop word [rax + rax]
mov rax, qword [rdx + r9*8]
not rax
xor qword [rbp + r9*8 - 0x30], rax
inc r9
cmp r9, rcx
jb 0x18005b8b0
movzx r9d, byte [r8 + 2]
test r9b, r9b
je 0x18005ba19
mov rcx, rbx
sub rcx, r9
mov rax, rcx
cmp rcx, rbx
jae 0x18005b9f0
cmp r9, rbx
jb 0x18005ba00
lea rsi, [rcx + r8]
lea rdx, [rbp - 0x30]
add rdx, rcx
lea r10, [rsi + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x18005b912
lea rcx, [rbp - 0x29]
cmp rcx, r10
jae 0x18005ba00
cmp r9, 0x40
jb 0x18005b9c2
mov r10, r9
mov rdi, rbx
and r10d, 0x3f
sub rdi, r10
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 dword [rax]
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, rdi
jb 0x18005b950
cmp r10, rbx
jb 0x18005b9f0
and r9d, 7
sub rbx, r9
lea rcx, [rbp - 0x30]
add rcx, r11
movq xmm0, qword [rbp + rax - 0x30]
movq xmm1, qword [rcx + rax]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rax - 0x30], xmm1
add rax, 8
cmp rax, rbx
jb 0x18005b9d0
cmp rax, 8
jae 0x18005ba19
nop word [rax + rax]
lea rdx, [rbp - 0x30]
add rdx, rax
inc rax
movzx ecx, byte [rdx + r11]
not cl
xor byte [rdx], cl
cmp rax, 8
jb 0x18005ba00
mov ecx, dword [0x1800763c4]
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 [0x180076d04], ecx
jle 0x18005ba84
lea rcx, [0x180076d04]
call fcn.18005c43c
cmp dword [0x180076d04], 0xffffffff
jne 0x18005ba84
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x821730
lea rcx, [0x180076d04]
mov qword [0x180076d10], rax
call fcn.18005c3d0
mov rbx, qword [0x180076d10]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x30]
mov r8, qword [rax + 0x21a07f0]
add r8, 0x270
call rbx
mov rax, qword [rbp + 0x28]
add rsp, 0x50
pop rdi
pop rbx
pop rbp
ret