Function at 0x140022620
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x198
mov rax, qword [0x1400a2078]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rcx, qword [0x1400a3d68]
lea rdx, [rsp + 0x60]
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140022650
mov edx, 0x29
lea rcx, [rsp + 0x60]
call fcn.14004448c
test rax, rax
je 0x140022694
movups xmm0, xmmword [str.__expires_midnight_19700101_GMT__n]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140093cb0]
movups xmmword [rax + 0x10], xmm1
movzx ecx, word [0x140093cc0]
mov word [rax + 0x20], cx
jmp 0x1400226e5
movups xmm0, xmmword [str.Time_limited_version__expiring_midnight_19700101_GMT__n]
mov eax, dword [0x140093cf8]
movups xmm1, xmmword [0x140093cd8]
mov dword [rsp + 0x90], eax
movzx eax, word [0x140093cfc]
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [0x140093ce8]
mov word [rsp + 0x94], ax
movzx eax, byte [0x140093cfe]
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm1
mov byte [rsp + 0x96], al
xor ecx, ecx
call fcn.140054380
mov rdx, qword [0x1400a4b60]
cmp rdx, 0x5fee744d
jl 0x140022a33
lea rcx, [rdx - 0x15180]
cmp rax, rcx
jl 0x140022a33
mov rcx, qword [0x1400a4b68]
cmp rax, rcx
jge 0x140022a33
sub rcx, rax
mov qword [rsp + 0x1a0], rbx
mov qword [rsp + 0x1b0], rsi
cmp rcx, 0x127500
jge 0x1400227da
movsd xmm1, qword [0x140095168]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x170], xmm6
cvtsi2sd xmm0, rcx
movaps xmm6, xmm0
divsd xmm6, qword [0x1400951c0]
comisd xmm6, xmm1
jb 0x140022772
lea rbx, [0x140093d00]
jmp 0x14002279e
movaps xmm6, xmm0
divsd xmm6, qword [0x1400951b8]
comisd xmm6, xmm1
jb 0x14002278c
lea rbx, str.hour
jmp 0x14002279e
movaps xmm6, xmm0
lea rbx, str.minute
divsd xmm6, qword [0x1400951a0]
mov ecx, 2
call fcn.14004cadc
mov rcx, rax
mov qword [rsp + 0x20], rbx
movaps xmm3, xmm6
lea r8, str.The_license_for_this_solver
movq r9, xmm6
lea rdx, str._swill_expire_in__.1f__ss._n
call fcn.1400209f0
mov rdx, qword [0x1400a4b60]
movaps xmm6, xmmword [rsp + 0x170]
cmp byte [str.__0], 0
lea rsi, str.__0
mov qword [rsp + 0x1a8], rbp
mov rbx, rsi
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x188], r14
mov qword [rsp + 0x180], r15
je 0x1400229d0
movsxd rax, dword [0x1400a4b74]
add rax, rsi
cmp rsi, rax
jae 0x14002282c
ror edx, 1
xor byte [rbx], dl
inc rbx
cmp rbx, rax
jb 0x140022820
mov rdi, 0xffffffffffffffff
mov byte [rbx], 0
lea r9, [rsp + 0x34]
mov dword [rsp + 0x34], edi
lea r8, [rsp + 0x30]
mov byte [rsp + 0x30], 0x58
lea rdx, str._c_d:
mov rcx, rsi
call fcn.140020af0
cmp eax, 2
jne 0x1400228bc
movzx eax, byte [rsp + 0x30]
sub al, 0x41
test al, 0xfd
jne 0x1400228bc
lea edx, [rdi + 0x21]
mov rcx, rsi
call fcn.140044214
mov rbp, rax
test rax, rax
je 0x1400228bc
mov ecx, dword [rsp + 0x34]
lea r8, str._c_d
movsx r9d, byte [rsp + 0x30]
lea edx, [rdi + 0x21]
mov dword [rsp + 0x20], ecx
lea rcx, [0x1400aaea0]
call fcn.140020a90
test eax, eax
jle 0x1400228bc
lea rsi, [rbp + 1]
mov r8d, 0x200
mov rdx, rsi
lea rcx, [0x1400aaec0]
call fcn.1400579c0
lea rax, [rsp + 0x60]
inc rdi
cmp byte [rax + rdi], 0
jne 0x1400228c1
lea rdx, str._midnight
xor r14d, r14d
lea rcx, [rsp + 0x60]
call fcn.140044294
test rax, rax
je 0x14002291b
mov r9d, dword [0x1400a4b60]
lea rcx, [rsp + 0x60]
mov rdi, rax
lea r8, str.License__x__d_for
mov eax, dword [0x1400a4b70]
lea edx, [r14 + 0x28]
sub rdi, rcx
mov dword [rsp + 0x20], eax
add rdi, 0xa
lea rcx, [rsp + 0x38]
call fcn.140020a90
movsxd r14, eax
sub rbx, rsi
lea r15, [rdi + 0xd]
mov rbp, rsi
lea rax, [rbx + r14]
add r15, rax
cmp r15, 0x100
jbe 0x140022949
mov rcx, r15
call fcn.14005608c
mov rbp, rax
test rax, rax
je 0x140022a50
lea eax, [rbx - 1]
lea r8, [rdi + 0xe]
movsxd rdx, eax
add r8, r14
test eax, eax
js 0x140022981
sub r8, rsi
lea rcx, [rdx + rsi]
add r8, rbp
inc rdx
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [r8 + rcx], al
lea rcx, [rcx - 1]
sub rdx, 1
jne 0x140022970
mov r8, rdi
lea rdx, [rsp + 0x60]
mov rcx, rbp
call fcn.140044760
test r14, r14
je 0x1400229c9
mov rax, qword [str.20231231]
lea rcx, [rdi + rbp]
mov qword [rcx], rax
lea rdx, [rsp + 0x38]
mov eax, dword [str._GMT__n]
mov r8, r14
mov dword [rcx + 8], eax
movzx eax, word [0x140093d70]
mov word [rcx + 0xc], ax
add rcx, 0xe
call fcn.140044760
mov qword [0x1400a3d68], rbp
mov r8d, 0x80
lea rdx, str.time_limited
lea rcx, [0x1400ab0c0]
call fcn.1400579c0
mov r14, qword [rsp + 0x188]
xor eax, eax
mov rdi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x1a8]
mov r15, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x1a0]
mov rsi, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140042470
add rsp, 0x198
ret
mov eax, 0xff
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140042470
add rsp, 0x198
ret
mov ecx, 2
call fcn.14004cadc
mov rcx, rax
lea rdx, str.malloc__lu__failed__n
mov r8d, r15d
call fcn.1400209f0
mov ecx, 1
call fcn.1400563a8
int3