Function at 0x180012720
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, 0x70
mov r14, r9
mov rdi, r8
mov r12, rdx
mov rbx, rcx
test rdx, rdx
jne 0x180012825
xor r11d, r11d
mov dword [rbp - 0x50], 0xf37bf30e
mov r8d, r11d
mov dword [rbp - 0x4c], 0xf378f30a
mov r9d, r11d
mov dword [rbp - 0x48], 0xf335f317
mov dword [rbp - 0x44], 0xf331f37b
mov edx, 0xcab
mov dword [rbp - 0x40], 0xf33af332
mov dword [rbp - 0x3c], 0xf30cf32a
mov dword [rbp - 0x38], 0xf342f304
mov dword [rbp - 0x34], 0xf300f302
mov dword [rbp - 0x30], 0xf314f301
mov dword [rbp - 0x2c], 0xf31bf302
mov dword [rbp - 0x28], 0xf34af31a
mov dword [rbp - 0x24], 0xf303f31f
mov dword [rbp - 0x20], 0xf308f34d
mov dword [rbp - 0x1c], 0xf31ef306
mov dword [rbp - 0x18], 0xf352f315
mov dword [rbp - 0x14], 0xf315f303
mov dword [rbp - 0x10], 0xf302f301
mov dword [rbp - 0xc], 0xf30af312
mov dword [rbp - 8], 0xf317
nop
movzx eax, r8w
inc r8d
sub ax, dx
xor word [rbp + r9*2 - 0x50], ax
movsxd r9, r8d
cmp r9, 0x25
jb 0x1800127e0
mov word [rbp - 6], r11w
lea rdx, [rbp - 0x50]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.180015960
lea rdx, [0x180015b40]
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 0x180012b38
cmp rdi, 0x40000000
jbe 0x1800128f7
xor r11d, r11d
mov dword [rbp - 0x50], 0xf37bf30e
mov r8d, r11d
mov dword [rbp - 0x4c], 0xf378f30a
mov r9d, r11d
mov dword [rbp - 0x48], 0xf33bf31a
mov dword [rbp - 0x44], 0xf37bf335
mov edx, 0xcab
mov dword [rbp - 0x40], 0xf37ef329
mov dword [rbp - 0x3c], 0xf309f339
mov dword [rbp - 0x38], 0xf306f30f
mov dword [rbp - 0x34], 0xf314f343
mov dword [rbp - 0x30], 0xf312f304
mov dword [rbp - 0x2c], 0xf30df313
mov dword [rbp - 0x28], 0xf304f31b
mov dword [rbp - 0x24], 0xf34cf347
mov dword [rbp - 0x20], 0xf301f339
mov dword [rbp - 0x1c], 0xf350f300
mov dword [rbp - 0x18], 0xf31bf313
mov dword [rbp - 0x14], 0xf354f314
mov dword [rbp - 0x10], 0xf313f306
mov dword [rbp - 0xc], 0xf30cf314
mov dword [rbp - 8], 0xf315f310
mov dword [rbp - 4], 0xf315
nop dword [rax]
movzx eax, r8w
inc r8d
sub ax, dx
xor word [rbp + r9*2 - 0x50], ax
movsxd r9, r8d
cmp r9, 0x27
jb 0x1800128d0
mov word [rbp - 2], r11w
lea rdx, [rbp - 0x50]
jmp 0x180012802
mov rcx, rdi
mov qword [rsp + 0x98], r15
call fcn.18002a030
mov r9, rdi
mov r8, r12
mov rdx, rax
mov rcx, rbx
mov r15, rax
call fcn.18000fad0
test al, al
jne 0x180012a05
xor eax, eax
mov dword [rbp - 0x50], 0xf37bf30e
xor r11d, r11d
mov dword [rbp - 0x4c], 0xf378f30a
mov r8d, r11d
mov dword [rbp - 0x48], 0xf33ff30b
mov r9d, r11d
mov dword [rbp - 0x44], 0xf338f33a
mov dword [rbp - 0x40], 0xf338f37d
mov edx, 0xcab
mov dword [rbp - 0x3c], 0xf309f33e
mov dword [rbp - 0x38], 0xf307f30d
mov dword [rbp - 0x34], 0xf344f307
mov dword [rbp - 0x30], 0xf308f30c
mov dword [rbp - 0x2c], 0xf32ef347
mov dword [rbp - 0x28], 0xf304f300
mov dword [rbp - 0x24], 0xf33cf30f
mov dword [rbp - 0x20], 0xf31af30c
mov dword [rbp - 0x1c], 0xf315f31b
mov dword [rbp - 0x18], 0xf31cf303
mov dword [rbp - 0x14], 0xf300f332
mov dword [rbp - 0x10], 0xf313f33e
mov dword [rbp - 0xc], 0xf316f305
mov dword [rbp - 8], 0xf316f31c
mov word [rbp - 4], ax
nop dword [rax]
movzx eax, r8w
inc r8d
sub ax, dx
xor word [rbp + r9*2 - 0x50], ax
movsxd r9, r8d
cmp r9, 0x26
jb 0x1800129c0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x50]
mov word [rbp - 4], r11w
call fcn.180015960
lea rdx, [0x180015b40]
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 0x180012b30
mov r9, qword [rbp + 0x40]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r9 + rax], 0
jne 0x180012a10
mov qword [rsp + 0x90], rsi
mov r11d, 0
mov ebx, r11d
sub rdi, rax
je 0x180012a80
movzx r10d, byte [r9]
mov rsi, r15
sub rsi, r14
nop word [rax + rax]
mov rdx, r9
mov rax, r14
test r10b, r10b
je 0x180012a6f
movzx ecx, r10b
lea r8, [rsi + rbx]
cmp cl, 0x78
jne 0x180012a61
movzx ecx, byte [rax]
cmp byte [r8 + rax], cl
jne 0x180012a78
movzx ecx, byte [rdx + 1]
inc rdx
inc rax
test cl, cl
jne 0x180012a53
cmp byte [rdx], r11b
je 0x180012b4e
inc rbx
cmp rbx, rdi
jb 0x180012a40
xor eax, eax
mov dword [rbp - 0x50], 0xf37bf30e
mov word [rbp - 0x24], ax
mov r8d, r11d
mov dword [rbp - 0x4c], 0xf378f30a
mov r9, r11
mov dword [rbp - 0x48], 0xf33bf31a
mov edx, 0xcab
mov dword [rbp - 0x44], 0xf37bf335
mov dword [rbp - 0x40], 0xf37ef329
mov dword [rbp - 0x3c], 0xf309f339
mov dword [rbp - 0x38], 0xf306f30f
mov dword [rbp - 0x34], 0xf314f343
mov dword [rbp - 0x30], 0xf312f304
mov dword [rbp - 0x2c], 0xf30df313
mov dword [rbp - 0x28], 0xf304f31b
nop
movzx eax, r8w
inc r8d
sub ax, dx
xor word [rbp + r9*2 - 0x50], ax
movsxd r9, r8d
cmp r9, 0x16
jb 0x180012ae0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x50]
mov word [rbp - 0x24], r11w
call fcn.180015960
lea rdx, [0x180015b40]
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.180029c7c
xor eax, eax
mov rsi, qword [rsp + 0x90]
mov r15, qword [rsp + 0x98]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r12
pop rbp
ret
lea rax, [rbx + r15]
test rax, rax
je 0x180012a80
mov rcx, r15
call fcn.180029c7c
lea rax, [rbx + r12]
jmp 0x180012b28