Function at 0x14021f220
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x200
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x48], rcx
mov eax, 0x10
mov qword [rbp + 0x68], rax
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x68]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x68]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x68]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp + 0x68]
mov rcx, rsp
mov qword [rbp + 0x70], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
sub rsp, 0x20
call fcn.14022718f
add rsp, 0x20
mov qword [rbp + 0x88], rax
add rax, 0x50
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x178], 0
mov word [rbp + 0x176], 0x557
lea rcx, [rbp + 0x176]
sub rsp, 0x20
call fcn.14006a0a0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x90], rcx
cmp byte [rax + 0x50], 0
jne 0x14021fbe1
mov rcx, qword [rbp + 0x58]
mov r8, qword [rbp + 0x60]
mov rax, qword [rbp + 0x90]
mov rdx, qword [0x1402699a8]
mov r9, qword [rdx]
mov qword [rbp + 0x158], r9
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x160], rdx
mov rdx, qword [rax]
mov qword [r8], rdx
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
lea rdx, [rbp + 0x158]
sub rsp, 0x20
call fcn.14021fe28
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x80]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp + 0x38], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x40], rcx
cmp byte [rax], 0
jne 0x14021fbe1
mov ecx, 2
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.140019c70
add rsp, 0x20
mov qword [rbp + 0x18], rax
movabs rcx, 0xf2e44f5f569f7a0a
movabs rax, 0xf2e44f5f569f7a12
xor rcx, rax
movabs rdx, 0x9efc21abe4a49341
movabs rax, 0x9efc21abe4a49349
xor rdx, rax
sub rsp, 0x20
call fcn.14001b8b0
add rsp, 0x20
mov qword [rbp + 0x20], rax
mov word [rbp + 0x174], 0x7ee
lea rcx, [rbp + 0x174]
sub rsp, 0x20
call fcn.14006a0a0
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov qword [rbp + 0x28], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
mov qword [rbp + 0x138], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x140], rax
lea rcx, [rbp + 0x148]
lea rdx, [rbp + 0x138]
sub rsp, 0x20
call fcn.14001cda0
mov rax, qword [rbp + 0x20]
add rsp, 0x20
mov rdx, qword [rbp + 0x148]
mov rcx, qword [rbp + 0x150]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0x854
sub rsp, 0x20
call fcn.14006a650
mov rcx, qword [rbp + 0x20]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x80]
mov dword [rcx + 0x10], edx
mov cl, byte [rax]
mov dl, 0xfa
xor dl, 0xfa
mov al, 1
cmp cl, dl
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov cx, 0x3302
xor cx, 0x3773
sub rsp, 0x20
call fcn.14006a650
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x20]
mov dword [rax + 0x14], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x20]
mov qword [rax + 8], rcx
movabs rcx, 0x76c8c6852507468d
movabs rax, 0x76c8c68525074695
xor rcx, rax
movabs rdx, 0xcb6517a7cac037f4
movabs rax, 0xcb6517a7cac037fc
xor rdx, rax
sub rsp, 0x20
call fcn.14001b8b0
add rsp, 0x20
mov qword [rbp + 8], rax
mov word [rbp + 0x172], 0x7b4
lea rcx, [rbp + 0x172]
sub rsp, 0x20
call fcn.14006a0a0
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov qword [rbp + 0x10], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rdx, qword [rbp + 0x70]
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x128]
sub rsp, 0x20
call fcn.14001cda0
mov rax, qword [rbp + 8]
add rsp, 0x20
mov rdx, qword [rbp + 0x128]
mov rcx, qword [rbp + 0x130]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0xe80
sub rsp, 0x20
call fcn.14006a650
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 8]
mov dword [rax + 0x10], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov ecx, 0xef6
sub rsp, 0x20
call fcn.14006a650
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 8]
mov dword [rax + 0x14], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x38]
mov r8, qword [rbp + 8]
mov qword [rax + 0x10], r8
mov qword [rbp + 0x118], rdx
mov qword [rbp + 0x120], rcx
movabs rcx, 0x2d971f92aecf4447
movabs rdx, 0x2d971f92aecf4445
xor rcx, rdx
mov qword [rbp + 0x108], rcx
mov qword [rbp + 0x110], rax
lea rcx, [rbp + 0x118]
lea rdx, [rbp + 0x108]
sub rsp, 0x20
call fcn.14016893e
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov qword [rbp], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rcx, qword [rbp]
mov qword [rbp + 0x178], rcx
mov edx, 1
sub rsp, 0x20
call fcn.140169990
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x80]
mov qword [rbp - 8], rcx
mov cl, byte [rax]
mov dl, 0x79
xor dl, 0x79
mov al, 1
cmp cl, dl
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rcx, qword [rbp + 0x50]
mov word [rcx], 0x539
sub rsp, 0x20
call fcn.14006a0a0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x80]
mov qword [rbp - 0x10], rcx
mov cl, byte [rax]
mov dl, 0x2a
xor dl, 0x2a
mov al, 1
cmp cl, dl
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov eax, dword [0x14025ed38]
xor eax, 0xef4e70ea
mov ecx, dword [0x14025ed3c]
xor ecx, 0x2c386a91
add eax, ecx
imul eax, eax, 0xae1e6abe
and eax, 0xe0362960
xor ecx, ecx
sub ecx, 0x1b1af192
add eax, ecx
mov ecx, 0x7a4c6466
xor ecx, 0xd421cad2
cmp eax, ecx
je 0x14021fe0d
mov eax, dword [0x14025ed40]
mov edx, dword [0x14025ed44]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
mov eax, 0x4dc1d27c
xor eax, 0x4dc1d27c
sub eax, ecx
mov ecx, 0x424db8a
xor ecx, 0xc052fc03
imul eax, ecx
mov ecx, 0xf65a3339
xor edx, edx
div ecx
and eax, 0xd305e9b6
mov dword [rbp - 0x24], eax
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.140019c70
add rsp, 0x20
mov qword [rbp - 0x38], rax
movabs rcx, 0xc6dca4f90c7a435b
movabs rax, 0xc6dca4f90c7a4343
xor rcx, rax
movabs rdx, 0x7621737b81d427d
movabs rax, 0x7621737b81d4275
xor rdx, rax
sub rsp, 0x20
call fcn.14001b8b0
add rsp, 0x20
mov qword [rbp - 0x30], rax
mov word [rbp + 0x170], 0xd7c
lea rcx, [rbp + 0x170]
sub rsp, 0x20
call fcn.14006a0a0
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x24]
mov qword [rbp - 0x20], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x11], cl
cmp eax, 0xf4223822
je 0x14021fe0d
mov cl, byte [rbp - 0x11]
mov al, 1
test cl, 1
mov byte [rbp + 0x37], al
jne 0x14021f803
jmp 0x14021fc00
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp - 0x20]
mov rdx, qword [rax]
mov qword [rbp + 0xf8], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x100], rax
lea rdx, [rbp + 0xf8]
sub rsp, 0x20
call fcn.14001cda0
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp - 0x30]
add rsp, 0x20
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0xc4
sub rsp, 0x20
call fcn.14006a650
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp - 0x30]
mov dword [rax + 0x10], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov ecx, dword [0x14025ed48]
imul ecx, dword [0x14025ed4c]
and ecx, ecx
mov eax, 0xbd81f9d7
xor eax, 0x427e0628
xor ecx, eax
mov eax, 0x7002b986
xor eax, 0x97730467
mov edx, 0xd3f794b5
xor edx, 0x34862954
and eax, edx
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
mov edx, 0xb6a64708
xor edx, 0xfaa92bd1
mov eax, ecx
and eax, edx
or ecx, 0x4c0f6cd9
add eax, ecx
mov r8d, 0xf2b7eea8
xor r8d, 0x248c8a0f
mov ecx, 0xd1c2a4b7
xor ecx, 0x2e3d5b48
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xd63b64a7
or eax, 0xd63b64a7
imul eax, edx
add eax, ecx
cmp eax, 0xa82a7f01
je 0x14021fe16
mov eax, dword [0x14025ed50]
or eax, dword [0x14025ed54]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0xdfda36b2
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x5f12e25c
xor ecx, 0xe6fb07f8
or eax, ecx
mov ecx, 0xcc703dbd
xor ecx, 0xd62a260a
add eax, ecx
mov ecx, 0x47d7dbd7
xor ecx, 0xc04f70c9
add eax, ecx
sub eax, 0x1a5a1bb7
mov dword [rbp - 0x40], eax
mov ecx, 0xdb7
sub rsp, 0x20
call fcn.14006a650
mov rdx, qword [rbp - 0x30]
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov r8d, eax
mov eax, dword [rbp - 0x40]
mov dword [rdx + 0x14], r8d
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x39], cl
cmp eax, 0x8bf969b
jb 0x14021f913
mov cl, byte [rbp - 0x39]
mov al, 1
test cl, 1
mov byte [rbp + 0x37], al
jne 0x14021f9b0
jmp 0x14021fc00
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp - 0x30]
mov qword [rax + 8], r8
mov r8, qword [rdx]
mov qword [rbp + 0xe8], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0xf0], rdx
mov qword [rbp + 0xd8], 1
mov qword [rbp + 0xe0], rax
lea rdx, [rbp + 0xe8]
lea r8, [rbp + 0xd8]
mov r9d, 1
sub rsp, 0x20
call fcn.140169400
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov qword [rbp - 0x48], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rdx, qword [rbp - 0x48]
lea rcx, [rbp + 0x178]
sub rsp, 0x20
call fcn.140168d70
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rax, qword [rbp + 0x178]
mov qword [rbp - 0x50], rax
lea rcx, [rbp + 0x178]
sub rsp, 0x20
call fcn.140168936
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov word [rbp + 0x16e], 0xf36
lea rcx, [rbp + 0x16e]
sub rsp, 0x20
call fcn.14006a0a0
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov qword [rbp - 0x58], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
mov rax, qword [rbp - 0x58]
mov rcx, qword [rax]
mov qword [rbp + 0xb8], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xc0], rax
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xb8]
sub rsp, 0x20
call fcn.14001cda0
mov rdx, qword [rbp + 0x48]
add rsp, 0x20
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rbp + 0xd0]
mov rdx, qword [rdx]
add rdx, 0x18
mov qword [rbp - 0x68], rdx
mov qword [rbp + 0xa8], rcx
mov qword [rbp + 0xb0], rax
lea rcx, [rbp + 0x98]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x50]
add rsp, 0x20
lea r8, [rbp + 0xa8]
xor eax, eax
mov r9d, eax
lea rax, [rbp + 0x98]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.14017b550
mov rcx, qword [rbp + 0x80]
add rsp, 0x30
mov dword [rbp - 0x5c], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x14021fc00
sub rsp, 0x20
mov cx, 0x3b0
call fcn.140069e00
mov r8d, dword [rbp - 0x5c]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x80]
mov al, byte [rax]
test al, al
sete cl
movsxd r8, r8d
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov byte [rbp + 0x37], al
jne 0x14021fbbe
jmp 0x14021fc00
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x40]
mov dl, 0x3d
xor dl, 0x3c
mov byte [rcx], dl
mov al, byte [rax]
mov byte [rbp + 0x37], al
jmp 0x14021fc00
mov rax, qword [rbp + 0x80]
mov cl, 0x5c
xor cl, 0x5c
mov byte [rax], cl
xor eax, eax
mov cl, al
mov al, 1
mov byte [rbp - 0x6a], cl
mov byte [rbp - 0x69], al
jmp 0x14021fc71
mov rdx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x80]
mov al, byte [rbp + 0x37]
mov byte [rbp - 0x6c], al
cmp al, 0
sete cl
mov byte [rbp - 0x6b], cl
mov byte [r8], 0
cmp rdx, 0
mov byte [rbp - 0x6a], cl
mov byte [rbp - 0x69], al
je 0x14021fc71
mov al, byte [rbp - 0x6c]
mov cl, byte [rbp - 0x6b]
mov r8, qword [rbp + 0x40]
movabs rdx, 0x4000000000000000
and rdx, qword [r8]
cmp rdx, 0
mov byte [rbp - 0x6a], cl
mov byte [rbp - 0x69], al
jne 0x14021fc71
mov rcx, qword [rbp + 0x40]
sub rsp, 0x20
call fcn.14000e9f6
mov cl, byte [rbp - 0x6b]
mov al, byte [rbp - 0x6c]
add rsp, 0x20
mov byte [rbp - 0x6a], cl
mov byte [rbp - 0x69], al
mov al, byte [rbp - 0x6a]
mov cl, byte [rbp - 0x69]
mov byte [rbp - 0x6e], cl
mov byte [rbp - 0x6d], al
mov rcx, qword [rbp + 0x178]
sub rsp, 0x20
call fcn.1401688c5
mov rax, qword [rbp + 0x80]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x51
xor cl, 0x51
cmp al, cl
jne 0x14021fcbe
mov al, byte [rbp - 0x6d]
mov rcx, qword [rbp + 0x80]
mov dl, byte [rbp - 0x6e]
mov byte [rcx], dl
test al, 1
jne 0x14021fe04
sub rsp, 0x20
call fcn.140214da8
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp word [rax + 0x12], 1
jle 0x14021fe04
mov rax, qword [rbp - 0x78]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x14021fe04
mov rax, qword [rbp + 0x80]
mov byte [rax], 0
sub rsp, 0x20
call fcn.140214dba
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.14009ff50
mov rax, qword [rbp + 0x80]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14021fe04
mov eax, dword [0x14025ed58]
mov ecx, 0xb389bff8
xor ecx, 0xdb24b875
xor eax, ecx
mov ecx, dword [0x14025ed5c]
xor ecx, 0x20d98627
add eax, ecx
add eax, 0xce071538
mov r8d, 0xffffffff
xor r8d, 0x7625fc27
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x7625fc27
mov r8d, 0xa8545d31
xor r8d, 0xde71a116
or eax, r8d
imul eax, edx
add eax, ecx
xor eax, 0xa1714fc5
cmp eax, 0x131035d8
jbe 0x14021fe1f
mov ecx, dword [0x14025ed60]
xor ecx, 0x8b2736fc
mov eax, dword [0x14025ed64]
xor eax, 0xae5fa4f6
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xd1df27a9
mov edx, 0xffffffff
xor edx, 0xd1df27a9
and ecx, edx
or eax, ecx
sub eax, 0xdedb0f42
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x68c20c1d
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [rbp - 0x7c], eax
sub rsp, 0x20
call fcn.140214de7
mov eax, dword [rbp - 0x7c]
add rsp, 0x20
cmp eax, 0xd990dccb
je 0x14021fe1f
jmp 0x14021fe04
lea rsp, [rbp + 0x180]
pop rbp
ret
xchg ebp, eax
push rdi
invalid
invalid
or esi, dword [rdi + rbx*2 + 0x7a]
jmp 0x14021fd99