Function at 0x14001bc20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0xe8
mov rax, qword [0x14003f040]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r15, r8
mov rdi, rdx
mov rsi, rcx
test rdx, rdx
je 0x14001c3bd
test r8, r8
je 0x14001c3bd
lea rax, [rbp + 0xb]
mov qword [rbp + 0x27], rdx
mov qword [rsp + 0x128], rbx
lea r8, [rbp + 0xf]
xor ebx, ebx
mov qword [rbp + 0xf], 0x25
mov qword [rsp + 0x38], rbx
mov r9d, 0x20
mov qword [rsp + 0x30], rax
mov edx, 0x80862007
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov qword [rbp + 0x17], rbx
mov qword [rbp + 0x1f], rbx
mov dword [rbp + 0xb], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14001be9c
movdqa xmm3, xmmword [0x14003a720]
mov ecx, 0xb891
movdqa xmm4, xmmword [0x14003a7c0]
mov dword [rbp - 0x69], 0xb8a6b8d1
mov dword [rbp - 0x65], 0xb8adb8d1
mov dword [rbp - 0x61], 0xb8eeb8c8
mov dword [rbp - 0x5d], 0xb8fdb8f9
mov dword [rbp - 0x59], 0xb8f7b8f7
mov dword [rbp - 0x55], 0xb8e1b8b4
mov dword [rbp - 0x51], 0xb8b7b8f9
mov dword [rbp - 0x4d], 0xb8ebb8ec
mov dword [rbp - 0x49], 0xb8f5b8fb
mov dword [rbp - 0x45], 0xb8f1b8ef
mov dword [rbp - 0x41], 0xb8ebb8ff
mov dword [rbp - 0x3d], 0xb881b8c5
mov dword [rbp - 0x39], 0xb8cab8d4
mov dword [rbp - 0x35], 0xb8d1b8d6
mov dword [rbp - 0x31], 0xb8c6b8d3
mov dword [rbp - 0x2d], 0xb889b8c4
mov dword [rbp - 0x29], 0xb8cfb8cb
mov dword [rbp - 0x25], 0xb8dfb8c8
mov dword [rbp - 0x21], 0xb8dcb8cb
mov dword [rbp - 0x1d], 0xb891b8c3
mov dword [rbp - 0x19], 0xb8cbb882
mov word [rbp - 0x15], bx
mov byte [rbp - 0x13], 1
movd xmm1, dword [rbp + rbx*2 - 0x69]
lea rax, [rcx - 5]
xorps xmm0, xmm0
movq xmm2, rbx
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm4
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
lea rax, [rcx - 3]
movd dword [rbp + rbx*2 - 0x69], xmm1
xorps xmm0, xmm0
movd xmm1, dword [rbp + rbx*2 - 0x65]
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm3
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
lea rax, [rcx - 1]
movd dword [rbp + rbx*2 - 0x65], xmm1
xorps xmm0, xmm0
movd xmm1, dword [rbp + rbx*2 - 0x61]
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm3
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
movq xmm0, rcx
movd dword [rbp + rbx*2 - 0x61], xmm1
add rcx, 8
movd xmm1, dword [rbp + rbx*2 - 0x5d]
punpcklqdq xmm2, xmm0
xorps xmm0, xmm0
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
movd dword [rbp + rbx*2 - 0x5d], xmm1
add rbx, 8
cmp rcx, 0xb8b9
jb 0x14001bd60
cmp rbx, 0x2a
jae 0x14001be65
mov ecx, 0x4776
movzx eax, bx
sub ax, cx
xor word [rbp + rbx*2 - 0x69], ax
inc rbx
cmp rbx, 0x2a
jb 0x14001be51
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x69]
mov byte [rbp - 0x13], 0
call fcn.140023cc0
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___void_const____ptr64____ptr64]
mov rcx, rax
lea rdx, [0x140023ea0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
xor al, al
jmp 0x14001c0da
mov qword [rsp + 0xe0], r14
mov r14, qword [rbp + 0x1f]
test r14, r14
je 0x14001bf0b
mov qword [rsp + 0x38], rbx
lea rax, [rbp + 7]
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x69]
xorps xmm0, xmm0
mov dword [rsp + 0x28], ebx
mov r9d, 0x30
mov qword [rsp + 0x20], rbx
mov edx, 0x80862007
mov qword [rbp - 0x51], rbx
mov rcx, rsi
mov qword [rbp - 0x41], 0xc
movdqu xmmword [rbp - 0x61], xmm0
mov qword [rbp - 0x69], 0x19
mov qword [rbp - 0x49], r14
mov dword [rbp + 7], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rdi, qword [rbp - 0x51]
test eax, eax
cmove rdi, rbx
jmp 0x14001bf0e
mov rdi, rbx
test rdi, rdi
jne 0x14001c0fb
movdqa xmm3, xmmword [0x14003a720]
lea r8, [rbp - 0x65]
movdqa xmm4, xmmword [0x14003a7c0]
mov ecx, 0xb891
mov dword [rbp - 0x69], 0xb8a6b8d1
mov dword [rbp - 0x65], 0xb8adb8d1
mov dword [rbp - 0x61], 0xb8eeb8c8
mov dword [rbp - 0x5d], 0xb8fdb8f9
mov dword [rbp - 0x59], 0xb8f7b8f7
mov dword [rbp - 0x55], 0xb8e1b8b4
mov dword [rbp - 0x51], 0xb8b7b8f9
mov dword [rbp - 0x4d], 0xb8f8b8f5
mov dword [rbp - 0x49], 0xb8bbb8ea
mov dword [rbp - 0x45], 0xb8d2b8d5
mov dword [rbp - 0x41], 0xb8ecb8be
mov dword [rbp - 0x3d], 0xb8c0b8d0
mov dword [rbp - 0x39], 0xb8c6b8c1
mov dword [rbp - 0x35], 0xb8cab884
mov dword [rbp - 0x31], 0xb887b8c0
mov dword [rbp - 0x2d], 0xb8d1b898
mov word [rbp - 0x29], bx
mov byte [rbp - 0x27], 1
nop dword [rax + rax]
movd xmm1, dword [r8 - 4]
lea rax, [rcx - 0xb891]
xorps xmm0, xmm0
lea r8, [r8 + 0x10]
punpcklwd xmm1, xmm0
movq xmm2, rax
punpckldq xmm1, xmm0
lea rax, [rcx - 5]
punpcklqdq xmm2, xmm2
paddq xmm2, xmm4
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
lea rax, [rcx - 3]
movd dword [r8 - 0x14], xmm1
xorps xmm0, xmm0
movd xmm1, dword [r8 - 0x10]
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm3
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
lea rax, [rcx - 1]
movd dword [r8 - 0x10], xmm1
xorps xmm0, xmm0
movd xmm1, dword [r8 - 0xc]
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm3
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
movq xmm0, rcx
movd dword [r8 - 0xc], xmm1
add rcx, 8
movd xmm1, dword [r8 - 8]
punpcklqdq xmm2, xmm0
xorps xmm0, xmm0
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
lea rax, [rcx - 0xb891]
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
movd dword [r8 - 8], xmm1
cmp rax, 0x20
jb 0x14001bfb0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x69]
mov byte [rbp - 0x27], bl
call fcn.140023cc0
mov rdx, r14
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___void_const____ptr64____ptr64]
mov rcx, rax
lea rdx, [0x140023ea0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
xor al, al
mov r14, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.14002dc20
add rsp, 0xe8
pop r15
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 0x38], rbx
lea rax, [rbp + 7]
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x69]
mov dword [rsp + 0x28], ebx
mov r9d, 0x28
mov edx, 0x80862007
mov qword [rsp + 0x20], rbx
mov rcx, rsi
mov qword [rbp - 0x61], rbx
mov qword [rbp - 0x69], 0x33
mov qword [rbp - 0x59], r15
mov qword [rbp - 0x51], rdi
mov qword [rbp - 0x49], 0xc
mov dword [rbp + 7], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov qword [rsp + 0x38], rbx
lea r8, [rbp - 0x69]
test eax, eax
mov qword [rbp - 0x49], rbx
lea rax, [rbp + 7]
mov qword [rbp - 0x41], 0xc
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
mov dword [rsp + 0x28], ebx
mov r9d, 0x30
mov edx, 0x80862007
mov qword [rsp + 0x20], rbx
mov rcx, rsi
mov qword [rbp - 0x69], 0x1a
setne r15b
mov qword [rbp - 0x51], rdi
movdqu xmmword [rbp - 0x61], xmm0
mov dword [rbp + 7], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14001c3b4
movdqa xmm3, xmmword [0x14003a720]
mov ecx, 0xb891
movdqa xmm4, xmmword [0x14003a7c0]
mov r8d, 0xb8c1
mov dword [rbp - 0x69], 0xb8aab8d1
mov dword [rbp - 0x65], 0xb8adb8d1
mov dword [rbp - 0x61], 0xb8eeb8c8
mov dword [rbp - 0x5d], 0xb8fdb8f9
mov dword [rbp - 0x59], 0xb8f7b8f7
mov dword [rbp - 0x55], 0xb8e1b8b4
mov dword [rbp - 0x51], 0xb8b7b8f9
mov dword [rbp - 0x4d], 0xb8f7b8ed
mov dword [rbp - 0x49], 0xb8fab8f7
mov dword [rbp - 0x45], 0xb8bdb8ec
mov dword [rbp - 0x41], 0xb8d0b8d7
mov dword [rbp - 0x3d], 0xb8d2b880
mov dword [rbp - 0x39], 0xb8c2b8d2
mov dword [rbp - 0x35], 0xb8c0b8c7
mov dword [rbp - 0x31], 0xb8c8b886
mov dword [rbp - 0x2d], 0xb889b8ce
mov dword [rbp - 0x29], 0xb8c3b8da
mov dword [rbp - 0x25], 0xb8deb8d5
mov dword [rbp - 0x21], 0xb8ccb8c7
mov dword [rbp - 0x1d], 0xb8ddb8d1
mov dword [rbp - 0x19], 0xb8d2b892
mov dword [rbp - 0x15], 0xb8d1b8d0
mov dword [rbp - 0x11], 0xb8d2b8c4
mov dword [rbp - 0xd], 0xb8cab8cb
mov dword [rbp - 9], 0xb88bb89a
mov dword [rbp - 5], 0xb8c4
mov byte [rbp - 1], 1
nop
movd xmm1, dword [rbp + rbx*2 - 0x69]
lea rax, [rcx - 5]
xorps xmm0, xmm0
movq xmm2, rbx
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm4
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
lea rax, [rcx - 3]
movd dword [rbp + rbx*2 - 0x69], xmm1
xorps xmm0, xmm0
movd xmm1, dword [rbp + rbx*2 - 0x65]
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm3
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
lea rax, [rcx - 1]
movd dword [rbp + rbx*2 - 0x65], xmm1
xorps xmm0, xmm0
movd xmm1, dword [rbp + rbx*2 - 0x61]
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm2
paddq xmm2, xmm3
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
movq xmm2, rax
pshuflw xmm1, xmm0, 0xd8
movq xmm0, rcx
movd dword [rbp + rbx*2 - 0x61], xmm1
add rcx, 8
movd xmm1, dword [rbp + rbx*2 - 0x5d]
punpcklqdq xmm2, xmm0
xorps xmm0, xmm0
punpcklwd xmm1, xmm0
punpckldq xmm1, xmm0
xorps xmm2, xmm1
pshufd xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
movd dword [rbp + rbx*2 - 0x5d], xmm1
add rbx, 8
cmp rcx, r8
jb 0x14001c280
cmp rbx, 0x33
jae 0x14001c384
mov ecx, 0x4776
nop dword [rax]
movzx eax, bx
sub ax, cx
xor word [rbp + rbx*2 - 0x69], ax
inc rbx
cmp rbx, 0x33
jb 0x14001c370
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x69]
mov byte [rbp - 1], 0
call fcn.140023cc0
mov rdx, r14
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___void_const____ptr64____ptr64]
mov rcx, rax
lea rdx, [0x140023ea0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
movzx eax, r15b
jmp 0x14001c0d2
xor al, al
jmp 0x14001c0e2