Function at 0x14021a240
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], rcx
mov eax, dword [0x140259738]
add eax, dword [0x14025973c]
mov edx, 0x5a2f2fcc
xor edx, 0x4fcc1982
mov ecx, 0xbfe6537f
xor ecx, 0x4019ac80
xor edx, ecx
mov ecx, eax
and ecx, edx
mov r8d, 0x8273d15d
xor r8d, 0x9790e713
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
sub eax, 0x3a8ae606
imul eax, eax, 0xf8f68068
mov ecx, 0x50b386cd
xor ecx, 0x1389b1d7
cmp eax, ecx
je 0x14021a746
mov eax, dword [str.__X]
mov r8d, dword [0x140259744]
mov ecx, eax
not ecx
mov edx, r8d
and edx, ecx
mov r9d, r8d
not r9d
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
imul eax, eax, 0xe8f4a125
add eax, 0x44a7c67a
xor eax, 0x27776587
mov dword [rbp - 0x10], eax
mov eax, 0x10
mov qword [rbp - 0x38], rax
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rcx, rsp
mov qword [rbp - 0x48], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rcx, rsp
mov qword [rbp - 0x40], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rcx, rsp
mov qword [rbp - 0x30], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
sub rsp, 0x20
call fcn.14021a9cb
add rsp, 0x20
mov qword [rbp - 0x18], rax
add rax, 0x50
mov qword [rbp - 0x20], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp - 8]
mov rcx, qword [rax]
add rcx, 0x20
sub rsp, 0x20
call fcn.14020852a
mov rcx, qword [rbp - 0x18]
mov eax, dword [rbp - 0x10]
add rsp, 0x20
cmp byte [rcx + 0x50], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0xf7076e0
je 0x14021a2b0
mov al, byte [rbp - 9]
test al, 1
jne 0x14021a3bc
jmp 0x14021a6cf
mov ecx, 8
mov edx, 4
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp - 8]
mov rcx, qword [rax]
add rcx, 0x28
sub rsp, 0x20
call fcn.1402085a0
add rsp, 0x20
movabs rcx, 0x1ceae55aaa7616ef
movabs rax, 0x1ceae55aaa7616e7
xor rcx, rax
movabs rdx, 0xed52cccecc295f43
movabs rax, 0xed52cccecc295f47
xor rdx, rax
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp - 8]
mov rcx, qword [rax]
add rcx, 0x30
sub rsp, 0x20
call fcn.1402086b1
add rsp, 0x20
mov ecx, 8
mov edx, 4
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp - 8]
mov rcx, qword [rax]
add rcx, 0x38
sub rsp, 0x20
call fcn.1402086f8
add rsp, 0x20
mov ecx, 8
mov edx, 4
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp - 8]
mov rcx, qword [rax]
add rcx, 0x40
sub rsp, 0x20
call fcn.140208740
mov rcx, qword [rbp - 8]
call fcn.14020fa40
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xd5
xor cl, 0xd5
cmp al, cl
jne 0x14021a6cf
mov rcx, qword [rbp - 8]
sub rsp, 0x20
call fcn.1402117e0
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xbe
xor cl, 0xbe
cmp al, cl
jne 0x14021a6cf
mov rcx, qword [rbp - 8]
sub rsp, 0x20
call fcn.140216ea0
mov rax, qword [rbp - 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14021a6cf
mov edx, dword [0x140259748]
xor edx, 0x5f253473
mov eax, dword [0x14025974c]
xor eax, 0x13bf7a47
mov ecx, edx
xor ecx, eax
mov r8d, 0xfb0cc20c
xor r8d, 0x4f33df3
xor eax, r8d
and edx, eax
mov eax, 0x68f6a0b1
xor eax, 0x68f6a0b3
imul eax, edx
sub eax, ecx
and eax, 0x88b9b9a8
mov ecx, 0x13b9de34
xor ecx, 0x27e566f5
imul eax, ecx
xor eax, 0xa601cdbb
cmp eax, 0x574ce6aa
jb 0x14021a74f
mov rcx, qword [rbp - 8]
mov eax, dword [0x140259750]
xor eax, dword [0x140259754]
and eax, 0x3f7200fa
and eax, 0x49495900
sub eax, 0x67554a1d
mov dword [rbp - 0x50], eax
sub rsp, 0x20
call fcn.140219ec0
mov rcx, qword [rbp - 0x20]
mov eax, dword [rbp - 0x50]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xe9
xor dl, 0xe9
cmp cl, dl
sete cl
mov byte [rbp - 0x49], cl
cmp eax, 0x398d5abc
jb 0x14021a74f
mov al, byte [rbp - 0x49]
test al, 1
jne 0x14021a5c5
jmp 0x14021a6cf
mov ecx, 0xd62
sub rsp, 0x20
call fcn.1400644d0
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x20]
mov dword [rbp - 0x54], ecx
cmp byte [rax], 0
jne 0x14021a6cf
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov rdx, qword [rax + 0x20]
sub rsp, 0x20
call fcn.14007ba90
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp - 0x68], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x60], rcx
mov al, byte [rax]
mov cl, 0x46
xor cl, 0x46
cmp al, cl
jne 0x14021a6cf
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 8]
mov rdx, qword [rax]
add rdx, 0x18
sub rsp, 0x20
call fcn.14013de60
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp - 0x78], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x70], rcx
cmp byte [rax], 0
jne 0x14021a6cf
mov r8, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x30]
mov ecx, dword [rbp - 0x54]
mov rax, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
mov r10, qword [rbp - 0x60]
mov r11, qword [rbp - 0x68]
mov qword [rdx], r11
mov qword [rdx + 8], r10
mov qword [r8], r9
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.14009b430
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov al, byte [rax]
mov cl, 4
xor cl, 4
cmp al, cl
jne 0x14021a6cf
mov cl, 0xd0
xor cl, 0x67
sub rsp, 0x20
call fcn.140064710
mov rax, qword [rbp - 0x20]
add rsp, 0x20
cmp byte [rax], 0
je 0x14021a741
sub rsp, 0x20
call fcn.14020be7b
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x14021a741
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x14021a741
mov rax, qword [rbp - 0x20]
mov byte [rax], 0
sub rsp, 0x20
call fcn.14020be8d
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.140099ce0
mov rax, qword [rbp - 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14021a741
sub rsp, 0x20
call fcn.14020bee1
add rsp, 0x20
mov rsp, rbp
pop rbp
ret
xchg esi, eax
insb byte [rdi], dx
rol byte [0x1401d0937], 1
jmp [rsi - 0x16b615c0]
scasb al, byte [rdi]
invalid