Function at 0x180052ce0
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 [0x180210bac], 0
jne 0x18005342a
mov byte [0x180210bac], 1
mov r13, qword [rcx]
test r13, r13
jne 0x180052f35
movups xmm0, xmmword [0x1800ee8b8]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x1800ee8c8]
movups xmmword [rsp + 0x70], xmm1
mov eax, dword [0x1800ee8d8]
mov dword [rbp - 0x80], eax
xor r8d, r8d
cmp dword [0x180111088], 2
jl 0x180052e9d
movdqa xmm5, xmmword [0x1800fdbc0]
movdqa xmm4, xmmword [0x1800fde60]
movdqa xmm6, xmmword [0x1800fdc20]
movdqa xmm0, xmmword [0x1800fdd60]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x1800fdd30]
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
paddd xmm1, xmm3
psrad xmm1, 5
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 [0x1800fdd30]
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 0x180052d90
cmp r8d, 0x24
jge 0x180052ee3
movsxd rax, r8d
lea r9, [rsp + 0x60]
add r9, rax
nop dword [rax + rax]
mov eax, 0xa0a0a0a1
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x32
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x24
jl 0x180052eb0
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
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180052f10
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.180013880
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.180028c40
xor r8d, r8d
mov dword [rbp + 0x60], r8d
mov rdi, qword [rbp + 0x58]
mov r12, qword [rbp + 0x58]
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [r13]
test rcx, rcx
je 0x1800533fd
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rcx, rdx
jbe 0x1800533fd
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rcx, rax
jae 0x1800533fd
cmp byte [rcx], 0xe9
jne 0x180052fb9
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 0x180052fb9
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jb 0x180052fbc
mov rsi, rcx
movdqa xmm0, xmmword [0x1800fdcb0]
movdqu xmmword [rbp - 0x70], xmm0
movdqa xmm1, xmmword [0x1800fded0]
movdqu xmmword [rbp - 0x60], xmm1
movdqa xmm0, xmmword [0x1800fdc90]
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.1800b5540
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.1800dd020
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 0x18005309d
xor edx, edx
xor r9d, r9d
xor r11d, r11d
test rbx, rbx
je 0x180053090
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 0x180053087
cmp r8d, 0xffffffff
jne 0x1800530d9
inc edx
mov eax, edx
cmp rax, rbx
jb 0x180053070
lea rax, [r11 + rsi]
test rax, rax
jne 0x1800532dd
mov rcx, qword [r13]
cmp byte [rcx], 0xe9
jne 0x1800530f2
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 0x1800530ee
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jae 0x1800530ee
mov r14d, dword [rbp + 0x58]
jmp 0x1800530f5
inc r9d
inc r11
movsxd rax, r9d
cmp rax, r15
jae 0x18005309d
xor edx, edx
jmp 0x180053060
mov r14d, dword [rbp + 0x58]
mov rsi, rcx
movdqa xmm0, xmmword [0x1800fdea0]
movdqu xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [0x1800fdc80]
movdqu xmmword [rsp + 0x70], xmm1
movdqa xmm0, xmmword [0x1800fdbf0]
movdqu xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x20], xmm1
mov qword [rsp + 0x30], 0
mov ecx, 0x30
call fcn.1800b5540
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.1800dd020
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 0x1800531e5
xor edx, edx
xor r9d, r9d
xor r10d, r10d
test rbx, rbx
je 0x1800531c0
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 0x1800531b7
cmp r8d, 0xffffffff
jne 0x1800531d3
inc edx
mov eax, edx
cmp rax, rbx
jb 0x1800531a0
lea rax, [r10 + rsi]
test rax, rax
je 0x1800531e5
mov r10, qword [rsp + 0x40]
jmp 0x1800532e2
inc r9d
inc r10
movsxd rax, r9d
cmp rax, r15
jae 0x1800531e5
xor edx, edx
jmp 0x180053191
mov rcx, qword [r13]
cmp byte [rcx], 0xe9
jne 0x180053225
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 0x180053221
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rbx, rax
jae 0x180053221
mov r14d, dword [rbp + 0x58]
jmp 0x180053228
mov r14d, dword [rbp + 0x58]
mov rbx, rcx
movdqa xmm0, xmmword [0x1800fde70]
movdqu xmmword [rbp - 0x38], xmm0
movdqa xmm1, xmmword [0x1800fdc80]
movdqu xmmword [rbp - 0x28], xmm1
movdqa xmm0, xmmword [0x1800fdcd0]
movdqu xmmword [rbp - 0x18], xmm0
mov ecx, 0x30
call fcn.1800b5540
mov rdi, rax
lea r12, [rax + 0x30]
mov r8d, 0x30
lea rdx, [rbp - 0x38]
mov rcx, rax
call fcn.1800dd020
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 0x1800532a7
cmp r8d, 0xffffffff
jne 0x1800532c8
inc eax
mov ecx, eax
cmp rcx, 0xc
jb 0x180053290
lea rax, [r10 + rbx]
test rax, rax
jne 0x1800532d8
xor bl, bl
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
jmp 0x1800532e4
inc r9d
inc r10
cmp r9d, 0x44
jae 0x1800532ba
xor eax, eax
jmp 0x180053282
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
mov bl, 1
test r14b, 4
je 0x180053342
and r14d, 0xfffffffb
mov dword [rbp + 0x58], r14d
test rdi, rdi
je 0x180053342
sub r12, rdi
sar r12, 2
lea rdx, [r12*4]
cmp rdx, 0x1000
jb 0x18005332b
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x180053460
mov rdi, rcx
mov rcx, rdi
call fcn.1800b5538
xor edi, edi
xor r12d, r12d
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
test r14b, 2
je 0x1800533ad
and r14d, 0xfffffffd
mov dword [rbp + 0x58], r14d
test r11, r11
je 0x1800533ad
mov rax, qword [rsp + 0x30]
sub rax, r11
sar rax, 2
lea rdx, [rax*4]
mov rax, r11
cmp rdx, 0x1000
jb 0x18005338e
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180053466
mov rcx, r11
call fcn.1800b5538
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], 0
mov r10, qword [rsp + 0x40]
test r14b, 1
je 0x1800533f5
and r14d, 0xfffffffe
mov dword [rbp + 0x58], r14d
test r10, r10
je 0x1800533f5
mov rdx, qword [rsp + 0x50]
sub rdx, r10
and rdx, 0xfffffffffffffffc
mov rax, r10
cmp rdx, 0x1000
jb 0x1800533ed
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005345a
mov rcx, r10
call fcn.1800b5538
test bl, bl
jne 0x18005344d
mov r8d, dword [rbp + 0x60]
inc r8d
mov dword [rbp + 0x60], r8d
add r13, 8
cmp r8d, 0x100
jl 0x180052f50
cmp qword [0x180210ab0], 0
jne 0x18005342a
mov qword [0x180210ab0], 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 [0x180210ab0], rax
jmp 0x18005342a
call fcn.1800bc39c
nop
call fcn.1800bc39c
nop
call fcn.1800bc39c
int3