Function at 0x180054820
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x40
movzx eax, byte [rcx + 0x4580]
lea r8, [rcx + 0x4570]
movzx ebx, byte [rcx + 0x4571]
xor r9d, r9d
mov qword [rsp + 0x78], r13
mov ecx, r9d
mov r13, qword [r8 + rax*8 + 0x18]
mov qword [rbp - 0x20], r13
test rbx, rbx
je 0x180054875
nop dword [rax]
mov rax, qword [r8 + rcx*8 + 8]
not rax
xor qword [rbp + rcx*8 - 0x20], rax
inc rcx
cmp rcx, rbx
jb 0x180054860
movzx r10d, byte [r8 + 2]
mov r11d, 8
movdqa xmm2, xmmword [0x180061450]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
test r10b, r10b
je 0x1800549f8
mov eax, r11d
sub rax, r10
mov rdx, rax
cmp rax, r11
jae 0x1800549d1
cmp r10, r11
jb 0x1800549d6
lea rdi, [rax + r8]
lea rcx, [rbp - 0x20]
add rcx, rax
lea rsi, [rdi + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x1800548e0
lea rax, [rbp - 0x19]
cmp rax, rsi
jae 0x1800549d6
cmp r10, 0x40
jb 0x180054997
mov rsi, r10
mov qword [rsp + 0x70], r12
and esi, 0x3f
mov r14, r11
sub r14, rsi
lea rax, [rbp - 0x20]
add rdi, 0x18
lea rcx, [rbp - 0x10]
sub rax, r8
lea r15, [rbp - 0x18]
sub rcx, r8
sub r15, r8
lea r12, [rbp - 8]
sub r12, r8
nop dword [rax + rax]
movdqu xmm0, xmmword [rax + rdi - 0x18]
add rdx, 0x40
movdqu xmm1, xmmword [rdi - 0x10]
lea rdi, [rdi + 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rax + rdi - 0x58], xmm1
movdqu xmm0, xmmword [rcx + rdi - 0x58]
movdqu xmm1, xmmword [rdi - 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + rdi - 0x58], xmm1
movdqu xmm0, xmmword [r15 + rdi - 0x40]
movdqu xmm1, xmmword [rdi - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r15 + rdi - 0x40], xmm1
movdqu xmm0, xmmword [r12 + rdi - 0x40]
movdqu xmm1, xmmword [rdi - 0x20]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r12 + rdi - 0x40], xmm1
cmp rdx, r14
jb 0x180054920
mov r12, qword [rsp + 0x70]
cmp rsi, r11
jb 0x1800549d1
mov rax, r10
mov rcx, r11
and eax, 7
sub rcx, rax
nop dword [rax]
nop word [rax + rax]
movq xmm0, qword [rbp + rdx - 0x20]
movq xmm1, qword [r8 + rdx + 8]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rdx - 0x20], xmm1
add rdx, r11
cmp rdx, rcx
jb 0x1800549b0
cmp rdx, r11
jae 0x1800549f8
lea rax, [rbp - 0x20]
mov rdi, r8
sub rdi, rax
lea rcx, [rbp - 0x20]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + rdi + 8]
not al
xor byte [rcx], al
cmp rdx, r11
jb 0x1800549e0
mov qword [rbp - 0x20], r13
mov rcx, r9
mov r13, qword [rsp + 0x78]
test rbx, rbx
je 0x180054a25
nop dword [rax]
mov rax, qword [r8 + rcx*8 + 8]
not rax
xor qword [rbp + rcx*8 - 0x20], rax
inc rcx
cmp rcx, rbx
jb 0x180054a10
test r10b, r10b
je 0x180054b79
mov rax, r11
sub rax, r10
mov rdx, rax
cmp rax, r11
jae 0x180054b51
cmp r10, r11
jb 0x180054b56
lea rbx, [rax + r8]
lea rcx, [rbp - 0x20]
add rcx, rax
lea rdi, [rbx + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x180054a6e
lea rax, [rbp - 0x19]
cmp rax, rdi
jae 0x180054b56
cmp r10, 0x40
jb 0x180054b22
mov rdi, r10
mov rsi, r11
and edi, 0x3f
sub rsi, rdi
lea rax, [rbx + 0x18]
lea rbx, [rbp - 0x10]
lea rcx, [rbp - 0x20]
sub rbx, r8
lea r14, [rbp - 0x18]
sub rcx, r8
sub r14, r8
lea r15, [rbp - 8]
sub r15, r8
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx + rax - 0x18]
add rdx, 0x40
movdqu xmm1, xmmword [rax - 0x10]
lea rax, [rax + 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rcx + rax - 0x58], xmm1
movdqu xmm0, xmmword [rbx + rax - 0x58]
movdqu xmm1, xmmword [rax - 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rbx + rax - 0x58], xmm1
movdqu xmm0, xmmword [r14 + rax - 0x40]
movdqu xmm1, xmmword [rax - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r14 + rax - 0x40], xmm1
movdqu xmm0, xmmword [r15 + rax - 0x40]
movdqu xmm1, xmmword [rax - 0x20]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r15 + rax - 0x40], xmm1
cmp rdx, rsi
jb 0x180054ab0
cmp rdi, r11
jb 0x180054b51
and r10d, 7
mov rax, r11
sub rax, r10
nop dword [rax]
movq xmm0, qword [rbp + rdx - 0x20]
movq xmm1, qword [r8 + rdx + 8]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rdx - 0x20], xmm1
add rdx, r11
cmp rdx, rax
jb 0x180054b30
cmp rdx, r11
jae 0x180054b79
lea rax, [rbp - 0x20]
mov r10, r8
sub r10, rax
lea rcx, [rbp - 0x20]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r10 + 8]
not al
xor byte [rcx], al
cmp rdx, r11
jb 0x180054b60
mov rax, qword [rbp - 0x20]
mov r15, qword [rsp + 0x30]
or dword [rax + 0x5c], 4
movzx eax, byte [r8 + 0x10]
mov rcx, qword [r8 + rax*8 + 0x18]
mov qword [rbp - 0x20], rcx
movzx ecx, byte [r8 + 1]
test cl, cl
je 0x180054bb5
nop dword [rax]
mov rax, qword [r8 + r9*8 + 8]
not rax
xor qword [rbp + r9*8 - 0x20], rax
inc r9
cmp r9, rcx
jb 0x180054ba0
movzx r9d, byte [r8 + 2]
test r9b, r9b
je 0x180054d0a
mov rcx, r11
sub rcx, r9
mov rax, rcx
cmp rcx, r11
jae 0x180054ce2
cmp r9, r11
jb 0x180054ce8
lea r10, [rcx + r8]
lea rdx, [rbp - 0x20]
add rdx, rcx
lea rbx, [r10 + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x180054c03
lea rcx, [rbp - 0x19]
cmp rcx, rbx
jae 0x180054ce8
cmp r9, 0x40
jb 0x180054cb2
mov rbx, r9
mov rdi, r11
and ebx, 0x3f
sub rdi, rbx
lea rcx, [r10 + 0x18]
lea r10, [rbp - 0x10]
lea rdx, [rbp - 0x20]
sub r10, r8
lea rsi, [rbp - 0x18]
sub rdx, r8
sub rsi, r8
lea r14, [rbp - 8]
sub r14, r8
nop dword [rax]
movdqu xmm0, xmmword [rdx + rcx - 0x18]
add rax, 0x40
movdqu xmm1, xmmword [rcx - 0x10]
lea rcx, [rcx + 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rdx + rcx - 0x58], xmm1
movdqu xmm0, xmmword [r10 + rcx - 0x58]
movdqu xmm1, xmmword [rcx - 0x40]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r10 + rcx - 0x58], xmm1
movdqu xmm0, xmmword [rsi + rcx - 0x40]
movdqu xmm1, xmmword [rcx - 0x30]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rsi + rcx - 0x40], xmm1
movdqu xmm0, xmmword [r14 + rcx - 0x40]
movdqu xmm1, xmmword [rcx - 0x20]
andnps xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [r14 + rcx - 0x40], xmm1
cmp rax, rdi
jb 0x180054c40
cmp rbx, r11
jb 0x180054ce2
and r9d, 7
sub r11, r9
nop dword [rax]
movq xmm0, qword [rbp + rax - 0x20]
movq xmm1, qword [r8 + rax + 8]
andnps xmm1, xmm2
xorps xmm1, xmm0
movq qword [rbp + rax - 0x20], xmm1
add rax, 8
cmp rax, r11
jb 0x180054cc0
cmp rax, 8
jae 0x180054d0a
lea rcx, [rbp - 0x20]
sub r8, rcx
nop
lea rdx, [rbp - 0x20]
add rdx, rax
inc rax
movzx ecx, byte [r8 + rdx + 8]
not cl
xor byte [rdx], cl
cmp rax, 8
jb 0x180054cf0
mov ecx, dword [0x18006b384]
mov rax, qword gs:[0x58]
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x60]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x18006bca4], ecx
jle 0x180054d6d
lea rcx, [0x18006bca4]
call fcn.1800555f8
cmp dword [0x18006bca4], 0xffffffff
jne 0x180054d6d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x927130
lea rcx, [0x18006bca4]
mov qword [0x18006bcb0], rax
call fcn.18005558c
mov rbx, qword [0x18006bcb0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x20]
mov r8, qword [rax + 0x23048e8]
add r8, 0x270
call rbx
mov rax, qword [rbp + 0x28]
add rsp, 0x40
pop rdi
pop rbx
pop rbp
ret