Function at 0x180052de0
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 [0x180210b9c], 0
jne 0x18005350a
mov byte [0x180210b9c], 1
mov r13, qword [rcx]
test r13, r13
jne 0x18005301a
movups xmm0, xmmword [0x1800eebc0]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x1800eebd0]
movups xmmword [rsp + 0x70], xmm1
mov eax, dword [0x1800eebe0]
mov dword [rbp - 0x80], eax
xor r8d, r8d
cmp dword [0x180111088], 2
jl 0x180052f95
movdqa xmm5, xmmword [0x1800fdc00]
movdqa xmm4, xmmword [0x1800fdda0]
movdqa xmm6, xmmword [0x1800fdca0]
movdqa xmm0, xmmword [0x1800fddb0]
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, 1
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 [0x1800fdd90]
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, 1
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 [0x1800fdd90]
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 0x180052e90
cmp r8d, 0x24
jge 0x180052fcf
movsxd rax, r8d
lea r9, [rsp + 0x60]
add r9, rax
mov eax, 0x94f2095
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x30
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x24
jl 0x180052fa0
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 0x180052ff5
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.180013b40
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.180028f80
xor r8d, r8d
mov dword [rbp + 0x60], r8d
mov rdi, qword [rbp + 0x58]
mov r12, qword [rbp + 0x58]
nop dword [rax]
mov rcx, qword [r13]
test rcx, rcx
je 0x1800534dd
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rcx, rdx
jbe 0x1800534dd
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rcx, rax
jae 0x1800534dd
cmp byte [rcx], 0xe9
jne 0x180053099
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 0x180053099
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jb 0x18005309c
mov rsi, rcx
movdqa xmm0, xmmword [0x1800fdd10]
movdqu xmmword [rbp - 0x70], xmm0
movdqa xmm1, xmmword [0x1800fdf50]
movdqu xmmword [rbp - 0x60], xmm1
movdqa xmm0, xmmword [0x1800fdcf0]
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.1800b54a0
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.1800dcf80
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 0x18005317d
xor edx, edx
xor r9d, r9d
xor r11d, r11d
test rbx, rbx
je 0x180053170
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 0x180053167
cmp r8d, 0xffffffff
jne 0x1800531b9
inc edx
mov eax, edx
cmp rax, rbx
jb 0x180053150
lea rax, [r11 + rsi]
test rax, rax
jne 0x1800533bd
mov rcx, qword [r13]
cmp byte [rcx], 0xe9
jne 0x1800531d2
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 0x1800531ce
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jae 0x1800531ce
mov r14d, dword [rbp + 0x58]
jmp 0x1800531d5
inc r9d
inc r11
movsxd rax, r9d
cmp rax, r15
jae 0x18005317d
xor edx, edx
jmp 0x180053140
mov r14d, dword [rbp + 0x58]
mov rsi, rcx
movdqa xmm0, xmmword [0x1800fdf20]
movdqu xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [0x1800fdce0]
movdqu xmmword [rsp + 0x70], xmm1
movdqa xmm0, xmmword [0x1800fdc30]
movdqu xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x20], xmm1
mov qword [rsp + 0x30], 0
mov ecx, 0x30
call fcn.1800b54a0
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.1800dcf80
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 0x1800532c5
xor edx, edx
xor r9d, r9d
xor r10d, r10d
test rbx, rbx
je 0x1800532a0
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 0x180053297
cmp r8d, 0xffffffff
jne 0x1800532b3
inc edx
mov eax, edx
cmp rax, rbx
jb 0x180053280
lea rax, [r10 + rsi]
test rax, rax
je 0x1800532c5
mov r10, qword [rsp + 0x40]
jmp 0x1800533c2
inc r9d
inc r10
movsxd rax, r9d
cmp rax, r15
jae 0x1800532c5
xor edx, edx
jmp 0x180053271
mov rcx, qword [r13]
cmp byte [rcx], 0xe9
jne 0x180053305
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 0x180053301
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rbx, rax
jae 0x180053301
mov r14d, dword [rbp + 0x58]
jmp 0x180053308
mov r14d, dword [rbp + 0x58]
mov rbx, rcx
movdqa xmm0, xmmword [0x1800fdef0]
movdqu xmmword [rbp - 0x38], xmm0
movdqa xmm1, xmmword [0x1800fdce0]
movdqu xmmword [rbp - 0x28], xmm1
movdqa xmm0, xmmword [0x1800fdd30]
movdqu xmmword [rbp - 0x18], xmm0
mov ecx, 0x30
call fcn.1800b54a0
mov rdi, rax
lea r12, [rax + 0x30]
mov r8d, 0x30
lea rdx, [rbp - 0x38]
mov rcx, rax
call fcn.1800dcf80
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 0x180053387
cmp r8d, 0xffffffff
jne 0x1800533a8
inc eax
mov ecx, eax
cmp rcx, 0xc
jb 0x180053370
lea rax, [r10 + rbx]
test rax, rax
jne 0x1800533b8
xor bl, bl
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
jmp 0x1800533c4
inc r9d
inc r10
cmp r9d, 0x44
jae 0x18005339a
xor eax, eax
jmp 0x180053362
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
mov bl, 1
test r14b, 4
je 0x180053422
and r14d, 0xfffffffb
mov dword [rbp + 0x58], r14d
test rdi, rdi
je 0x180053422
sub r12, rdi
sar r12, 2
lea rdx, [r12*4]
cmp rdx, 0x1000
jb 0x18005340b
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x180053540
mov rdi, rcx
mov rcx, rdi
call fcn.1800b5498
xor edi, edi
xor r12d, r12d
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x20]
test r14b, 2
je 0x18005348d
and r14d, 0xfffffffd
mov dword [rbp + 0x58], r14d
test r11, r11
je 0x18005348d
mov rax, qword [rsp + 0x30]
sub rax, r11
sar rax, 2
lea rdx, [rax*4]
mov rax, r11
cmp rdx, 0x1000
jb 0x18005346e
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180053546
mov rcx, r11
call fcn.1800b5498
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], 0
mov r10, qword [rsp + 0x40]
test r14b, 1
je 0x1800534d5
and r14d, 0xfffffffe
mov dword [rbp + 0x58], r14d
test r10, r10
je 0x1800534d5
mov rdx, qword [rsp + 0x50]
sub rdx, r10
and rdx, 0xfffffffffffffffc
mov rax, r10
cmp rdx, 0x1000
jb 0x1800534cd
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005353a
mov rcx, r10
call fcn.1800b5498
test bl, bl
jne 0x18005352d
mov r8d, dword [rbp + 0x60]
inc r8d
mov dword [rbp + 0x60], r8d
add r13, 8
cmp r8d, 0x100
jl 0x180053030
cmp qword [0x180210aa8], 0
jne 0x18005350a
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 0x18005350a
call fcn.1800bc2fc
nop
call fcn.1800bc2fc
nop
call fcn.1800bc2fc
int3