Function at 0x180055bf0
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 + 0x4560]
lea r8, [rcx + 0x4550]
movzx ebx, byte [rcx + 0x4551]
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 0x180055c45
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 0x180055c30
movzx r10d, byte [r8 + 2]
mov r11d, 8
movdqa xmm2, xmmword [0x1800625b0]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
test r10b, r10b
je 0x180055dc8
mov eax, r11d
sub rax, r10
mov rdx, rax
cmp rax, r11
jae 0x180055da1
cmp r10, r11
jb 0x180055da6
lea rdi, [rax + r8]
lea rcx, [rbp - 0x20]
add rcx, rax
lea rsi, [rdi + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x180055cb0
lea rax, [rbp - 0x19]
cmp rax, rsi
jae 0x180055da6
cmp r10, 0x40
jb 0x180055d67
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 0x180055cf0
mov r12, qword [rsp + 0x70]
cmp rsi, r11
jb 0x180055da1
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 0x180055d80
cmp rdx, r11
jae 0x180055dc8
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 0x180055db0
mov qword [rbp - 0x20], r13
mov rcx, r9
mov r13, qword [rsp + 0x78]
test rbx, rbx
je 0x180055df5
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 0x180055de0
test r10b, r10b
je 0x180055f49
mov rax, r11
sub rax, r10
mov rdx, rax
cmp rax, r11
jae 0x180055f21
cmp r10, r11
jb 0x180055f26
lea rbx, [rax + r8]
lea rcx, [rbp - 0x20]
add rcx, rax
lea rdi, [rbx + 8]
lea rax, [r8 + 0xf]
cmp rcx, rax
ja 0x180055e3e
lea rax, [rbp - 0x19]
cmp rax, rdi
jae 0x180055f26
cmp r10, 0x40
jb 0x180055ef2
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 0x180055e80
cmp rdi, r11
jb 0x180055f21
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 0x180055f00
cmp rdx, r11
jae 0x180055f49
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 0x180055f30
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 0x180055f85
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 0x180055f70
movzx r9d, byte [r8 + 2]
test r9b, r9b
je 0x1800560da
mov rcx, r11
sub rcx, r9
mov rax, rcx
cmp rcx, r11
jae 0x1800560b2
cmp r9, r11
jb 0x1800560b8
lea r10, [rcx + r8]
lea rdx, [rbp - 0x20]
add rdx, rcx
lea rbx, [r10 + 8]
lea rcx, [r8 + 0xf]
cmp rdx, rcx
ja 0x180055fd3
lea rcx, [rbp - 0x19]
cmp rcx, rbx
jae 0x1800560b8
cmp r9, 0x40
jb 0x180056082
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 0x180056010
cmp rbx, r11
jb 0x1800560b2
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 0x180056090
cmp rax, 8
jae 0x1800560da
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 0x1800560c0
mov ecx, dword [0x18006c384]
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 [0x18006cca4], ecx
jle 0x18005613d
lea rcx, [0x18006cca4]
call fcn.1800569c8
cmp dword [0x18006cca4], 0xffffffff
jne 0x18005613d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add rax, 0x914d10
lea rcx, [0x18006cca4]
mov qword [0x18006ccb0], rax
call fcn.18005695c
mov rbx, qword [0x18006ccb0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x20]
mov r8, qword [rax + 0x2322e80]
add r8, 0x270
call rbx
mov rax, qword [rbp + 0x28]
add rsp, 0x40
pop rdi
pop rbx
pop rbp
ret