Function at 0x1401fdfa0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1c0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], rcx
mov eax, 0x10
mov qword [rbp + 0x50], rax
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x60], rax
sub rsp, 0x20
call fcn.140207877
add rsp, 0x20
mov qword [rbp + 0x70], rax
add rax, 0x50
mov qword [rbp + 0x68], rax
mov word [rbp + 0x13e], 0xafa
lea rcx, [rbp + 0x13e]
sub rsp, 0x20
call fcn.140063da0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x78], rcx
cmp byte [rax + 0x50], 0
jne 0x1401feacf
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x78]
mov rcx, qword [0x1402648d8]
mov r8, qword [rcx]
mov qword [rdx], r8
mov rcx, qword [rcx + 8]
mov qword [rdx + 8], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x118], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x120], rax
lea rcx, [rbp + 0x128]
lea r8, [rbp + 0x118]
sub rsp, 0x20
call fcn.1401fa83b
mov rax, qword [rbp + 0x68]
add rsp, 0x20
mov rcx, qword [rbp + 0x128]
mov qword [rbp + 0x28], rcx
mov rcx, qword [rbp + 0x130]
mov qword [rbp + 0x30], rcx
cmp byte [rax], 0
jne 0x1401feacf
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.140018f50
add rsp, 0x20
mov qword [rbp + 8], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.14001b860
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov qword [rbp + 0x10], rax
mov ax, 0xf0b7
xor ax, 0xf667
mov word [rcx], ax
sub rsp, 0x20
call fcn.140063da0
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov qword [rbp + 0x18], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401fe9b8
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x18]
mov rdx, qword [rax]
mov qword [rbp + 0x108], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x110], rax
lea rdx, [rbp + 0x108]
sub rsp, 0x20
call fcn.14001ba7e
mov rcx, qword [rbp + 0x58]
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 ecx, 0xc50
sub rsp, 0x20
call fcn.1400644d0
mov rcx, qword [rbp + 0x68]
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 0x1401fe9b8
mov cx, 0xe44d
xor cx, 0xeed7
sub rsp, 0x20
call fcn.1400644d0
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x68]
mov dword [rcx + 0x14], edx
mov cl, byte [rax]
mov dl, 0x4e
xor dl, 0x4e
mov al, 1
cmp cl, dl
mov byte [rbp + 0x27], al
jne 0x1401fe9b8
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
mov qword [rax + 8], rcx
mov ecx, 0xe2c
sub rsp, 0x20
call fcn.1400644d0
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov dword [rbp + 4], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401fe9b8
mov r8d, dword [rbp + 4]
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
mov qword [rbp + 0xf8], rdx
mov qword [rbp + 0x100], rcx
mov qword [rbp + 0xe8], 1
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xf8]
lea rdx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.140176549
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov qword [rbp - 8], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401fe9b8
mov eax, dword [0x140258ca8]
or eax, dword [0x140258cac]
mov ecx, 0xb6d4332
xor ecx, 0xf492bccd
mov edx, eax
xor edx, ecx
and edx, 0x6754aaf7
mov r8d, 0xffffffff
xor r8d, 0x6754aaf7
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x6754aaf7
or eax, 0x6754aaf7
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x690cfc9c
mov edx, 0xdabab3fe
xor edx, 0x25454c01
xor ecx, edx
and ecx, 0x690cfc9c
shl ecx, 1
sub ecx, 0x690cfc9c
sub eax, ecx
xor eax, 0xa88b0280
cmp eax, 0xe5d04a08
ja 0x1401fec37
mov eax, dword [0x140258cb0]
xor eax, 0xda00086a
xor edx, edx
div dword [0x140258cb4]
mov ecx, eax
xor ecx, 0xc1edbb3c
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x86fb5bfc
mov edx, 0xffffffff
xor edx, 0x86fb5bfc
or ecx, edx
mov edx, 0x1f6a9970
xor edx, 0xe095668f
xor eax, edx
mov edx, 0xb7dc1f0b
xor edx, 0x4823e0f4
xor ecx, edx
or eax, ecx
mov ecx, eax
xor ecx, 0x9e680d95
mov edx, 0xffffffff
xor edx, 0x9e680d95
and eax, edx
shl eax, 1
sub eax, ecx
mov dword [rbp - 0x1c], eax
mov word [rbp + 0x13c], 0xf1a
lea rcx, [rbp + 0x13c]
sub rsp, 0x20
call fcn.140063da0
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x1c]
mov qword [rbp - 0x18], rdx
mov cl, byte [rcx]
mov dl, 0x48
xor dl, 0x48
cmp cl, dl
sete cl
mov byte [rbp - 9], cl
cmp eax, 0x756cbd85
je 0x1401fe2e9
mov cl, byte [rbp - 9]
mov al, 1
test cl, 1
mov byte [rbp + 0x27], al
jne 0x1401fe3ba
jmp 0x1401fe9b8
mov eax, dword [str._:]
and eax, dword [0x140258cbc]
and eax, eax
xor eax, 0xffffffff
mov ecx, 0x3607ded3
xor ecx, 0xdabd89e3
mov edx, 0x32f41bcc
xor edx, 0xde4e4cfc
and ecx, edx
mov edx, 0x6b80cb45
xor edx, 0x947f34ba
xor ecx, edx
xor eax, 0xffffffff
mov edx, 0xbd9265d1
xor edx, 0x426d9a2e
xor ecx, edx
or eax, ecx
sub eax, 0x2c0762bd
or eax, 0x6ce1d8b2
cmp eax, 0xb1a3297c
jb 0x1401fec40
mov ecx, dword [0x140258cc0]
xor ecx, 0x84c688d
mov edx, dword [0x140258cc4]
mov eax, 0xe18c6d2e
xor eax, 0xc107cd0b
xor edx, eax
mov eax, ecx
xor eax, 0xffffffff
mov r9d, 0xc54ae7c2
xor r9d, 0x3ab5183d
mov r8d, ecx
xor r8d, r9d
and eax, r8d
mov r8d, edx
or r8d, r8d
xor r8d, 0xffffffff
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x9c78fa5b
xor edx, edx
div ecx
mov edx, eax
mov rax, qword [rbp - 0x18]
xor edx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x379369ae
mov ecx, 0xffffffff
xor ecx, 0x26ad0903
or edx, r8d
or ecx, 0x26ad0903
xor edx, 0xffffffff
and edx, ecx
mov ecx, edx
and ecx, 0xa1e3642f
xor edx, 0xa1e3642f
or ecx, edx
mov dword [rbp - 0x28], ecx
mov ecx, 0xbdf2fce2
xor ecx, 0xc0750a3d
mov dword [rbp - 0x2c], ecx
mov rcx, qword [rax]
mov qword [rbp + 0xc8], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xd0], rax
lea rcx, [rbp + 0xd8]
lea rdx, [rbp + 0xc8]
sub rsp, 0x20
call fcn.14001ba7e
mov r8, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x60]
add rsp, 0x20
mov rdx, qword [rbp + 0xd8]
mov rax, qword [rbp + 0xe0]
mov r8, qword [r8]
add r8, 0x18
mov qword [rbp - 0x38], r8
mov qword [rbp + 0xb8], rdx
mov qword [rbp + 0xc0], rax
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 8]
mov rax, qword [rbp + 0x60]
add rsp, 0x20
lea r8, [rbp + 0xb8]
xor r9d, r9d
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140176040
mov rdx, qword [rbp + 0x68]
mov ecx, dword [rbp - 0x2c]
add rsp, 0x30
mov r8d, eax
mov eax, dword [rbp - 0x28]
mov dword [rbp - 0x24], r8d
mov dl, byte [rdx]
mov r8b, 0x26
xor r8b, 0x26
cmp dl, r8b
sete dl
mov byte [rbp - 0x1d], dl
cmp eax, ecx
jb 0x1401fec40
mov cl, byte [rbp - 0x1d]
mov al, 1
test cl, 1
mov byte [rbp + 0x27], al
jne 0x1401fe5aa
jmp 0x1401fe9b8
sub rsp, 0x20
mov cx, 0x474
call fcn.140063c67
mov r8d, dword [rbp - 0x24]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x68]
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 - 0x39], al
jne 0x1401fe5e9
jmp 0x1401fe9b2
movabs rcx, 0x73e83ffcbe283fb9
movabs rax, 0x73e83ffcbe283f89
xor rcx, rax
movabs rdx, 0xfbc8b74c2fb6ca6f
movabs rax, 0xfbc8b74c2fb6ca67
xor rdx, rax
sub rsp, 0x20
call fcn.14001b860
add rsp, 0x20
mov qword [rbp - 0x58], rax
mov qword [rax], 0
mov dword [rax + 8], 1
mov ecx, 0x2e7
sub rsp, 0x20
call fcn.1400644d0
mov rdx, qword [rbp + 0x68]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x58]
mov dword [rax + 0xc], ecx
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x49], cl
mov qword [rbp - 0x48], rax
jne 0x1401fe7a3
mov ecx, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov qword [rbp - 0x68], rax
mov word [rbp + 0xb6], 0x7d4
lea rcx, [rbp + 0xb6]
sub rsp, 0x20
call fcn.140063da0
mov rdx, qword [rbp + 0x68]
add rsp, 0x20
mov qword [rbp - 0x60], rax
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x49], cl
mov qword [rbp - 0x48], rax
jne 0x1401fe7a3
mov rax, qword [rbp - 0x60]
mov rcx, qword [rax]
mov qword [rbp + 0x90], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x98], rax
lea rcx, [rbp + 0xa0]
lea rdx, [rbp + 0x90]
sub rsp, 0x20
call fcn.14001ba7e
mov rdx, qword [rbp - 0x68]
add rsp, 0x20
mov rcx, qword [rbp + 0xa0]
mov rax, qword [rbp + 0xa8]
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rax
lea rcx, [rbp + 0x80]
sub rsp, 0x20
call fcn.140073aff
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp - 0x68]
add rsp, 0x20
mov r8, qword [rbp + 0x80]
mov qword [rdx + 0x10], r8
mov r8, qword [rbp + 0x88]
mov qword [rdx + 0x18], r8
mov dl, byte [rcx]
mov r8b, 0x92
xor r8b, 0x92
mov cl, 1
cmp dl, r8b
mov byte [rbp - 0x49], cl
mov qword [rbp - 0x48], rax
jne 0x1401fe7a3
mov rdx, qword [rbp - 0x58]
mov rax, qword [rbp + 0x38]
mov rcx, qword [0x140264148]
mov qword [rdx + 0x20], rcx
mov rcx, qword [str.XA_]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
add rcx, 8
sub rsp, 0x20
call fcn.140025ed0
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp - 0x68]
add rsp, 0x20
mov cl, byte [rcx]
mov byte [rbp - 0x49], cl
mov qword [rbp - 0x48], rax
mov rax, qword [rbp + 0x68]
mov dl, byte [rbp - 0x49]
mov rcx, qword [rbp - 0x48]
mov byte [rbp - 0x69], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401f7c60
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x39], al
jne 0x1401fe9b2
mov r11d, dword [0x140258cc8]
xor r11d, 0x4384433f
mov eax, dword [0x140258ccc]
add r11d, 0xd9bcbdf6
sub r11d, eax
mov eax, 0x9641059c
xor eax, 0x4ffdb86a
sub r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov edx, 0x651de9c1
xor edx, 0x20f58499
mov eax, 0x42cf54
xor eax, 0xffbd30ab
xor edx, eax
mov r8d, 0xe5eb28b1
xor r8d, 0xd6bf6b03
mov eax, 0x6167c539
xor eax, 0x9e983ac6
xor r8d, eax
mov eax, ecx
and eax, 0x335443b2
and r11d, r8d
mov r9d, edx
and r9d, 0x335443b2
mov r10d, 0x5aebe428
xor r10d, 0x1f038970
and r10d, r8d
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0x357d3c35
xor edx, 0x6297f87
or edx, r8d
and ecx, edx
or eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x8a4c264
mov r8d, 0xc9201fce
xor r8d, 0xc184ddaa
mov ecx, 0x5daa0d7e
xor ecx, 0xa255f281
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x8a4c264
or eax, 0x8a4c264
imul eax, edx
add eax, ecx
sub eax, 0xcc2d4133
cmp eax, 0xf89bd716
je 0x1401fec49
mov r8b, byte [rbp - 0x69]
mov eax, dword [0x140258cd0]
mov ecx, 0x5a6578b9
xor ecx, 0x4a24cce
xor eax, ecx
mov r9d, dword [0x140258cd4]
mov edx, 0x79c5ba36
xor edx, 0x863a45c9
mov ecx, eax
xor ecx, edx
mov edx, r9d
and edx, ecx
mov ecx, 0xf3346c6f
xor ecx, 0xccb9390
mov r10d, r9d
xor r10d, ecx
mov ecx, eax
and ecx, r10d
imul ecx, edx
mov edx, eax
and edx, r9d
or eax, r9d
imul eax, edx
add eax, ecx
mov ecx, 0x12e5fc47
xor edx, edx
div ecx
mov ecx, 0x167ac2e3
xor ecx, 0xe9853d1c
mov edx, eax
xor edx, ecx
and edx, 0xd5b162e4
mov r9d, 0xe3287cef
xor r9d, 0x36991e0b
mov ecx, 0x1ea8b4f9
xor ecx, 0xe1574b06
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov r9d, 0xe64d56fb
xor r9d, 0x33fc341f
mov edx, eax
and edx, r9d
or eax, 0xd5b162e4
imul eax, edx
add eax, ecx
mov ecx, 0x77e6ddd8
xor ecx, 0xa746e805
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x68]
mov ecx, 0xe85384c5
xor ecx, 0xeec23beb
mov byte [rdx], r8b
cmp eax, ecx
jae 0x1401fe8c9
mov al, byte [rbp - 0x69]
mov byte [rbp - 0x39], al
jmp 0x1401fe9b2
mov al, byte [rbp - 0x39]
mov byte [rbp + 0x27], al
mov rcx, qword [rbp + 0x30]
mov al, byte [rbp + 0x27]
mov byte [rbp - 0x6b], al
cmp rcx, 0
mov byte [rbp - 0x6a], al
je 0x1401fea1a
mov al, byte [rbp - 0x6b]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
movabs rdx, 0x5d94bd8f55081375
movabs r8, 0x1d94bd8f55081375
xor rdx, r8
and rcx, rdx
cmp rcx, 0
mov byte [rbp - 0x6a], al
jne 0x1401fea1a
mov rcx, qword [rbp + 0x30]
sub rsp, 0x20
call fcn.14000eec9
mov rax, qword [rbp + 0x68]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x6a], al
mov al, byte [rbp - 0x6a]
mov byte [rbp - 0x6c], al
mov eax, dword [0x140258cd8]
xor eax, 0x2f89cfc4
or eax, dword [0x140258cdc]
mov ecx, 0x1aa5bf90
xor ecx, 0xf420552e
or eax, ecx
mov ecx, 0x50af4b98
xor ecx, 0x8e2dbe81
sub eax, ecx
or eax, 0x262ae399
cmp eax, 0xfd7088c2
jae 0x1401fec52
mov cl, byte [rbp - 0x6c]
mov eax, dword [0x140258ce0]
xor edx, edx
div dword [0x140258ce4]
mov edx, eax
add edx, 1
xor eax, 0xffffffff
or eax, 0xcc73c4ec
add eax, edx
xor edx, edx
sub edx, 0xc80bb108
add eax, edx
mov edx, eax
and edx, 0x471a6012
xor edx, 0xffffffff
add eax, 0x471a6012
mov r8d, 0x2ba28e58
xor r8d, 0x2ba28e59
add eax, r8d
add eax, edx
mov dl, 0xcb
xor dl, 0xcb
cmp cl, dl
sete cl
mov byte [rbp - 0x6d], cl
cmp eax, 0xbcde9ce0
ja 0x1401fec52
mov al, byte [rbp - 0x6d]
test al, 1
jne 0x1401fec2e
jmp 0x1401feacf
sub rsp, 0x20
call fcn.1401fa8a2
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov ax, word [rax + 0x12]
mov cx, 0x5257
xor cx, 0x5256
cmp ax, cx
jle 0x1401fec2e
mov rax, qword [rbp - 0x78]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x1401fec2e
mov rax, qword [rbp + 0x68]
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401fa8b4
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.140099ce0
mov rax, qword [rbp + 0x68]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401fec2e
mov eax, dword [0x140258ce8]
mov r8d, dword [0x140258cec]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x67e46575
xor edx, edx
div ecx
mov ecx, 0x62fedbc
xor ecx, 0x84259d41
xor edx, edx
div ecx
imul eax, eax, 0x8191d78c
cmp eax, 0x81857dd6
je 0x1401fec5b
mov eax, dword [0x140258cf0]
mov edx, dword [0x140258cf4]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
mov r8d, 0x74238742
xor r8d, 0x8bdc78bd
xor edx, r8d
and eax, edx
sub eax, ecx
mov ecx, 0x8240feba
xor ecx, 0x31bf7a09
xor edx, edx
div ecx
or eax, 0x912747aa
mov ecx, 0x4c1eef4a
xor ecx, 0x4c1eef4a
sub ecx, eax
mov eax, 0x41ee5da2
xor eax, 0x41ee5da2
mov edx, 0xc8609ad9
xor edx, 0x7e24cd75
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [rbp - 0x7c], eax
mov eax, 0x3f75c078
xor eax, 0xeb75c9ab
mov dword [rbp - 0x80], eax
sub rsp, 0x20
call fcn.1401fa8e9
mov ecx, dword [rbp - 0x80]
mov eax, dword [rbp - 0x7c]
add rsp, 0x20
cmp eax, ecx
ja 0x1401fec5b
jmp 0x1401fec2e
lea rsp, [rbp + 0x140]
pop rbp
ret
mov bh, 0xa1
jns 0x1401fec47
jmp 0x1401fe2e9
pop rax
jmp 0x1401fe417
invalid
invalid
sal dword [rdi], 1
sahf
jmp 0x1401fea5b
imul ecx, dword [rdi + 0x35e9705b], 0xffffffff
invalid