Function at 0x1401f04c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xf0
lea rbp, [rsp + 0x80]
mov eax, 0x10
mov qword [rbp + 8], rax
call fcn.1401f2390
sub rsp, rax
mov rax, qword [rbp + 8]
mov rcx, rsp
mov qword [rbp], rcx
call fcn.1401f2390
sub rsp, rax
mov rax, qword [rbp + 8]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x18], rax
mov rax, qword [0x140209370]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.140009923
add rsp, 0x20
mov qword [rbp + 0x28], rax
add rax, 0x50
mov qword [rbp + 0x20], rax
sub rsp, 0x20
call fcn.1401ec0c0
mov rax, qword [rbp + 0x28]
add rsp, 0x20
cmp byte [rax + 0x50], 0
jne 0x1401f11c3
mov rax, qword [0x1402092e8]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.140049820
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f11c3
mov rax, qword [0x1402092e0]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1400c914d
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f11c3
mov ecx, dword [0x1402003d0]
mov edx, dword [0x1402003d4]
mov eax, ecx
xor eax, 0xffffffff
mov r8d, ecx
xor r8d, 0xffffffff
or eax, r8d
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
and edx, edx
xor edx, 0xffffffff
xor ecx, 0xffffffff
mov r8d, 0x99cc8b1d
xor r8d, 0x663374e2
xor edx, r8d
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xb6c53c5
xor ecx, 0x5d8c6986
sub eax, ecx
mov ecx, 0x6bea5193
xor edx, edx
div ecx
imul eax, eax, 0xf17d90b4
cmp eax, 0x96ded6a5
je 0x1401f11d3
mov eax, dword [0x1402003d8]
mov edx, dword [0x1402003dc]
xor edx, 0xffffffff
mov ecx, eax
xor ecx, edx
and ecx, eax
mov eax, 0xc7f0f8a8
xor eax, 0xe5ec8b04
sub ecx, eax
sub ecx, 0x154b48ac
add ecx, 0x221c73ac
xor ecx, 0x6179e407
mov edx, ecx
xor edx, 0xffffffff
mov eax, 0x75a7b014
xor eax, 0xef2867f1
and eax, edx
mov edx, 0xffffffff
xor edx, 0x9a8fd7e5
and ecx, edx
or eax, ecx
mov dword [rbp - 8], eax
mov rcx, qword [0x140209378]
sub rsp, 0x20
call fcn.140004410
mov rcx, qword [rbp + 0x20]
mov eax, dword [rbp - 8]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xcf
xor dl, 0xcf
cmp cl, dl
sete cl
mov byte [rbp - 1], cl
cmp eax, 0xc9171384
jb 0x1401f11d3
mov al, byte [rbp - 1]
test al, 1
jne 0x1401f069f
jmp 0x1401f11c3
mov rcx, qword [0x140209360]
sub rsp, 0x20
call fcn.140004770
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f11c3
mov eax, dword [0x1402003e0]
or eax, dword [0x1402003e4]
mov ecx, 0x897a35e6
xor ecx, 0x1ea8ecc4
add eax, ecx
or eax, 0xfd818a71
mov edx, 0xffffffff
xor edx, 0x5bb998b0
mov ecx, eax
and ecx, edx
mov r8d, 0x7f53e8f9
xor r8d, 0x24ea7049
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
cmp eax, 0xd58be1c8
jbe 0x1401f11dc
mov ecx, dword [0x1402003e8]
xor ecx, 0xe5e76161
mov edx, dword [0x1402003ec]
mov eax, ecx
xor eax, edx
xor edx, 0xffffffff
and ecx, edx
shl ecx, 1
sub ecx, eax
add ecx, 0x7fc88b0d
mov r8d, 0x8fba6d77
xor r8d, 0x29f94b05
mov eax, 0x5c6d57c5
xor eax, 0xa392a83a
xor r8d, eax
mov edx, ecx
and edx, r8d
mov eax, ecx
or eax, r8d
mov r8d, 0x427866aa
xor r8d, 0xbd879955
xor eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0xa6432672
mov r8d, 0xbf279dc7
xor r8d, 0x1964bbb5
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0xc9a5001f
or ecx, 0xc9a5001f
add eax, ecx
mov dword [rbp - 0x10], eax
mov rax, qword [0x140209368]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14016c0a0
mov rcx, qword [rbp + 0x20]
mov eax, dword [rbp - 0x10]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0x8b15e6e4
jbe 0x1401f11dc
mov al, byte [rbp - 9]
test al, 1
jne 0x1401f07dc
jmp 0x1401f11c3
mov rax, qword [0x1402092f0]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1400ed2a6
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f11c3
mov rcx, qword [0x140209340]
sub rsp, 0x20
call fcn.140131960
add rsp, 0x20
mov rcx, qword [0x1402093d8]
sub rsp, 0x20
call fcn.140131961
mov rcx, qword [rbp]
add rsp, 0x20
mov rax, qword [0x140209308]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14002f1b0
add rsp, 0x20
mov rax, qword [0x140209300]
mov rcx, qword [rax]
mov qword [rbp + 0x60], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x60]
sub rsp, 0x20
call fcn.14002f1b0
add rsp, 0x20
mov rax, qword [0x140209320]
mov rax, qword [rax + 8]
mov qword [rbp - 0x18], rax
cmp rax, 0
je 0x1401f08e1
mov rax, qword [rbp - 0x18]
mov rax, qword [rax]
movabs rdx, 0xe4042155bcac9f36
movabs rcx, 0xa4042155bcac9f36
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
and rax, rcx
cmp rax, 0
jne 0x1401f08e1
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x140209328]
mov rax, qword [rax + 8]
mov qword [rbp - 0x20], rax
cmp rax, 0
je 0x1401f094c
mov rax, qword [rbp - 0x20]
mov rax, qword [rax]
movabs rcx, 0x856f8e295a02fe9d
movabs rdx, 0xc56f8e295a02fe9d
xor rcx, rdx
and rax, rcx
movabs rcx, 0xb60201d3dfe3ef21
movabs rdx, 0xb60201d3dfe3ef21
xor rcx, rdx
cmp rax, rcx
jne 0x1401f094c
mov rcx, qword [rbp - 0x20]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x1402093b8]
mov rax, qword [rax + 8]
mov qword [rbp - 0x28], rax
cmp rax, 0
je 0x1401f0a46
mov eax, dword [0x1402003f0]
xor edx, edx
div dword [0x1402003f4]
add eax, 0x6fc879f5
add eax, 0xa21ff8fa
mov ecx, 0xb8c0ad5a
xor ecx, 0xd708d4af
sub eax, ecx
mov ecx, 0x299170f7
xor edx, edx
div ecx
mov ecx, 0xe3088d3e
xor ecx, 0x52cd2106
xor edx, edx
div ecx
cmp eax, 0x9e2f0c19
je 0x1401f11e5
mov r8, qword [rbp - 0x28]
mov eax, dword [0x1402003f8]
mov edx, dword [0x1402003fc]
xor ecx, ecx
sub ecx, edx
add eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0x4f9a4385
and ecx, 0x4f9a4385
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x77e3aeb6
xor ecx, 0x881c5149
xor eax, ecx
mov ecx, 0x62f019fe
xor ecx, 0xe42b60ac
xor eax, ecx
mov ecx, 0xfdd78bf4
xor edx, edx
div ecx
mov ecx, 0xaef732c2
xor ecx, 0xb8b0c7b0
movabs rdx, 0x4000000000000000
and rdx, qword [r8]
cmp rdx, 0
sete dl
mov byte [rbp - 0x29], dl
cmp eax, ecx
je 0x1401f11e5
mov al, byte [rbp - 0x29]
test al, 1
jne 0x1401f0a35
jmp 0x1401f0a46
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x1402093b0]
mov rax, qword [rax + 8]
mov qword [rbp - 0x38], rax
cmp rax, 0
je 0x1401f0a8b
mov rcx, qword [rbp - 0x38]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x1401f0a8b
mov rcx, qword [rbp - 0x38]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x140209348]
mov rax, qword [rax + 8]
mov qword [rbp - 0x40], rax
cmp rax, 0
je 0x1401f0ae0
mov rax, qword [rbp - 0x40]
mov rax, qword [rax]
movabs rcx, 0x3a926ac738c2559c
movabs rdx, 0x7a926ac738c2559c
xor rcx, rdx
and rax, rcx
cmp rax, 0
jne 0x1401f0ae0
mov rcx, qword [rbp - 0x40]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x1402093d0]
mov rax, qword [rax + 8]
mov qword [rbp - 0x48], rax
cmp rax, 0
je 0x1401f0b62
mov rax, qword [rbp - 0x48]
mov rax, qword [rax]
movabs rdx, 0x22decaa164471ef2
movabs rcx, 0x22decaa164471ef3
xor rdx, rcx
mov rcx, rax
add rcx, rdx
xor rax, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
add rax, rcx
movabs rcx, 0xf6b5c1575be6da59
movabs rdx, 0xf6b5c1575be6da59
xor rcx, rdx
cmp rax, rcx
jne 0x1401f0b62
mov rcx, qword [rbp - 0x48]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x140209380]
mov rax, qword [rax + 8]
mov qword [rbp - 0x50], rax
cmp rax, 0
je 0x1401f0c07
mov rax, qword [rbp - 0x50]
mov rax, qword [rax]
movabs rdx, 0x9b17b79411eea044
movabs rcx, 0x9b17b79411eea045
xor rdx, rcx
mov rcx, rax
add rcx, rdx
movabs rdx, 0xf41061d078239f6f
movabs r8, 0xbef9e2f87dc6090
xor rdx, r8
xor rax, rdx
movabs rdx, 0xbb721b4e77713a2c
movabs r8, 0xfb721b4e77713a2c
xor rdx, r8
or rax, rdx
add rax, rcx
movabs rcx, 0x19aad38b19534d73
movabs rdx, 0x19aad38b19534d73
xor rcx, rdx
cmp rax, rcx
jne 0x1401f0c07
mov rcx, qword [rbp - 0x50]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov ecx, dword [0x140200400]
mov edx, dword [0x140200404]
mov eax, ecx
or eax, edx
xor eax, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
mov edx, 0x4c708ca2
xor edx, 0xb38f735d
xor ecx, edx
and eax, ecx
or eax, 0x60236757
sub eax, 0x3ce7f5a
mov ecx, eax
xor ecx, 0x85a32e02
xor ecx, 0xffffffff
and ecx, 0x85a32e02
shl ecx, 1
sub ecx, 0x85a32e02
sub eax, ecx
mov ecx, 0x47433318
xor ecx, 0xc02f80d3
cmp eax, ecx
je 0x1401f11ee
mov eax, dword [0x140200408]
mov ecx, dword [0x14020040c]
xor ecx, 0xffffffff
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0xd37f3dd9
xor edx, edx
div ecx
mov r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x6be9b72b
mov r8d, 0xffffffff
xor r8d, 0x64dd5520
mov eax, ecx
and eax, 0x64dd5520
and r11d, r8d
mov r9d, edx
and r9d, 0x64dd5520
mov r10d, 0x9366c01b
xor r10d, 0xf88f7730
and r10d, r8d
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
mov edx, 0xab8f857
xor edx, 0xf54707a8
xor ecx, edx
mov edx, 0x1c241b6a
xor edx, 0x78f94e4a
or edx, r8d
and ecx, edx
or eax, ecx
and eax, eax
mov ecx, 0x26e4a322
xor ecx, 0xd91b5cdd
xor eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x52831991
mov edx, 0xffffffff
xor edx, 0x52831991
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0x603a8611
xor ecx, 0x71dd6f8c
mov rdx, qword [0x140209298]
mov rdx, qword [rdx + 8]
mov qword [rbp - 0x60], rdx
cmp rdx, 0
sete dl
mov byte [rbp - 0x51], dl
cmp eax, ecx
jb 0x1401f11ee
mov al, byte [rbp - 0x51]
test al, 1
jne 0x1401f0ee5
jmp 0x1401f0d62
mov eax, dword [0x140200410]
mov ecx, 0xee191f6f
xor ecx, 0x53677d17
xor eax, ecx
mov edx, dword [0x140200414]
mov ecx, 0xbd7467be
xor ecx, 0xa0eecb24
xor edx, ecx
or eax, eax
mov ecx, 0x6e51425a
xor ecx, 0x91aebda5
xor eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
mov edx, 0xb1e5e2fb
xor edx, 0x4e1a1d04
xor eax, edx
mov edx, 0x32956284
xor edx, 0xcd6a9d7b
xor ecx, edx
and eax, ecx
mov ecx, 0xf7759b76
xor ecx, 0x34ac6450
or eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x52184897
mov r8d, 0xffffffff
xor r8d, 0x52184897
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x52184897
or eax, 0x52184897
imul eax, edx
add eax, ecx
mov ecx, 0x9d27dbf0
xor ecx, 0x6ae6f87
imul eax, ecx
mov ecx, 0xa65d4aed
xor ecx, 0x7ee0a0c5
cmp eax, ecx
jbe 0x1401f11f7
mov rdx, qword [rbp - 0x60]
mov eax, dword [0x140200418]
mov r8d, dword [0x14020041c]
mov ecx, eax
and ecx, r8d
shl ecx, 1
xor eax, r8d
add eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xbc62ba59
xor ecx, 0x2cd5d1a8
mov r8d, 0x615655da
xor r8d, 0xf1e13e2b
and ecx, r8d
mov r8d, 0x9279f28f
xor r8d, 0x6d860d70
xor ecx, r8d
mov r8d, 0x182244fc
xor r8d, 0xe7ddbb03
xor eax, r8d
mov r8d, 0x27ff0958
xor r8d, 0xd800f6a7
xor ecx, r8d
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x40eb3a05
add eax, ecx
add eax, 1
and eax, 0xf3a3b6ea
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xae08a4b9
jae 0x1401f11f7
mov al, byte [rbp - 0x61]
test al, 1
jne 0x1401f0ed4
jmp 0x1401f0ee5
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x140209330]
mov rax, qword [rax + 8]
mov qword [rbp - 0x70], rax
cmp rax, 0
je 0x1401f0f79
mov rax, qword [rbp - 0x70]
mov rax, qword [rax]
movabs rcx, 0xf797684ecdb6d15f
movabs rdx, 0x86897b132492ea0
xor rcx, rdx
xor rax, rcx
mov rdx, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
xor rdx, rcx
mov rcx, 0xffffffffffffffff
movabs r8, 0x63a387a89b7d68df
xor rcx, r8
or rax, rdx
movabs rdx, 0x63a387a89b7d68df
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jne 0x1401f0f79
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x1402093c8]
mov rax, qword [rax + 8]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x1401f0fe4
mov rax, qword [rbp - 0x78]
mov rax, qword [rax]
movabs rcx, 0x58ef3ebced109278
movabs rdx, 0x18ef3ebced109278
xor rcx, rdx
and rax, rcx
movabs rcx, 0xc5d74dca4928868
movabs rdx, 0xc5d74dca4928868
xor rcx, rdx
cmp rax, rcx
jne 0x1401f0fe4
mov rcx, qword [rbp - 0x78]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov rax, qword [0x1402092f8]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14001bfa0
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov rax, qword [0x1402092c8]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140018580
add rsp, 0x20
mov rax, qword [0x140209290]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.140048c18
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f11c3
mov rax, qword [0x140209338]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14004a290
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f11c3
mov eax, dword [0x140200420]
xor edx, edx
div dword [0x140200424]
imul eax, eax, 0xeee45f7f
and eax, 0x8d55334a
mov ecx, 0x891f8fc0
xor edx, edx
div ecx
cmp eax, 0x4b8be901
je 0x1401f1200
mov eax, dword [0x140200428]
or eax, dword [0x14020042c]
mov ecx, 0x7aef1dbf
xor edx, edx
div ecx
xor eax, 0x203bfd2e
xor eax, 0x2421e425
mov dword [rbp - 0x80], eax
mov rax, qword [0x1402093c0]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1400a2723
add rsp, 0x20
mov rax, qword [0x1402093a8]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.140045800
add rsp, 0x20
mov rax, qword [0x1402093a0]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14002fba0
mov rcx, qword [rbp + 0x20]
mov eax, dword [rbp - 0x80]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x79], cl
cmp eax, 0x60718098
jae 0x1401f1096
mov al, byte [rbp - 0x79]
test al, 1
jne 0x1401f1128
jmp 0x1401f11c3
mov rax, qword [0x140209398]
mov rcx, qword [rax]
mov qword [rbp + 0x50], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x50]
sub rsp, 0x20
call fcn.14002f2ec
mov rcx, qword [rbp + 0x18]
add rsp, 0x20
mov rax, qword [0x1402092d0]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140018580
add rsp, 0x20
mov rax, qword [0x1402092d8]
mov rcx, qword [rax]
mov qword [rbp + 0x40], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x48], rax
lea rcx, [rbp + 0x40]
sub rsp, 0x20
call fcn.140018580
add rsp, 0x20
mov rax, qword [0x140209350]
mov rcx, qword [rax]
mov qword [rbp + 0x30], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x38], rax
lea rcx, [rbp + 0x30]
sub rsp, 0x20
call fcn.14002f3c0
add rsp, 0x20
sub rsp, 0x20
call fcn.14002f127
nop
lea rsp, [rbp + 0x70]
pop rbp
ret
wait
insb byte [rdi], dx
add al, 0x6c
jmp 0x1401f0604
int3
xchg ebp, eax
cmpsb byte [rsi], byte [rdi]
push rsi
jmp 0x1401f09ad
and al, 0x91
stosb byte [rdi], al
jmp 0x1401f0c6a
or dl, byte [rdi - 0x46]
pop rax
jmp 0x1401f0e1d
in al, dx
outsb dx, byte [rsi]
invalid