Function at 0x180052c80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
movaps xmmword [rsp + 0x100], xmm6
mov dword [rbp + 0x58], 0
cmp byte [0x180210ba4], 0
jne 0x1800533aa
mov byte [0x180210ba4], 1
mov r13, qword [rcx]
test r13, r13
jne 0x180052ebb
movups xmm0, xmmword [0x1800ee3f0]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x1800ee400]
movups xmmword [rsp + 0x70], xmm1
mov eax, dword [0x1800ee410]
mov dword [rbp - 0x80], eax
xor r8d, r8d
cmp dword [0x180111088], 2
jl 0x180052e35
movdqa xmm5, xmmword [0x1800fdb80]
movdqa xmm4, xmmword [0x1800fdde0]
movdqa xmm6, xmmword [0x1800fdbf0]
movdqa xmm0, xmmword [0x1800fdd10]
movdqa xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x64]
mov edx, dword [rsp + 0x20]
nop dword [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800fdcf0]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800fdcf0]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x20
jl 0x180052d30
cmp r8d, 0x24
jge 0x180052e70
movsxd rax, r8d
lea r9, [rsp + 0x60]
add r9, rax
mov eax, 0x4bda12f7
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x36
movzx eax, r8b
sub al, cl
add al, 0x30
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x24
jl 0x180052e40
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
lea rax, [rsp + 0x60]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x180052e96
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.1800138c0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.180028d30
xor r8d, r8d
mov dword [rbp + 0x60], r8d
mov rdi, qword [rbp + 0x58]
mov r12, qword [rbp + 0x58]
nop word [rax + rax]
mov rcx, qword [r13]
test rcx, rcx
je 0x18005337d
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rcx, rdx
jbe 0x18005337d
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rcx, rax
jae 0x18005337d
cmp byte [rcx], 0xe9
jne 0x180052f39
movsxd rsi, dword [rcx + 1]
add rsi, 5
add rsi, rcx
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rsi, rdx
jbe 0x180052f39
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jb 0x180052f3c
mov rsi, rcx
movdqa xmm0, xmmword [0x1800fdc60]
movdqu xmmword [rbp - 0x70], xmm0
movdqa xmm1, xmmword [0x1800fdeb0]
movdqu xmmword [rbp - 0x60], xmm1
movdqa xmm0, xmmword [0x1800fdc40]
movdqu xmmword [rbp - 0x50], xmm0
mov dword [rbp - 0x40], 0x85
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov qword [rsp + 0x50], 0
mov ecx, 0x34
call fcn.1800b53b0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
lea rbx, [rax + 0x34]
mov qword [rsp + 0x50], rbx
mov r8d, 0x34
lea rdx, [rbp - 0x70]
mov rcx, rax
call fcn.1800dce90
mov qword [rsp + 0x48], rbx
mov r14d, dword [rbp + 0x58]
or r14d, 1
mov dword [rbp + 0x58], r14d
mov r10, qword [rsp + 0x40]
sub rbx, r10
sar rbx, 2
mov r15d, 0x50
sub r15, rbx
je 0x18005301d
xor edx, edx
xor r9d, r9d
xor r11d, r11d
test rbx, rbx
je 0x180053010
xor eax, eax
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r10 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rsi]
cmp eax, r8d
je 0x180053007
cmp r8d, 0xffffffff
jne 0x180053059
inc edx
mov eax, edx
cmp rax, rbx
jb 0x180052ff0
lea rax, [r11 + rsi]
test rax, rax
jne 0x18005325d
mov rcx, qword [r13]
cmp byte [rcx], 0xe9
jne 0x180053072
movsxd rsi, dword [rcx + 1]
add rsi, 5
add rsi, rcx
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rsi, rdx
jbe 0x18005306e
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jae 0x18005306e
mov r14d, dword [rbp + 0x58]
jmp 0x180053075
inc r9d
inc r11
movsxd rax, r9d
cmp rax, r15
jae 0x18005301d
xor edx, edx
jmp 0x180052fe0
mov r14d, dword [rbp + 0x58]
mov rsi, rcx
movdqa xmm0, xmmword [0x1800fde80]
movdqu xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [0x1800fdc30]
movdqu xmmword [rsp + 0x70], xmm1
movdqa xmm0, xmmword [0x1800fdbb0]
movdqu xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x20], xmm1
mov qword [rsp + 0x30], 0
mov ecx, 0x30
call fcn.1800b53b0
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
lea rbx, [rax + 0x30]
mov qword [rsp + 0x30], rbx
mov r8d, 0x30
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.1800dce90
mov qword [rsp + 0x28], rbx
or r14d, 2
mov dword [rbp + 0x58], r14d
mov r11, qword [rsp + 0x20]
sub rbx, r11
sar rbx, 2
mov r15d, 0x50
sub r15, rbx
je 0x180053165
xor edx, edx
xor r9d, r9d
xor r10d, r10d
test rbx, rbx
je 0x180053140
xor eax, eax
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r11 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rsi]
cmp eax, r8d
je 0x180053137
cmp r8d, 0xffffffff
jne 0x180053153
inc edx
mov eax, edx
cmp rax, rbx
jb 0x180053120
lea rax, [r10 + rsi]
test rax, rax
je 0x180053165
mov r10, qword [rsp + 0x40]
jmp 0x180053262
inc r9d
inc r10
movsxd rax, r9d
cmp rax, r15
jae 0x180053165
xor edx, edx
jmp 0x180053111
mov rcx, qword [r13]
cmp byte [rcx], 0xe9
jne 0x1800531a5
movsxd rbx, dword [rcx + 1]
add rbx, 5
add rbx, rcx
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rbx, rdx
jbe 0x1800531a1
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rbx, rax
jae 0x1800531a1
mov r14d, dword [rbp + 0x58]
jmp 0x1800531a8
mov r14d, dword [rbp + 0x58]
mov rbx, rcx
movdqa xmm0, xmmword [0x1800fde50]
movdqu xmmword [rbp - 0x38], xmm0
movdqa xmm1, xmmword [0x1800fdc30]
movdqu xmmword [rbp - 0x28], xmm1
movdqa xmm0, xmmword [0x1800fdc80]
movdqu xmmword [rbp - 0x18], xmm0
mov ecx, 0x30
call fcn.1800b53b0
mov rdi, rax
lea r12, [rax + 0x30]
mov r8d, 0x30
lea rdx, [rbp - 0x38]
mov rcx, rax
call fcn.1800dce90
or r14d, 4
mov dword [rbp + 0x58], r14d
xor eax, eax
xor r9d, r9d
xor r10d, r10d
xor ecx, ecx
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rdi + rcx*4]
lea ecx, [rax + r9]
movzx ecx, byte [rcx + rbx]
cmp ecx, r8d
je 0x180053227
cmp r8d, 0xffffffff
jne 0x180053248
inc eax
mov ecx, eax
cmp rcx, 0xc
jb 0x180053210
lea rax, [r10 + rbx]
test rax, rax
jne 0x180053258
xor bl, bl
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
jmp 0x180053264
inc r9d
inc r10
cmp r9d, 0x44
jae 0x18005323a
xor eax, eax
jmp 0x180053202
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
mov bl, 1
test r14b, 4
je 0x1800532c2
and r14d, 0xfffffffb
mov dword [rbp + 0x58], r14d
test rdi, rdi
je 0x1800532c2
sub r12, rdi
sar r12, 2
lea rdx, [r12*4]
cmp rdx, 0x1000
jb 0x1800532ab
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x1800533e0
mov rdi, rcx
mov rcx, rdi
call fcn.1800b53a8
xor edi, edi
xor r12d, r12d
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
test r14b, 2
je 0x18005332d
and r14d, 0xfffffffd
mov dword [rbp + 0x58], r14d
test r11, r11
je 0x18005332d
mov rax, qword [rsp + 0x30]
sub rax, r11
sar rax, 2
lea rdx, [rax*4]
mov rax, r11
cmp rdx, 0x1000
jb 0x18005330e
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800533e6
mov rcx, r11
call fcn.1800b53a8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], 0
mov r10, qword [rsp + 0x40]
test r14b, 1
je 0x180053375
and r14d, 0xfffffffe
mov dword [rbp + 0x58], r14d
test r10, r10
je 0x180053375
mov rdx, qword [rsp + 0x50]
sub rdx, r10
and rdx, 0xfffffffffffffffc
mov rax, r10
cmp rdx, 0x1000
jb 0x18005336d
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800533da
mov rcx, r10
call fcn.1800b53a8
test bl, bl
jne 0x1800533cd
mov r8d, dword [rbp + 0x60]
inc r8d
mov dword [rbp + 0x60], r8d
add r13, 8
cmp r8d, 0x100
jl 0x180052ed0
cmp qword [0x180210aa8], 0
jne 0x1800533aa
mov qword [0x180210aa8], 0xd0
mov rbx, qword [rsp + 0x150]
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movsxd rax, dword [rbp + 0x60]
mov qword [0x180210aa8], rax
jmp 0x1800533aa
call fcn.1800bc20c
nop
call fcn.1800bc20c
nop
call fcn.1800bc20c
int3