Function at 0x140050570
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r14
mov rbp, rsp
sub rsp, 0x80
mov r14, r9
mov rdi, r8
mov r12, rdx
mov rbx, rcx
test rdx, rdx
jne 0x140050670
mov dword [rbp - 0x60], 0xc5e3c596
xor eax, eax
mov dword [rbp - 0x5c], 0xc5f0c592
mov r8d, 0x3a33
mov dword [rbp - 0x58], 0xc5bdc59f
mov dword [rbp - 0x54], 0xc5b9c5f3
mov dword [rbp - 0x50], 0xc5b2c5ba
mov dword [rbp - 0x4c], 0xc5b4c5a2
mov dword [rbp - 0x48], 0xc5fac5bc
mov dword [rbp - 0x44], 0xc5b8c5ba
mov dword [rbp - 0x40], 0xc5acc5b9
mov dword [rbp - 0x3c], 0xc593c5ba
mov dword [rbp - 0x38], 0xc5c2c592
mov dword [rbp - 0x34], 0xc58bc597
mov dword [rbp - 0x30], 0xc580c5c5
mov dword [rbp - 0x2c], 0xc586c58e
mov dword [rbp - 0x28], 0xc5cac58d
mov dword [rbp - 0x24], 0xc58dc59b
mov dword [rbp - 0x20], 0xc59ac599
mov dword [rbp - 0x1c], 0xc582c58a
mov dword [rbp - 0x18], 0xc59f
mov byte [rbp - 0x14], 1
nop
movzx edx, ax
sub dx, r8w
xor word [rbp + rax*2 - 0x60], dx
inc rax
cmp rax, 0x25
jb 0x140050630
mov byte [rbp - 0x14], 0
lea rdx, [rbp - 0x60]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.140054ba0
lea rdx, [0x140054d80]
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___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 eax, eax
jmp 0x140050983
cmp rdi, 0x40000000
jbe 0x140050742
mov dword [rbp - 0x60], 0xc5e3c596
xor eax, eax
mov dword [rbp - 0x5c], 0xc5f0c592
mov r8d, 0x3a33
mov dword [rbp - 0x58], 0xc5b3c592
mov dword [rbp - 0x54], 0xc5f3c5bd
mov dword [rbp - 0x50], 0xc5f6c5a1
mov dword [rbp - 0x4c], 0xc5b1c5b1
mov dword [rbp - 0x48], 0xc5bec5b7
mov dword [rbp - 0x44], 0xc5acc5fb
mov dword [rbp - 0x40], 0xc5aac5bc
mov dword [rbp - 0x3c], 0xc585c5ab
mov dword [rbp - 0x38], 0xc58cc593
mov dword [rbp - 0x34], 0xc5c4c5cf
mov dword [rbp - 0x30], 0xc589c5b1
mov dword [rbp - 0x2c], 0xc5c8c588
mov dword [rbp - 0x28], 0xc583c58b
mov dword [rbp - 0x24], 0xc5ccc58c
mov dword [rbp - 0x20], 0xc58bc59e
mov dword [rbp - 0x1c], 0xc584c58c
mov dword [rbp - 0x18], 0xc59dc598
mov dword [rbp - 0x14], 0xc59d
mov byte [rbp - 0x10], 1
nop word [rax + rax]
movzx edx, ax
sub dx, r8w
xor word [rbp + rax*2 - 0x60], dx
inc rax
cmp rax, 0x27
jb 0x140050720
mov byte [rbp - 0x10], 0
lea rdx, [rbp - 0x60]
jmp 0x14005064d
mov rcx, rdi
mov qword [rsp + 0xa8], r15
call fcn.14006d164
mov r9, rdi
mov r8, r12
mov rdx, rax
mov rcx, rbx
mov r15, rax
call fcn.14004d3a0
test al, al
jne 0x140050850
xor eax, eax
mov dword [rbp - 0x60], 0xc5e3c596
mov word [rbp - 0x14], ax
mov r8d, 0x3a33
mov dword [rbp - 0x5c], 0xc5f0c592
mov dword [rbp - 0x58], 0xc5b7c583
mov dword [rbp - 0x54], 0xc5b0c5b2
mov dword [rbp - 0x50], 0xc5b0c5f5
mov dword [rbp - 0x4c], 0xc5b1c5b6
mov dword [rbp - 0x48], 0xc5bfc5b5
mov dword [rbp - 0x44], 0xc5fcc5bf
mov dword [rbp - 0x40], 0xc5b0c5b4
mov dword [rbp - 0x3c], 0xc5a6c5ff
mov dword [rbp - 0x38], 0xc58cc588
mov dword [rbp - 0x34], 0xc5b4c587
mov dword [rbp - 0x30], 0xc592c584
mov dword [rbp - 0x2c], 0xc58dc593
mov dword [rbp - 0x28], 0xc584c59b
mov dword [rbp - 0x24], 0xc598c5aa
mov dword [rbp - 0x20], 0xc58bc5a6
mov dword [rbp - 0x1c], 0xc59ec59d
mov dword [rbp - 0x18], 0xc59ec594
mov byte [rbp - 0x12], 1
nop dword [rax]
nop word [rax + rax]
movzx edx, ax
sub dx, r8w
xor word [rbp + rax*2 - 0x60], dx
inc rax
cmp rax, 0x26
jb 0x140050810
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x60]
mov byte [rbp - 0x12], 0
call fcn.140054ba0
lea rdx, [0x140054d80]
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___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 eax, eax
jmp 0x14005097b
mov r10, qword [rbp + 0x40]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [r10 + rax], 0
jne 0x140050860
sub rdi, rax
mov qword [rsp + 0xa0], rsi
mov eax, 0
mov ebx, eax
je 0x1400508d1
movzx r11d, byte [r10]
mov rsi, r15
sub rsi, r14
nop dword [rax + rax]
mov r8, r10
mov rdx, r14
test r11b, r11b
je 0x1400508c0
movzx ecx, r11b
lea r9, [rsi + rbx]
cmp cl, 0x78
jne 0x1400508b1
movzx ecx, byte [rdx]
cmp byte [r9 + rdx], cl
jne 0x1400508c9
movzx ecx, byte [r8 + 1]
inc r8
inc rdx
test cl, cl
jne 0x1400508a3
cmp byte [r8], al
je 0x14005099c
inc rbx
cmp rbx, rdi
jb 0x140050890
mov dword [rbp - 0x60], 0xc5e3c596
mov r8d, 0x3a33
mov dword [rbp - 0x5c], 0xc5f0c592
mov dword [rbp - 0x58], 0xc5b3c592
mov dword [rbp - 0x54], 0xc5f3c5bd
mov dword [rbp - 0x50], 0xc5f6c5a1
mov dword [rbp - 0x4c], 0xc5b1c5b1
mov dword [rbp - 0x48], 0xc5bec5b7
mov dword [rbp - 0x44], 0xc5acc5fb
mov dword [rbp - 0x40], 0xc5aac5bc
mov dword [rbp - 0x3c], 0xc585c5ab
mov dword [rbp - 0x38], 0xc58cc593
mov word [rbp - 0x34], ax
mov byte [rbp - 0x32], 1
nop dword [rax]
movzx edx, ax
sub dx, r8w
xor word [rbp + rax*2 - 0x60], dx
inc rax
cmp rax, 0x16
jb 0x140050930
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x60]
mov byte [rbp - 0x32], 0
call fcn.140054ba0
lea rdx, [0x140054d80]
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___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]
mov rcx, r15
call fcn.14006cbc0
xor eax, eax
mov rsi, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xa8]
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r12
pop rbp
ret
lea rcx, [rbx + r15]
test rcx, rcx
je 0x1400508d1
mov rcx, r15
call fcn.14006cbc0
lea rax, [rbx + r12]
jmp 0x140050973