Function at 0x1401fc180
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 + 0x18], rax
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
mov eax, 0x20
mov qword [rbp + 0x28], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x28]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rcx, rsp
mov qword [rbp + 0x20], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x28]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x38], rax
sub rsp, 0x20
call fcn.140206ec0
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov qword [rbp + 0x50], rax
add rax, 0x50
mov qword [rbp + 0x48], rax
mov word [rcx], 0x41
sub rsp, 0x20
call fcn.140070140
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x58], rcx
cmp byte [rax + 0x50], 0
jne 0x1401fca81
mov ecx, dword [0x140223e90]
mov edx, dword [0x140223e94]
mov eax, ecx
or eax, eax
mov r8d, 0xd8f2f252
xor r8d, 0x270d0dad
xor eax, r8d
mov r8d, edx
or r8d, r8d
mov r9d, 0x66347086
xor r9d, 0x99cb8f79
xor r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
xor ecx, 0xffffffff
mov r8d, 0x3bc5d1af
xor r8d, 0xc43a2e50
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
xor eax, 0x4a3ced78
sub eax, 0xe3937302
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x3248d042
mov edx, 0x6e5ce226
xor edx, 0x5c143264
mov r8d, 0xdf7c3d3d
xor r8d, 0x2083c2c2
xor edx, r8d
and eax, edx
sub eax, ecx
cmp eax, 0x1b90b27a
jbe 0x1401fcafc
mov eax, dword [0x140223e98]
xor edx, edx
div dword [0x140223e9c]
mov edx, eax
xor edx, 0xffffffff
and edx, 0x4d585136
mov r8d, 0xffffffff
xor r8d, 0x4d585136
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x4d585136
mov r8d, 0x8436710c
xor r8d, 0xc96e203a
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xe3f8f89c
xor ecx, 0x920a9652
xor eax, ecx
mov ecx, eax
and ecx, 0x908ae7bc
shl ecx, 1
mov edx, 0xa721bcc6
xor edx, 0x37ab5b7a
add eax, edx
sub eax, ecx
mov dword [rbp - 0x10], eax
lea rcx, [rbp + 0xd0]
mov edx, 0x10
sub rsp, 0x20
call fcn.1401f6670
mov rax, qword [rbp + 0x58]
mov rdx, qword [rbp - 8]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x90], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x98], rax
lea rcx, [rbp + 0xd0]
lea r8, [rbp + 0x90]
mov r9d, 0x20019
sub rsp, 0x20
call fcn.1400e88cb
mov rcx, qword [rbp + 0x48]
mov eax, dword [rbp - 0x10]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0x11b6920f
je 0x1401fcafc
mov al, byte [rbp - 9]
test al, 1
jne 0x1401fc3d9
jmp 0x1401fca81
mov rax, qword [rbp + 0xd0]
mov qword [rbp - 0x18], rax
cmp byte [rbp + 0xd8], 0
jne 0x1401fc410
sub rsp, 0x20
call fcn.14008e6f0
add rsp, 0x20
mov rax, qword [rbp + 0x48]
cmp byte [rax], 0
je 0x1401fcaf3
jmp 0x1401fca81
mov rcx, qword [rbp + 0x10]
movabs rdx, 0xca3a94dfe43c682
movabs rax, 0xca3a94dfe43c69a
xor rdx, rax
sub rsp, 0x20
call fcn.1401f6670
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov al, 0xdd
xor al, 0xdd
mov byte [rcx], al
add rcx, 8
mov qword [rbp - 0x20], rcx
xor eax, eax
mov edx, eax
sub rsp, 0x20
call fcn.1400335a1
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp - 0x18]
add rsp, 0x20
mov r8b, 0x85
xor r8b, 0x82
sub rsp, 0x20
call fcn.1401f7100
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
je 0x1401fc4ae
mov rax, qword [rbp + 0x48]
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401f6af7
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x8e
xor cl, 0x8e
cmp al, cl
mov byte [rbp - 0x21], al
jne 0x1401fc9fe
mov cx, 0x1e5b
xor cx, 0x1a6e
sub rsp, 0x20
call fcn.14006fe60
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x48]
mov qword [rbp - 0x30], rcx
cmp byte [rax], 0
jne 0x1401fc563
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x20]
cmp rax, qword [rcx]
jge 0x1401fc56d
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp + 8]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov byte [rax], 1
mov rax, qword [rcx]
mov qword [rbp + 0x78], rax
mov rax, qword [rcx + 8]
mov qword [rbp + 0x80], rax
mov rax, qword [rcx + 0x10]
mov qword [rbp + 0x88], rax
sub rsp, 0x20
call fcn.1401f3864
mov rax, qword [rbp]
mov rdx, qword [rbp + 0x20]
add rsp, 0x20
mov rcx, qword [rax]
add rcx, 0x10
mov rax, qword [rbp + 0x78]
mov qword [rdx], rax
mov rax, qword [rbp + 0x80]
mov qword [rdx + 8], rax
mov rax, qword [rbp + 0x88]
mov qword [rdx + 0x10], rax
sub rsp, 0x20
call fcn.140033e90
add rsp, 0x20
jmp 0x1401fc56d
mov al, 1
mov byte [rbp - 0x21], al
jmp 0x1401fc9fe
mov word [rbp + 0xce], 0x53d
lea rcx, [rbp + 0xce]
sub rsp, 0x20
call fcn.140070140
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x48]
mov qword [rbp - 0x38], rcx
mov cl, byte [rax]
mov dl, 3
xor dl, 3
mov al, 1
cmp cl, dl
mov byte [rbp - 0x21], al
jne 0x1401fc9fe
lea rcx, [rbp + 0xb8]
mov edx, 0x10
sub rsp, 0x20
call fcn.1401f6670
mov rax, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x18]
mov r8, qword [rbp + 0x30]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [r8], rcx
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
lea rcx, [rbp + 0xb8]
mov r9d, 0x20019
sub rsp, 0x20
call fcn.1400e88cb
mov rcx, qword [rbp + 0x48]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x21], al
jne 0x1401fc9fe
mov eax, dword [0x140223ea0]
mov ecx, dword [0x140223ea4]
mov edx, 0x9e202a89
xor edx, 0x454c8a03
sub eax, edx
sub eax, ecx
add eax, 0xdb6ca08a
xor eax, 0x8bf3fef1
add eax, 0xc61addc2
imul eax, eax, 0xc1745ada
mov ecx, 0x168cf1a5
xor ecx, 0x9cf95771
cmp eax, ecx
jbe 0x1401fcb05
mov eax, dword [0x140223ea8]
xor eax, 0xc5317017
mov r8d, dword [0x140223eac]
mov ecx, 0x4c22b195
xor ecx, 0xb393d11e
xor r8d, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xfdc23858
xor edx, edx
div ecx
sub eax, 0x66ccf750
mov ecx, 0xffffffff
xor ecx, 0xa15b546
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov rcx, qword [rbp + 0xb8]
mov qword [rbp - 0x48], rcx
cmp byte [rbp + 0xc0], 0
sete cl
mov byte [rbp - 0x39], cl
cmp eax, 0x1c4a1082
jbe 0x1401fcb05
mov al, byte [rbp - 0x39]
test al, 1
jne 0x1401fc6e6
jmp 0x1401fc74b
sub rsp, 0x20
call fcn.14008e6f0
mov rcx, qword [rbp + 0x48]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x21], al
jne 0x1401fc9fe
mov rcx, qword [rbp + 0x10]
sub rsp, 0x20
call fcn.1401f383e
mov rcx, qword [rbp + 0x48]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x49], al
jne 0x1401fca45
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.1400e9011
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
je 0x1401fcaf3
jmp 0x1401fca81
lea rcx, [rbp + 0xa0]
mov edx, 0x18
sub rsp, 0x20
call fcn.1401f6670
add rsp, 0x20
mov byte [rbp + 0xa0], 1
lea rcx, [rbp + 0xa0]
add rcx, 8
mov qword [rbp - 0x58], rcx
xor eax, eax
mov edx, eax
sub rsp, 0x20
call fcn.1400335a1
mov rdx, qword [rbp - 0x48]
add rsp, 0x20
mov r8b, 0xcc
xor r8b, 0xce
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.1401f7100
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
je 0x1401fc7e5
mov rax, qword [rbp + 0x48]
mov cl, 0xc6
xor cl, 0xc6
mov byte [rax], cl
sub rsp, 0x20
call fcn.1401f6af7
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xb6
xor cl, 0xb6
cmp al, cl
mov byte [rbp - 0x59], al
jne 0x1401fc982
mov eax, dword [0x140223eb0]
mov ecx, dword [0x140223eb4]
xor ecx, 0x43955cc6
or eax, ecx
or eax, 0xe77ec9db
mov edx, 0x777c34be
xor edx, 0x8883cb41
mov ecx, eax
xor ecx, edx
mov edx, 0x653c39d7
xor edx, 0x85f227aa
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0xe0ce1e7d
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xc31584f6
xor r8d, 0x23db9a8b
mov edx, eax
and edx, r8d
mov r8d, 0xfbcf6679
xor r8d, 0x1b017804
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xeda06672
xor ecx, 0x173a56e0
add eax, ecx
cmp eax, 0x6518806e
jbe 0x1401fcb0e
mov eax, dword [0x140223eb8]
mov ecx, dword [0x140223ebc]
xor eax, ecx
mov ecx, eax
and ecx, 0xb85459d9
and eax, 0x90405889
xor ecx, 0x9440daad
or eax, ecx
add eax, 0xa611667d
mov dword [rbp - 0x60], eax
sub rsp, 0x20
mov cx, 0xbab
call fcn.14006fe60
mov rcx, qword [rbp + 0x48]
mov r8, qword [rbp - 0x58]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x60]
mov cl, byte [rcx]
mov byte [rbp - 0x5b], cl
test cl, cl
sete cl
mov r8, qword [r8]
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp - 0x5a], cl
cmp eax, 0x37257cad
je 0x1401fc86e
mov al, byte [rbp - 0x5b]
mov cl, byte [rbp - 0x5a]
test cl, 1
mov byte [rbp - 0x61], al
jne 0x1401fc8f2
jmp 0x1401fc97c
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp + 8]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x30]
mov dl, 0xea
xor dl, 0xeb
mov byte [rcx], dl
mov rcx, qword [rbp + 0xa0]
mov qword [rax], rcx
mov rcx, qword [rbp + 0xa8]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0xb0]
mov qword [rax + 0x10], rcx
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.1401f3864
mov rcx, qword [rbp]
mov rax, qword [rbp + 0x38]
add rsp, 0x20
mov rcx, qword [rcx]
add rcx, 0x10
mov rdx, qword [rax]
mov qword [rbp + 0x60], rdx
mov rdx, qword [rax + 8]
mov qword [rbp + 0x68], rdx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x70], rax
lea rdx, [rbp + 0x60]
sub rsp, 0x20
call fcn.140033e90
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x61], al
mov al, byte [rbp - 0x61]
mov byte [rbp - 0x59], al
mov rax, qword [rbp + 0x48]
mov cl, byte [rbp - 0x59]
mov byte [rbp - 0x64], cl
mov cl, 0xf8
xor cl, 0xf8
mov byte [rax], cl
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.1401f383e
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov dl, byte [rax]
mov byte [rbp - 0x65], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1400e9011
mov rcx, qword [rbp + 0x48]
mov r8b, byte [rbp - 0x65]
mov al, byte [rbp - 0x64]
add rsp, 0x20
mov dl, byte [rcx]
mov cl, dl
and cl, r8b
xor dl, r8b
or cl, dl
mov dl, 3
xor dl, 3
mov r8b, 1
mov byte [rbp - 0x63], r8b
cmp cl, dl
mov byte [rbp - 0x62], al
je 0x1401fc9f8
mov al, byte [rbp - 0x63]
mov byte [rbp - 0x62], al
mov al, byte [rbp - 0x62]
mov byte [rbp - 0x21], al
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x10]
mov dl, byte [rbp - 0x21]
mov byte [rbp - 0x68], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401f383e
mov rcx, qword [rbp + 0x48]
mov al, byte [rbp - 0x68]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0x8f
xor dl, 0x8e
mov byte [rbp - 0x67], dl
cmp cl, 0
mov byte [rbp - 0x66], al
je 0x1401fca3f
mov al, byte [rbp - 0x67]
mov byte [rbp - 0x66], al
mov al, byte [rbp - 0x66]
mov byte [rbp - 0x49], al
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp - 0x18]
mov dl, byte [rbp - 0x49]
mov byte [rbp - 0x69], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1400e9011
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401fca81
mov al, byte [rbp - 0x69]
mov rcx, qword [rbp + 0x48]
mov byte [rcx], al
cmp al, 0
je 0x1401fcaf3
sub rsp, 0x20
call fcn.1401f6aae
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp word [rax + 0x12], 1
jle 0x1401fcaf3
in al, dx
and al, ch
and al, 0xa0
invalid
mov rax, qword [rbp - 0x78]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x1401fcaf3
mov rax, qword [rbp + 0x48]
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401f6ac0
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.1400a4060
mov rax, qword [rbp + 0x48]
add rsp, 0x20
dec dword [rax - 0x75]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401fcaf3
sub rsp, 0x20
call fcn.1401f6af7
add rsp, 0x20
lea rsp, [rbp + 0xe0]
pop rbp
ret
jrcxz 0x1401fca83
in al, 0x8b
jmp 0x1401fc2e2
add dword [rcx + 0x3de9a12b], ebx
sti
invalid
ja 0x1401fcad4
in eax, dx
mov gs, ecx
push rdi
std
invalid