Function at 0x14021c150
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x160
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], r8
mov qword [rbp], rdx
mov qword [rbp + 8], rcx
mov eax, 0x10
mov qword [rbp + 0x28], rax
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x28]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x28]
mov rcx, rsp
mov qword [rbp + 0x18], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x20], rax
mov eax, 0x20
mov qword [rbp + 0x38], rax
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x28]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x38]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x48], rax
sub rsp, 0x20
call fcn.14022718f
add rsp, 0x20
mov qword [rbp + 0x58], rax
add rax, 0x50
mov qword [rbp + 0x50], rax
mov word [rbp + 0xde], 0x223
lea rcx, [rbp + 0xde]
sub rsp, 0x20
call fcn.14006a0a0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x60], rcx
cmp byte [rax + 0x50], 0
jne 0x14021cb44
mov rcx, qword [rbp + 0x10]
movabs rdx, 0xb22fef7451cba134
movabs rax, 0xb22fef7451cba124
xor rdx, rax
sub rsp, 0x20
call fcn.140214918
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp - 8]
add rsp, 0x20
mov r8, qword [rax]
mov qword [rbp + 0x98], r8
mov rax, qword [rax + 8]
mov qword [rbp + 0xa0], rax
mov r9d, 0x889337ff
xor r9d, 0x889137e6
lea r8, [rbp + 0x98]
sub rsp, 0x20
call fcn.1400e49d6
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14021cb44
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp - 0x10], rcx
cmp byte [rax + 8], 0
jne 0x14021c2e4
sub rsp, 0x20
call fcn.14008e1a0
add rsp, 0x20
mov rax, qword [rbp + 0x50]
mov al, byte [rax]
mov cl, 0x16
xor cl, 0x16
cmp al, cl
je 0x14021cbba
jmp 0x14021cb44
lea rcx, [rbp + 0xc0]
mov edx, 0x18
sub rsp, 0x20
call fcn.140214918
add rsp, 0x20
mov byte [rbp + 0xc0], 0
lea rcx, [rbp + 0xc0]
add rcx, 8
mov qword [rbp - 0x18], rcx
movabs rdx, 0x70970381b2ea9a4c
movabs rax, 0x70970381b2ea9a4c
xor rdx, rax
sub rsp, 0x20
call fcn.140032300
mov rdx, qword [rbp - 0x10]
add rsp, 0x20
lea rcx, [rbp + 0xc0]
mov r8d, 7
sub rsp, 0x20
call fcn.140215460
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
je 0x14021c38b
mov rax, qword [rbp + 0x50]
mov cl, 0xda
xor cl, 0xda
mov byte [rax], cl
sub rsp, 0x20
call fcn.140214de7
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov al, byte [rax]
cmp al, 0
mov byte [rbp - 0x19], al
jne 0x14021caad
mov ecx, 0xa8b
sub rsp, 0x20
call fcn.140069e00
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp - 0x28], rcx
cmp byte [rax], 0
jne 0x14021c454
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x18]
cmp rax, qword [rcx]
jge 0x14021c45e
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 8]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x30]
mov dl, 0x5d
xor dl, 0x5c
mov byte [rcx], dl
mov rcx, qword [rbp + 0xc0]
mov qword [rax], rcx
mov rcx, qword [rbp + 0xc8]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0xd0]
mov qword [rax + 0x10], rcx
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.1402114a0
mov rcx, qword [rbp]
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov rcx, qword [rcx]
add rcx, 0x10
mov rdx, qword [rax]
mov qword [rbp + 0x80], rdx
mov rdx, qword [rax + 8]
mov qword [rbp + 0x88], rdx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x90], rax
lea rdx, [rbp + 0x80]
sub rsp, 0x20
call fcn.140032963
add rsp, 0x20
jmp 0x14021c45e
mov al, 1
mov byte [rbp - 0x19], al
jmp 0x14021caad
mov eax, dword [0x14025ebf8]
xor eax, 0xf34a1e1d
xor eax, dword [0x14025ebfc]
add eax, 0x6e135daf
mov ecx, 0xffffffff
xor ecx, 0x6b5de662
mov edx, 0x90ccca61
xor edx, 0x90ccca61
mov r8d, 0x8bee1f7a
xor r8d, 0x8bee1f7b
sub edx, r8d
sub ecx, edx
sub eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x1674ad8b
add eax, ecx
add eax, 1
cmp eax, 0xe61fc40
ja 0x14021cbc3
mov rcx, qword [rbp + 0x18]
mov eax, dword [0x14025ec00]
mov r8d, dword [0x14025ec04]
or eax, eax
xor eax, 0xffffffff
mov edx, r8d
xor edx, 0xffffffff
mov r9d, 0x7050aae4
xor r9d, 0x8faf551b
xor r8d, r9d
and edx, r8d
xor eax, 0xffffffff
mov r8d, 0xcbca02c6
xor r8d, 0x3435fd39
xor edx, r8d
and eax, edx
mov r8d, 0x7fb5effc
xor edx, edx
div r8d
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x88e97a7a
mov edx, 0xffffffff
xor edx, 0xfb98b46f
or eax, r8d
or edx, 0xfb98b46f
mov r8d, 0xc7df0a87
xor r8d, 0x3820f578
xor eax, r8d
and eax, edx
mov r9d, 0xffffffff
xor r9d, 0x2a65d0d3
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
mov r9d, 0xd2ce1f23
xor r9d, 0x2d31e0dc
xor edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0x2a65d0d3
or eax, 0x2a65d0d3
imul eax, r8d
add eax, edx
mov dword [rbp - 0x3c], eax
mov eax, 0x75677cc9
xor eax, 0x82e0ff58
mov dword [rbp - 0x40], eax
mov word [rcx], 0x55
sub rsp, 0x20
call fcn.14006a0a0
mov rdx, qword [rbp + 0x50]
mov ecx, dword [rbp - 0x40]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp - 0x3c]
mov qword [rbp - 0x38], r8
mov dl, byte [rdx]
mov r8b, 0x9b
xor r8b, 0x9b
cmp dl, r8b
sete dl
mov byte [rbp - 0x29], dl
cmp eax, ecx
je 0x14021cbc3
mov cl, byte [rbp - 0x29]
mov al, 1
test cl, 1
mov byte [rbp - 0x19], al
jne 0x14021c5e2
jmp 0x14021caad
mov rcx, qword [rbp + 0x20]
mov edx, 0x10
sub rsp, 0x20
call fcn.140214918
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp + 0x40]
add rsp, 0x20
mov r9, qword [rax]
mov qword [r8], r9
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
mov r9d, 0x20019
sub rsp, 0x20
call fcn.1400e49d6
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x19], al
jne 0x14021caad
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
mov qword [rbp - 0x48], rcx
cmp byte [rax + 8], 0
jne 0x14021c7a4
sub rsp, 0x20
call fcn.14008e1a0
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x19], al
jne 0x14021caad
mov eax, dword [0x14025ec08]
xor edx, edx
div dword [0x14025ec0c]
mov ecx, eax
mov eax, 0xdb78ac74
xor eax, 0xf39b88ef
sub ecx, eax
sub ecx, 0x5f291118
add ecx, 0x28e3249b
mov eax, ecx
and eax, 0x5a9bad52
shl eax, 1
add ecx, 0x5a9bad52
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xb130810c
or eax, edx
mov edx, 0x374a9820
xor edx, 0xc8b567df
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xb130810c
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x1e13fabe
jb 0x14021cbcc
mov edx, dword [0x14025ec10]
mov eax, dword [0x14025ec14]
xor eax, 0xd86e3296
sub edx, eax
mov eax, 0x5fb220de
xor eax, 0xfcd12ee4
add edx, eax
mov ecx, edx
xor ecx, 0x437c1fac
mov eax, 0xffffffff
xor eax, 0x437c1fac
and edx, eax
mov eax, 0x55f37bc7
xor eax, 0x55f37bc5
imul eax, edx
sub eax, ecx
xor eax, 0xff89c3cc
mov dword [rbp - 0x50], eax
mov eax, 0x64f92dca
xor eax, 0xaaf44d7b
mov dword [rbp - 0x54], eax
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.14021146d
mov rdx, qword [rbp + 0x50]
mov ecx, dword [rbp - 0x54]
mov eax, dword [rbp - 0x50]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x49], dl
cmp eax, ecx
je 0x14021cbcc
mov cl, byte [rbp - 0x49]
mov al, 1
test cl, 1
mov byte [rbp - 0x55], al
jne 0x14021c781
jmp 0x14021cafe
mov rcx, qword [rbp - 0x10]
sub rsp, 0x20
call fcn.1400e5707
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
je 0x14021cbba
jmp 0x14021cb44
lea rcx, [rbp + 0xa8]
mov edx, 0x18
sub rsp, 0x20
call fcn.140214918
add rsp, 0x20
mov byte [rbp + 0xa8], 1
lea rcx, [rbp + 0xa8]
add rcx, 8
mov qword [rbp - 0x60], rcx
xor eax, eax
mov edx, eax
sub rsp, 0x20
call fcn.140032300
mov rdx, qword [rbp - 0x48]
add rsp, 0x20
mov r8b, 0x91
xor r8b, 0x93
lea rcx, [rbp + 0xa8]
sub rsp, 0x20
call fcn.140215460
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
je 0x14021c97a
mov eax, dword [0x14025ec18]
or eax, dword [0x14025ec1c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x516dca0
xor edx, 0x9bd0f0dc
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x9ec62c7c
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x9ec62c7c
mov r8d, 0x841ba756
xor r8d, 0x1add8b2a
or eax, r8d
imul eax, edx
add eax, ecx
or eax, 0x8fe20a36
mov ecx, 0x127a4596
xor ecx, 0xbe3e6b60
or eax, ecx
cmp eax, 0x6bf95270
je 0x14021cbd5
mov rax, qword [rbp + 0x50]
mov ecx, dword [0x14025ec20]
mov r8d, dword [0x14025ec24]
mov edx, 0xfc51d003
xor edx, 0x4b3b0c63
xor r8d, edx
xor edx, edx
sub edx, r8d
sub ecx, edx
mov r9d, 0x911e45b1
xor r9d, 0xf87f6eb6
mov edx, 0xc63bd1dc
xor edx, 0x39c42e23
xor r9d, edx
mov r8d, ecx
and r8d, r9d
mov edx, ecx
or edx, r9d
mov r9d, 0x6538dc4b
xor r9d, 0x9ac723b4
xor edx, r9d
imul edx, r8d
mov r8d, ecx
and r8d, 0x69612b07
mov r9d, 0x5f709d8b
xor r9d, 0x3611b68c
or ecx, r9d
imul ecx, r8d
add ecx, edx
mov edx, 0x6d6721e5
xor edx, 0x5d0e8885
or ecx, edx
mov edx, 0x480dc6d2
xor edx, 0x15ef310f
add ecx, edx
mov dword [rbp - 0x68], ecx
mov ecx, 0x136c0dda
xor ecx, 0x337a52be
mov dword [rbp - 0x6c], ecx
mov cl, 0x15
xor cl, 0x15
mov byte [rax], cl
sub rsp, 0x20
call fcn.140214de7
mov rdx, qword [rbp + 0x50]
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
mov dl, byte [rdx]
mov byte [rbp - 0x62], dl
mov r8b, 0x16
xor r8b, 0x16
cmp dl, r8b
sete dl
mov byte [rbp - 0x61], dl
cmp eax, ecx
jbe 0x14021c87d
mov al, byte [rbp - 0x62]
mov cl, byte [rbp - 0x61]
test cl, 1
mov byte [rbp - 0x6d], al
jne 0x14021c97a
jmp 0x14021ca3e
sub rsp, 0x20
mov cx, 0x8e8
call fcn.140069e00
mov r8, qword [rbp - 0x60]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x50]
mov al, byte [rax]
test al, al
sete cl
mov r8, qword [r8]
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov byte [rbp - 0x6e], al
jne 0x14021c9b9
jmp 0x14021ca38
mov rax, qword [rbp + 8]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov byte [rax], 1
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0xb0]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0x78], rax
lea rcx, [rbp + 0xa8]
sub rsp, 0x20
call fcn.1402114a0
mov rax, qword [rbp]
mov rdx, qword [rbp + 0x48]
add rsp, 0x20
mov rcx, qword [rax]
add rcx, 0x10
mov rax, qword [rbp + 0x68]
mov qword [rdx], rax
mov rax, qword [rbp + 0x70]
mov qword [rdx + 8], rax
mov rax, qword [rbp + 0x78]
mov qword [rdx + 0x10], rax
sub rsp, 0x20
call fcn.140032963
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x6e], al
mov al, byte [rbp - 0x6e]
mov byte [rbp - 0x6d], al
mov rax, qword [rbp + 0x50]
mov cl, byte [rbp - 0x6d]
mov byte [rbp - 0x71], cl
mov cl, 0x35
xor cl, 0x35
mov byte [rax], cl
lea rcx, [rbp + 0xa8]
sub rsp, 0x20
call fcn.14021146d
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov dl, byte [rax]
mov byte [rbp - 0x72], dl
mov dl, 0xb
xor dl, 0xb
mov byte [rax], dl
sub rsp, 0x20
call fcn.1400e5707
mov cl, byte [rbp - 0x72]
mov rdx, qword [rbp + 0x50]
mov al, byte [rbp - 0x71]
add rsp, 0x20
or cl, byte [rdx]
mov dl, 1
mov byte [rbp - 0x70], dl
cmp cl, 0
mov byte [rbp - 0x6f], al
je 0x14021caa7
mov al, byte [rbp - 0x70]
mov byte [rbp - 0x6f], al
mov al, byte [rbp - 0x6f]
mov byte [rbp - 0x19], al
mov rax, qword [rbp + 0x50]
mov cl, byte [rbp - 0x19]
mov byte [rbp - 0x75], cl
mov byte [rax], 0
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.14021146d
mov rcx, qword [rbp + 0x50]
mov al, byte [rbp - 0x75]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xb7
xor dl, 0xb7
mov r8b, 0x59
xor r8b, 0x58
mov byte [rbp - 0x74], r8b
cmp cl, dl
mov byte [rbp - 0x73], al
je 0x14021caf8
mov al, byte [rbp - 0x74]
mov byte [rbp - 0x73], al
mov al, byte [rbp - 0x73]
mov byte [rbp - 0x55], al
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp - 0x10]
mov dl, byte [rbp - 0x55]
mov byte [rbp - 0x76], dl
mov dl, 0x14
xor dl, 0x14
mov byte [rax], dl
sub rsp, 0x20
call fcn.1400e5707
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xcc
xor cl, 0xcc
cmp al, cl
jne 0x14021cb44
mov al, byte [rbp - 0x76]
mov rcx, qword [rbp + 0x50]
mov byte [rcx], al
cmp al, 0
je 0x14021cbba
sub rsp, 0x20
call fcn.140214da8
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x14021cbba
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x14021cbba
mov rax, qword [rbp + 0x50]
mov cl, 0x33
xor cl, 0x33
mov byte [rax], cl
sub rsp, 0x20
call fcn.140214dba
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.14009ff50
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14021cbba
sub rsp, 0x20
call fcn.140214de7
add rsp, 0x20
lea rsp, [rbp + 0xe0]
pop rbp
ret
wait
or al, byte [0x1390fb592]
invalid
xchg ebx, eax
pop rdx
stosb byte [rdi], al
mov bh, 0xe9
adc bl, bh
invalid
xor eax, 0xe91852d2
lahf
cld
invalid