Function at 0x180012b70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0xf70]
mov eax, 0x1070
call fcn.18002b000
sub rsp, rax
mov rax, qword [0x180037020]
xor rax, rsp
mov qword [rbp + 0xf60], rax
mov rdi, r9
mov rbx, r8
test r8, r8
je 0x180012d97
mov r9d, 0x1000
lea rdx, [rsp + 0x60]
call fcn.18000fad0
xor r11d, r11d
mov r8d, r11d
test al, al
jne 0x180012c80
mov dword [rsp + 0x20], 0xf37bf30e
mov r9d, 0xcab
mov dword [rsp + 0x24], 0xf378f30a
mov dword [rsp + 0x28], 0xf33bf31a
mov dword [rsp + 0x2c], 0xf37bf335
mov dword [rsp + 0x30], 0xf37ef329
mov dword [rsp + 0x34], 0xf305f32d
mov dword [rsp + 0x38], 0xf306f300
mov dword [rsp + 0x3c], 0xf309f343
mov dword [rsp + 0x40], 0xf302f30a
mov dword [rsp + 0x44], 0xf304f312
mov dword [rsp + 0x48], 0xf34af30c
mov dword [rsp + 0x4c], 0xf309f303
mov dword [rsp + 0x50], 0xf30af30c
mov dword [rsp + 0x54], 0xf302f30a
mov dword [rsp + 0x58], 0xf302
nop word [rax + rax]
movsxd rax, r8d
lea rdx, [rsp + 0x20]
lea rdx, [rdx + rax*2]
movzx eax, r8w
sub ax, r9w
inc r8d
xor word [rdx], ax
cmp r8d, 0x1d
jb 0x180012c50
mov word [rsp + 0x5a], r11w
lea rdx, [rsp + 0x20]
jmp 0x180012d7b
movsxd rax, dword [rbp - 0x64]
lea rcx, [rsp + 0x60]
add rcx, rax
movzx eax, word [rcx + 0x14]
lea r10, [rcx + 0x18]
movzx r9d, word [rcx + 6]
add r10, rax
test r9d, r9d
je 0x180012cdb
mov eax, r8d
lea rcx, [rax + rax*4]
cmp dword [r10 + rcx*8], 0x45474150
lea rdx, [r10 + rcx*8]
jne 0x180012cd3
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdx + rax], r11b
jne 0x180012cc0
cmp rax, 4
je 0x180012db3
inc r8d
cmp r8d, r9d
jb 0x180012ca1
xor eax, eax
mov dword [rsp + 0x20], 0xf37bf30e
mov word [rsp + 0x4c], ax
mov r8d, r11d
mov dword [rsp + 0x24], 0xf378f30a
mov r9d, 0xcab
mov dword [rsp + 0x28], 0xf33bf31a
mov dword [rsp + 0x2c], 0xf37bf335
mov dword [rsp + 0x30], 0xf37ef329
mov dword [rsp + 0x34], 0xf309f339
mov dword [rsp + 0x38], 0xf306f30f
mov dword [rsp + 0x3c], 0xf317f343
mov dword [rsp + 0x40], 0xf305f300
mov dword [rsp + 0x44], 0xf301f313
mov dword [rsp + 0x48], 0xf304f306
nop dword [rax]
nop word [rax + rax]
movsxd rax, r8d
lea rdx, [rsp + 0x20]
lea rdx, [rdx + rax*2]
movzx eax, r8w
sub ax, r9w
inc r8d
xor word [rdx], ax
cmp r8d, 0x16
jb 0x180012d50
mov word [rsp + 0x4c], r11w
lea rdx, [rsp + 0x20]
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
mov rcx, qword [rbp + 0xf60]
xor rcx, rsp
call fcn.180029c20
add rsp, 0x1070
pop rdi
pop rbx
pop rbp
ret
mov eax, dword [rdx + 0xc]
test eax, eax
je 0x180012cdb
mov ecx, dword [rdx + 8]
lea rdx, [rsp + 0x60]
add rdx, rax
je 0x180012cdb
test ecx, ecx
je 0x180012cdb
test rdi, rdi
je 0x180012dde
mov dword [rdi], ecx
lea rax, [rsp + 0x60]
sub rbx, rax
lea rax, [rdx + rbx]
jmp 0x180012d99