Function at 0x14020c470
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1b0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x128], rcx
mov ecx, dword [0x14024f428]
xor ecx, 0x8d79a72
mov edx, dword [0x14024f42c]
mov eax, ecx
xor eax, 0xffffffff
mov r9d, 0x4d257406
xor r9d, 0xb2da8bf9
mov r8d, edx
xor r8d, r9d
or eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
mov ecx, 0xfc80f53f
xor ecx, 0x37f0ac0
xor eax, ecx
sub eax, 0xd45d9032
mov ecx, 0x97621787
xor ecx, 0x96ca48bb
xor edx, edx
div ecx
xor eax, 0x87852220
mov ecx, 0x4af6df00
xor ecx, 0x18f3179a
cmp eax, ecx
je 0x14020d0b2
mov eax, dword [0x14024f430]
mov ecx, dword [0x14024f434]
xor eax, ecx
xor eax, 0x8bf48da7
add eax, 0xcf15c359
xor eax, 0x20e0c4
or eax, 0x4c9e1339
mov dword [rbp + 0x114], eax
mov eax, 0x10
mov qword [rbp + 0xd8], rax
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xf8], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xf0], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x68], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x70], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x78], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x80], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x88], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x90], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0x98], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xa0], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xa8], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xb0], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xb8], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xc0], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xc8], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xd0], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0xd8]
mov rcx, rsp
mov qword [rbp + 0xe0], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0xe8], rax
sub rsp, 0x20
call fcn.140215010
mov rcx, qword [rbp + 0xf0]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0xf8]
mov qword [rbp + 0x108], rdx
add rdx, 0x50
mov qword [rbp + 0x100], rdx
mov qword [rax], 0
mov ax, 0xbac
xor ax, 0xca7
mov word [rcx], ax
sub rsp, 0x20
call fcn.140067cc0
mov rcx, qword [rbp + 0x108]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0x114]
mov qword [rbp + 0x118], rdx
cmp byte [rcx + 0x50], 0
sete cl
mov byte [rbp + 0x127], cl
cmp eax, 0x6b4a7382
je 0x14020c4f7
mov al, byte [rbp + 0x127]
test al, 1
jne 0x14020c7f2
jmp 0x14020cea6
mov rcx, qword [rbp + 0x60]
mov r8, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x118]
mov r9, qword [0x14025aa08]
mov r10, qword [r9]
mov qword [rdx], r10
mov r9, qword [r9 + 8]
mov qword [rdx + 8], r9
mov r9, qword [rax]
mov qword [r8], r9
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.14020d0c4
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x100]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp + 0x28], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x30], rcx
cmp byte [rax], 0
jne 0x14020cea6
mov ecx, 2
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.1400193c0
add rsp, 0x20
mov qword [rbp + 8], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.14001bdf0
mov rcx, qword [rbp + 0x38]
add rsp, 0x20
mov qword [rbp + 0x10], rax
mov word [rcx], 0x67d
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x100]
mov qword [rbp + 0x18], rcx
mov cl, byte [rax]
mov dl, 0x27
xor dl, 0x27
mov al, 1
cmp cl, dl
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x18]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001c002
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp + 0x10]
add rsp, 0x20
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov cx, 0xa8d5
xor cx, 0xabc3
sub rsp, 0x20
call fcn.140068370
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x10], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov ecx, 0x82c
sub rsp, 0x20
call fcn.140068370
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x14], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
mov qword [rax + 8], rcx
movabs rcx, 0x757eb24ac6e21645
movabs rax, 0x757eb24ac6e2165d
xor rcx, rax
movabs rdx, 0x6e7aa616c9cd26c9
movabs rax, 0x6e7aa616c9cd26c1
xor rdx, rax
sub rsp, 0x20
call fcn.14001bdf0
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov qword [rbp - 8], rax
mov ax, 0x4f59
xor ax, 0x469a
mov word [rcx], ax
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x100]
mov qword [rbp], rcx
mov cl, byte [rax]
mov dl, 1
xor dl, 1
mov al, 1
cmp cl, dl
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0x88]
mov rdx, qword [rbp + 0x90]
mov rax, qword [rbp]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001c002
mov rcx, qword [rbp + 0x88]
mov rax, qword [rbp - 8]
add rsp, 0x20
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov cx, 0xffc2
xor cx, 0xf97b
sub rsp, 0x20
call fcn.140068370
mov rcx, qword [rbp + 0x100]
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 + 0x27], al
jne 0x14020cec1
mov ecx, 0xeb1
sub rsp, 0x20
call fcn.140068370
mov rcx, qword [rbp + 0x100]
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 + 0x27], al
jne 0x14020cec1
mov rdx, qword [rbp + 0xa0]
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 8]
mov r8, qword [rbp + 0x30]
mov r9, qword [rbp + 0x28]
mov r10, qword [rbp - 8]
mov qword [rax + 0x10], r10
mov qword [rcx], r9
mov qword [rcx + 8], r8
mov qword [rdx], 2
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140162a40
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov qword [rbp - 0x10], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp + 0xf8]
mov qword [rax], rcx
mov edx, 1
sub rsp, 0x20
call fcn.140163b4b
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov qword [rbp - 0x18], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0x48]
mov word [rcx], 0xb
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x100]
mov qword [rbp - 0x20], rcx
mov cl, byte [rax]
mov dl, 0x2e
xor dl, 0x2e
mov al, 1
cmp cl, dl
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.1400193c0
add rsp, 0x20
mov qword [rbp - 0x38], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.14001bdf0
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov qword [rbp - 0x30], rax
mov word [rcx], 0xb32
sub rsp, 0x20
call fcn.140067cc0
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov qword [rbp - 0x28], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0xb0]
mov rax, qword [rbp - 0x28]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001c002
mov rcx, qword [rbp + 0xa8]
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, 0xae9
sub rsp, 0x20
call fcn.140068370
mov rcx, qword [rbp + 0x100]
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 + 0x27], al
jne 0x14020cec1
mov ecx, 0x261
sub rsp, 0x20
call fcn.140068370
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp - 0x30]
mov dword [rax + 0x14], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov r8, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0xb8]
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x38]
mov r9, qword [rbp - 0x20]
mov r10, qword [rbp - 0x30]
mov qword [rax + 8], r10
mov r10, qword [r9]
mov qword [rdx], r10
mov r9, qword [r9 + 8]
mov qword [rdx + 8], r9
movabs r9, 0xc50518ac3e6582a5
movabs r10, 0xc50518ac3e6582a4
xor r9, r10
mov qword [r8], r9
mov qword [r8 + 8], rax
mov r9d, 0x705267be
xor r9d, 0x705267bf
sub rsp, 0x20
call fcn.140163550
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov qword [rbp - 0x40], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp + 0xf8]
sub rsp, 0x20
call fcn.140163040
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rcx]
mov qword [rbp - 0x48], rax
sub rsp, 0x20
call fcn.140162a36
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0x58]
mov word [rcx], 0x94
sub rsp, 0x20
call fcn.140067cc0
mov rcx, qword [rbp + 0x100]
add rsp, 0x20
mov qword [rbp - 0x50], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
mov rcx, qword [rbp + 0xc8]
mov rdx, qword [rbp + 0xd0]
mov rax, qword [rbp - 0x50]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001c002
mov rdx, qword [rbp + 0xc8]
mov r9, qword [rbp + 0x128]
mov rax, qword [rbp + 0xe0]
mov rcx, qword [rbp + 0xe8]
add rsp, 0x20
mov r8, qword [rdx]
mov rdx, qword [rdx + 8]
mov r9, qword [r9]
add r9, 0x18
mov qword [rbp - 0x60], r9
mov qword [rax], r8
mov qword [rax + 8], rdx
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x48]
mov r8, qword [rbp + 0xe0]
mov rax, qword [rbp + 0xe8]
add rsp, 0x20
xor r9d, r9d
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.1401718d0
mov rcx, qword [rbp + 0x100]
add rsp, 0x30
mov dword [rbp - 0x54], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x14020cec1
sub rsp, 0x20
mov cx, 0xa22
call fcn.140067b58
mov r8d, dword [rbp - 0x54]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x100]
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 + 0x27], al
jne 0x14020ce84
jmp 0x14020cec1
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp + 0x128]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x40]
mov byte [rcx], 1
mov al, byte [rax]
mov byte [rbp + 0x27], al
jmp 0x14020cec1
mov rax, qword [rbp + 0x100]
mov byte [rax], 0
xor eax, eax
mov cl, al
mov al, 1
mov byte [rbp - 0x62], cl
mov byte [rbp - 0x61], al
jmp 0x14020cf45
mov rdx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x100]
mov al, byte [rbp + 0x27]
mov byte [rbp - 0x64], al
cmp al, 0
sete cl
mov byte [rbp - 0x63], cl
mov byte [r8], 0
cmp rdx, 0
mov byte [rbp - 0x62], cl
mov byte [rbp - 0x61], al
je 0x14020cf45
mov al, byte [rbp - 0x64]
mov cl, byte [rbp - 0x63]
mov rdx, qword [rbp + 0x30]
mov r8, qword [rdx]
mov r9, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor r9, rdx
mov rdx, r8
xor rdx, r9
and rdx, r8
cmp rdx, 0
mov byte [rbp - 0x62], cl
mov byte [rbp - 0x61], al
jne 0x14020cf45
mov rcx, qword [rbp + 0x30]
sub rsp, 0x20
call fcn.14000f4df
mov cl, byte [rbp - 0x63]
mov al, byte [rbp - 0x64]
add rsp, 0x20
mov byte [rbp - 0x62], cl
mov byte [rbp - 0x61], al
mov rax, qword [rbp + 0xf8]
mov cl, byte [rbp - 0x62]
mov dl, byte [rbp - 0x61]
mov byte [rbp - 0x66], dl
mov byte [rbp - 0x65], cl
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1401629d7
mov rax, qword [rbp + 0x100]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14020cf8f
mov al, byte [rbp - 0x65]
mov rcx, qword [rbp + 0x100]
mov dl, byte [rbp - 0x66]
mov byte [rcx], dl
test al, 1
jne 0x14020d0a9
mov eax, dword [0x14024f438]
imul eax, dword [0x14024f43c]
and eax, 0xdee2d1c3
mov ecx, eax
xor ecx, 0x23c8391
xor ecx, 0xffffffff
and ecx, 0x23c8391
shl ecx, 1
sub ecx, 0x23c8391
sub eax, ecx
or eax, 0x1ad24c48
cmp eax, 0x9c1f1860
je 0x14020d0bb
mov ecx, dword [0x14024f440]
xor ecx, 0x91ea3d11
sub ecx, dword [0x14024f444]
mov eax, 0x9b28d105
xor eax, 0xaf7733e
xor ecx, eax
mov eax, ecx
and eax, 0x1e7baf7f
or ecx, 0x1e7baf7f
add eax, ecx
imul eax, eax, 0xbb7780c
mov dword [rbp - 0x74], eax
sub rsp, 0x20
call fcn.14020378e
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp - 0x74]
mov rcx, qword [rcx]
mov qword [rbp - 0x70], rcx
cmp word [rcx + 0x12], 1
setg cl
mov byte [rbp - 0x67], cl
cmp eax, 0xa60d9ac8
ja 0x14020cfcd
mov al, byte [rbp - 0x67]
test al, 1
jne 0x14020d043
jmp 0x14020d0a9
mov rax, qword [rbp - 0x70]
mov rax, qword [rax + 0x18]
mov eax, dword [rax + 8]
mov ecx, 0xde449474
xor ecx, 0x1b36b615
cmp eax, ecx
jne 0x14020d0a9
mov rax, qword [rbp + 0x100]
mov cl, pe_nt_image_headers64
xor cl, 0x80
mov byte [rax], cl
sub rsp, 0x20
call fcn.1402037a0
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.14009c190
mov rax, qword [rbp + 0x100]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14020d0a9
sub rsp, 0x20
call fcn.1402037cd
add rsp, 0x20
lea rsp, [rbp + 0x130]
pop rbp
ret
mov esp, 0xe9a4a6f1
cmp al, 0xf4
invalid
add dh, byte [rbp + 0x16]
or ebp, ecx
or edi, edi
invalid