Function at 0x140055840
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0xe8
mov rax, qword [0x1400a0040]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r15, r8
mov rdi, rdx
mov rsi, rcx
test rdx, rdx
je 0x140055ceb
test r8, r8
je 0x140055ceb
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 edx, 0x80862007
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebx
lea r9d, [rbx + 0x20]
mov qword [rbp + 0x17], rbx
mov qword [rbp + 0x1f], rbx
mov dword [rbp + 0xb], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1400559bb
mov dword [rbp - 0x69], 0xd729d758
mov ecx, 0x28fd
mov dword [rbp - 0x65], 0xd726d758
mov dword [rbp - 0x61], 0xd769d741
mov dword [rbp - 0x5d], 0xd766d760
mov dword [rbp - 0x59], 0xd768d76e
mov dword [rbp - 0x55], 0xd77ad72d
mov dword [rbp - 0x51], 0xd730d760
mov dword [rbp - 0x4d], 0xd760d765
mov dword [rbp - 0x49], 0xd77ad772
mov dword [rbp - 0x45], 0xd77ad766
mov dword [rbp - 0x41], 0xd76cd776
mov dword [rbp - 0x3d], 0xd73ad77c
mov dword [rbp - 0x39], 0xd775d76d
mov dword [rbp - 0x35], 0xd76ad76f
mov dword [rbp - 0x31], 0xd741d76a
mov dword [rbp - 0x2d], 0xd702d74d
mov dword [rbp - 0x29], 0xd740d742
mov dword [rbp - 0x25], 0xd754d741
mov dword [rbp - 0x21], 0xd75bd742
mov dword [rbp - 0x1d], 0xd70ad75a
mov dword [rbp - 0x19], 0xd754d71b
mov word [rbp - 0x15], bx
mov byte [rbp - 0x13], 1
nop
movzx eax, bx
sub ax, cx
xor word [rbp + rbx*2 - 0x69], ax
inc rbx
cmp rbx, 0x2a
jb 0x140055970
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.14005d060
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, [0x14005d240]
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 0x140055c00
mov rdi, qword [rbp + 0x1f]
mov qword [rsp + 0xe0], r14
test rdi, rdi
je 0x140055c21
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], send
movdqu xmmword [rbp - 0x61], xmm0
mov qword [rbp - 0x69], 0x19
mov qword [rbp - 0x49], rdi
mov dword [rbp + 7], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140055c21
mov r14, qword [rbp - 0x51]
test r14, r14
je 0x140055c21
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], r14
mov qword [rbp - 0x49], send
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], send
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], r14
movdqu xmmword [rbp - 0x61], xmm0
mov dword [rbp + 7], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140055bf4
mov dword [rbp - 0x69], 0xd725d758
mov ecx, 0x28fd
mov dword [rbp - 0x65], 0xd726d758
mov dword [rbp - 0x61], 0xd769d741
mov dword [rbp - 0x5d], 0xd766d760
mov dword [rbp - 0x59], 0xd768d76e
mov dword [rbp - 0x55], 0xd77ad72d
mov dword [rbp - 0x51], 0xd730d760
mov dword [rbp - 0x4d], 0xd77cd764
mov dword [rbp - 0x49], 0xd775d77e
mov dword [rbp - 0x45], 0xd736d765
mov dword [rbp - 0x41], 0xd757d75e
mov dword [rbp - 0x3d], 0xd769d739
mov dword [rbp - 0x39], 0xd77dd76b
mov dword [rbp - 0x35], 0xd77bd77e
mov dword [rbp - 0x31], 0xd74fd73f
mov dword [rbp - 0x2d], 0xd702d747
mov dword [rbp - 0x29], 0xd74cd753
mov dword [rbp - 0x25], 0xd755d75c
mov dword [rbp - 0x21], 0xd74bd74e
mov dword [rbp - 0x1d], 0xd746d748
mov dword [rbp - 0x19], 0xd74dd70b
mov dword [rbp - 0x15], 0xd74ad749
mov dword [rbp - 0x11], 0xd755d75d
mov dword [rbp - 0xd], 0xd741d742
mov dword [rbp - 9], 0xd704d713
mov dword [rbp - 5], 0xd74d
mov byte [rbp - 1], 1
nop dword [rax]
nop dword [rax + rax]
movzx eax, bx
sub ax, cx
xor word [rbp + rbx*2 - 0x69], ax
inc rbx
cmp rbx, 0x33
jb 0x140055bb0
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.14005d060
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, [0x14005d240]
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
mov r14, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.14007fe60
add rsp, 0xe8
pop r15
pop rdi
pop rsi
pop rbp
ret
mov dword [rbp - 0x69], 0xd729d758
mov ecx, 0x28fd
mov dword [rbp - 0x65], 0xd726d758
mov dword [rbp - 0x61], 0xd769d741
mov dword [rbp - 0x5d], 0xd766d760
mov dword [rbp - 0x59], 0xd768d76e
mov dword [rbp - 0x55], 0xd77ad72d
mov dword [rbp - 0x51], 0xd730d760
mov dword [rbp - 0x4d], 0xd773d77c
mov dword [rbp - 0x49], 0xd734d763
mov dword [rbp - 0x45], 0xd759d75c
mov dword [rbp - 0x41], 0xd76bd737
mov dword [rbp - 0x3d], 0xd77bd769
mov dword [rbp - 0x39], 0xd779d778
mov dword [rbp - 0x35], 0xd771d73d
mov dword [rbp - 0x31], 0xd700d779
mov dword [rbp - 0x2d], 0xd75ad711
mov word [rbp - 0x29], bx
mov byte [rbp - 0x27], 1
nop
movzx eax, bx
sub ax, cx
xor word [rbp + rbx*2 - 0x69], ax
inc rbx
cmp rbx, 0x20
jb 0x140055ca0
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], 0
call fcn.14005d060
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, [0x14005d240]
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 0x140055bf8
xor al, al
jmp 0x140055c08