Function at 0x140022ab0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x57]
sub rsp, 0xd0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov rax, qword [0x1401798e0]
xor rax, rsp
mov qword [rbp - 0x21], rax
mov qword [rsp + 0x20], r9
mov r12, r8
movzx r14d, dl
mov r13, qword [rbp + 0x7f]
mov rsi, qword [0x14017a690]
mov dword [rbp - 0x51], 0xaf5bc6
mov byte [rbp - 0x4d], 0
xor ebx, ebx
mov dword [rbp - 0x49], ebx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, eax
imul rcx, rdi
mov qword [rbp - 0x41], rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], rbx
mov byte [rbp - 0x4d], 4
lea edx, [rbx + 1]
lea rcx, [rbp - 0x39]
call fcn.1400232f0
mov rax, qword [rbp - 0x39]
mov byte [rax], r14b
mov rax, qword [rbp - 0x31]
sub rax, qword [rbp - 0x39]
mov dword [rbp - 0x49], eax
mov rdi, qword [rsi + 0x48]
lea r8d, [rbx + 0x18]
lea rdx, [rbp - 0x51]
mov rcx, rdi
call fcn.1400240d0
mov r9d, ebx
mov r8d, dword [rbp - 0x49]
test r8d, r8d
je 0x140022b9b
mov edx, ebx
nop word [rax + rax]
mov rcx, qword [rbp - 0x39]
movzx eax, byte [rbp - 0x41]
xor byte [rcx + rdx], al
inc r9d
lea rdx, [rdx + 1]
mov r8d, dword [rbp - 0x49]
cmp r9d, r8d
jb 0x140022b80
mov rdx, qword [rbp - 0x39]
mov rcx, rdi
call fcn.1400240d0
mov r8d, 0x18
lea rdx, [rbp - 0x51]
mov rcx, rdi
call fcn.140023b40
test eax, eax
jle 0x140022c11
mov edx, dword [rbp - 0x49]
lea rcx, [rbp - 0x39]
call fcn.1400232f0
mov r8d, dword [rbp - 0x49]
mov rdx, qword [rbp - 0x39]
mov rcx, rdi
call fcn.140023b40
mov r9d, ebx
cmp dword [rbp - 0x49], ebx
jbe 0x140022c09
mov r8, rbx
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [rbp - 0x39]
movzx ecx, byte [rbp - 0x41]
xor byte [rdx + r8], cl
inc r9d
lea r8, [r8 + 1]
cmp r9d, dword [rbp - 0x49]
jb 0x140022bf0
test eax, eax
jne 0x140022e1c
mov eax, dword [str.qGDXJ9]
mov dword [rsp + 0x20], eax
movzx eax, word [0x1400b0864]
mov word [rsp + 0x24], ax
mov byte [rsp + 0x20], 0x45
xor byte [rsp + 0x21], 0x35
xor byte [rsp + 0x22], 0x36
xor byte [rsp + 0x23], 0x37
xor byte [rsp + 0x24], 0x38
xor byte [rsp + 0x25], 0x39
movups xmm0, xmmword [0x1400b0838]
movups xmmword [rsp + 0x28], xmm0
movzx eax, word [0x1400b0848]
mov word [rbp - 0x79], ax
cmp byte [0x1400b0849], 0
je 0x140022dfc
cmp dword [0x1401798c0], 2
jl 0x140022dc4
movdqa xmm5, xmmword [0x1400b0940]
movdqa xmm4, xmmword [0x1400b0990]
mov eax, 4
movd xmm6, eax
movdqa xmm7, xmmword [0x1400b0960]
mov eax, 0x1f
movd xmm8, eax
movdqa xmm0, xmmword [str.4444444444444444]
movdqa xmmword [rbp - 0x61], xmm0
lea rcx, [rsp + 0x28]
mov edx, dword [rbp - 0x61]
nop word [rax + rax]
movd xmm2, ebx
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, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x1400b0970]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
pxor xmm2, xmm0
movd dword [rcx], xmm2
lea eax, [rbx + 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, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x1400b0970]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm2, xmm0
movd dword [rcx + 4], xmm2
add ebx, 8
mov eax, ebx
lea rcx, [rcx + 8]
cmp ebx, 0x10
jl 0x140022cc0
cmp eax, 0x12
jge 0x140022dfc
movsxd rax, ebx
lea r8, [rsp + 0x28]
add r8, rax
nop
mov eax, 0x51eb851f
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
add al, 0x34
xor byte [r8], al
inc ebx
lea r8, [r8 + 1]
cmp ebx, 0x12
jl 0x140022dd0
xor r9d, r9d
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x28]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
xor bl, bl
mov rcx, qword [rbp - 0x39]
jmp 0x140023015
mov rdx, qword [rbp - 0x31]
mov rax, qword [rbp - 0x39]
sub rdx, rax
dec rdx
movzx r15d, byte [rax + rdx]
lea rcx, [rbp - 0x39]
call fcn.1400232f0
mov rdx, qword [rbp - 0x31]
mov rax, qword [rbp - 0x39]
sub rdx, rax
mov dword [rbp - 0x49], edx
dec rdx
movzx edi, byte [rax + rdx]
lea rcx, [rbp - 0x39]
call fcn.1400232f0
mov rax, qword [rbp - 0x31]
mov rcx, qword [rbp - 0x39]
sub rax, rcx
mov dword [rbp - 0x49], eax
test dil, dil
je 0x140023013
mov ecx, 0xa
call fcn.1400825bc
mov rsi, rax
xor eax, eax
mov qword [rsi], rax
mov word [rsi + 8], ax
mov rdx, qword [rbp - 0x31]
mov rax, qword [rbp - 0x39]
sub rdx, rax
cmp rdx, 0xa
jb 0x140022ebe
add rdx, 0xfffffffffffffff6
movsd xmm0, qword [rax + rdx]
movsd qword [rsi], xmm0
movzx eax, word [rax + rdx + 8]
mov word [rsi + 8], ax
lea rcx, [rbp - 0x39]
call fcn.1400232f0
mov rax, qword [rbp - 0x31]
sub rax, qword [rbp - 0x39]
mov dword [rbp - 0x49], eax
mov ecx, 0x14
call fcn.1400825bc
mov r14, rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r14], xmm0
mov dword [r14 + 0x10], eax
mov rdx, qword [rbp - 0x31]
mov rax, qword [rbp - 0x39]
sub rdx, rax
cmp rdx, 0x14
jb 0x140022f11
add rdx, 0xffffffffffffffec
movups xmm0, xmmword [rax + rdx]
movups xmmword [r14], xmm0
mov eax, dword [rax + rdx + 0x10]
mov dword [r14 + 0x10], eax
lea rcx, [rbp - 0x39]
call fcn.1400232f0
mov rax, qword [rbp - 0x31]
sub rax, qword [rbp - 0x39]
mov dword [rbp - 0x49], eax
mov qword [rsp + 0x28], rbx
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], 0xf
mov rdi, 0xffffffffffffffff
mov r8, rdi
nop dword [rax]
inc r8
cmp byte [r14 + r8], 0
jne 0x140022f30
mov rdx, r14
lea rcx, [rsp + 0x28]
call fcn.140020970
lea rdx, [rsp + 0x28]
mov rcx, r12
call fcn.140023370
mov rdx, qword [rbp - 0x71]
cmp rdx, 0x10
jb 0x140022f8c
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022f87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ffb
call fcn.1400825b4
mov qword [rsp + 0x28], rbx
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], 0xf
nop dword [rax]
inc rdi
cmp byte [rsi + rdi], 0
jne 0x140022fa0
mov r8, rdi
mov rdx, rsi
lea rcx, [rsp + 0x28]
call fcn.140020970
lea rdx, [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
call fcn.140023370
mov rdx, qword [rbp - 0x71]
cmp rdx, 0x10
jb 0x140023007
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140023002
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140023002
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400825b4
mov byte [r13], r15b
mov bl, 1
mov rcx, qword [rbp - 0x39]
jmp 0x140023015
xor bl, bl
test rcx, rcx
je 0x14002304e
mov rdx, qword [rbp - 0x29]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140023049
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140023049
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400825b4
movzx eax, bl
mov rcx, qword [rbp - 0x21]
xor rcx, rsp
call fcn.140082c20
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret