Function at 0x18005a860
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 + 0x3a30]
lea r8, [rcx + 0x3a20]
movzx r11d, byte [rcx + 0x3a21]
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 0x18005a8d5
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 0x18005a8c0
movzx ebx, byte [r8 + 2]
mov edi, 8
movdqa xmm2, xmmword [0x18006a5b0]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
test bl, bl
je 0x18005aa58
mov eax, edi
mov rcx, rsi
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005aa35
cmp rbx, rdi
jb 0x18005aa35
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r9, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005a943
lea rax, [rbp - 0x29]
mov rcx, rsi
cmp rax, r9
jae 0x18005aa31
cmp rbx, 0x40
jb 0x18005a9f7
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 0x18005a980
mov rcx, rsi
cmp r9, rdi
jb 0x18005aa31
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 0x18005aa10
mov r15, qword [rbp + 0x20]
cmp rdx, rdi
jae 0x18005aa58
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 0x18005aa40
mov qword [rbp - 0x30], r15
mov rdx, r10
lea r9, [rsi + 8]
test r11, r11
je 0x18005aa89
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 0x18005aa70
test bl, bl
je 0x18005abe8
mov rax, rdi
mov r11, r9
sub rax, rbx
mov rdx, rax
cmp rax, rdi
jae 0x18005abc4
cmp rbx, rdi
jb 0x18005abc4
lea r15, [rax + r8]
lea rcx, [rbp - 0x30]
add rcx, rax
lea r14, [r15 + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x18005aad4
lea rax, [rbp - 0x29]
cmp rax, r14
jae 0x18005abc4
cmp rbx, 0x40
jb 0x18005ab87
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 0x18005ab10
mov r11, r9
cmp r14, rdi
jb 0x18005abc4
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 0x18005aba0
cmp rdx, rdi
jae 0x18005abe8
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 0x18005abd0
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 0x18005ac2a
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 0x18005ac11
movzx r10d, byte [r8 + 2]
test r10b, r10b
je 0x18005ad79
mov rcx, rdi
sub rcx, r10
mov rax, rcx
cmp rcx, rdi
jae 0x18005ad55
cmp r10, rdi
jb 0x18005ad60
lea rsi, [rcx + r8]
lea rdx, [rbp - 0x30]
add rdx, rcx
lea r11, [rsi + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x18005ac78
lea rcx, [rbp - 0x29]
cmp rcx, r11
jae 0x18005ad60
cmp r10, 0x40
jb 0x18005ad22
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 0x18005acb0
cmp r11, rdi
jb 0x18005ad55
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 0x18005ad30
cmp rax, 8
jae 0x18005ad79
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 0x18005ad60
mov ecx, dword [0x1800753c4]
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 [0x180075cf4], ecx
jle 0x18005ade4
lea rcx, [0x180075cf4]
call fcn.18005b7cc
cmp dword [0x180075cf4], 0xffffffff
jne 0x18005ade4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x8b0800
lea rcx, [0x180075cf4]
mov qword [0x180075d00], rax
call fcn.18005b760
mov rbx, qword [0x180075d00]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x30]
mov r8, qword [rax + 0x2231510]
add r8, 0x270
call rbx
mov rax, qword [rbp + 0x28]
add rsp, 0x50
pop rdi
pop rbx
pop rbp
ret