Function at 0x140040040
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xc0
mov rax, qword [0x1400d0080]
xor rax, rsp
mov qword [rbp + 0x2f], rax
xor ebx, ebx
mov rax, rdx
and rax, 0xfffffffffffff000
mov r15, r8
add rax, 0x1000
mov r14, rdx
mov r9d, ebx
mov qword [rsp + 0x20], rax
lea r8, [rbx - 1]
mov edx, ebx
mov rsi, rcx
call fcn.140035010
mov rdi, rax
test rax, rax
jne 0x14004015c
mov dword [rbp - 0x49], 0x15f5158c
mov ecx, 0x15d7
mov dword [rbp - 0x45], 0x15fa1584
mov dword [rbp - 0x41], 0x15bd1598
mov dword [rbp - 0x3d], 0x15f915b3
mov dword [rbp - 0x39], 0x15c015ab
mov dword [rbp - 0x35], 0x158e1580
mov dword [rbp - 0x31], 0x158b158f
mov dword [rbp - 0x2d], 0x15871586
mov dword [rbp - 0x29], 0x158d1593
mov dword [rbp - 0x25], 0x159a15c9
mov dword [rbp - 0x21], 0x158b158a
mov dword [rbp - 0x1d], 0x159d1588
mov dword [rbp - 0x19], 0x159615cf
mov dword [rbp - 0x15], 0x1580159e
mov dword [rbp - 0x11], 0x159915d3
mov dword [rbp - 0xd], 0x159a1591
mov word [rbp - 9], bx
mov byte [rbp - 7], 1
nop dword [rax]
lea eax, [rcx + rbx]
xor word [rbp + rbx*2 - 0x49], ax
inc rbx
cmp rbx, 0x20
jb 0x140040120
mov byte [rbp - 7], 0
lea rdx, [rbp - 0x49]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.14003b430
lea rdx, [0x14003b610]
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 0x140040553
lea r8, [rax + 0x28]
mov dword [rbp + 0x27], ebx
mov r9d, 4
lea rdx, [rbp + 0x27]
mov rcx, rsi
call fcn.140034ac0
test al, al
jne 0x14004022e
mov dword [rbp - 0x49], 0x15f71582
mov ecx, 0x15d9
mov dword [rbp - 0x45], 0x15fc1586
mov dword [rbp - 0x41], 0x15bf159e
mov dword [rbp - 0x3d], 0x15c715b1
mov dword [rbp - 0x39], 0x15c21595
mov dword [rbp - 0x35], 0x15811591
mov dword [rbp - 0x31], 0x15821584
mov dword [rbp - 0x2d], 0x159c15c7
mov dword [rbp - 0x29], 0x158f1581
mov dword [rbp - 0x25], 0x15b315cb
mov dword [rbp - 0x21], 0x15aa15a0
mov dword [rbp - 0x1d], 0x15d015a3
mov dword [rbp - 0x19], 0x15d215cb
mov dword [rbp - 0x15], 0x158d1591
mov dword [rbp - 0x11], 0x15931581
mov dword [rbp - 0xd], 0x159715b4
mov dword [rbp - 9], 0x1594158c
mov dword [rbp - 5], 0x158f
mov byte [rbp - 1], 1
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + rbx]
xor word [rbp + rbx*2 - 0x49], ax
inc rbx
cmp rbx, 0x23
jb 0x140040210
mov byte [rbp - 1], 0
lea rdx, [rbp - 0x49]
jmp 0x140040139
mov eax, dword [rbp + 0x27]
cmp rax, r14
jae 0x140040342
mov dword [rbp - 0x49], 0x15f71582
mov ecx, 0x15d9
mov dword [rbp - 0x45], 0x15fc1586
mov dword [rbp - 0x41], 0x15b1159e
mov dword [rbp - 0x3d], 0x158c15aa
mov dword [rbp - 0x39], 0x158c1585
mov dword [rbp - 0x35], 0x159015c4
mov dword [rbp - 0x31], 0x158715c5
mov dword [rbp - 0x2d], 0x1584158b
mov dword [rbp - 0x29], 0x15891586
mov dword [rbp - 0x25], 0x1598158a
mov dword [rbp - 0x21], 0x15ce1588
mov dword [rbp - 0x1d], 0x159e158a
mov dword [rbp - 0x19], 0x1587159e
mov dword [rbp - 0x15], 0x159c1594
mov dword [rbp - 0x11], 0x159b15d5
mov dword [rbp - 0xd], 0x15951592
mov dword [rbp - 9], 0x15881596
mov dword [rbp - 5], 0x15d01582
mov dword [rbp - 1], 0x159d15dd
mov dword [rbp + 3], 0x16651593
mov dword [rbp + 7], 0x166c1660
mov dword [rbp + 0xb], 0x166a166a
mov dword [rbp + 0xf], 0x16261662
mov dword [rbp + 0x13], 0x16781672
mov word [rbp + 0x17], bx
mov byte [rbp + 0x19], 1
nop
lea eax, [rcx + rbx]
xor word [rbp + rbx*2 - 0x49], ax
inc rbx
cmp rbx, 0x30
jb 0x1400402f0
mov byte [rbp + 0x19], 0
lea rdx, [rbp - 0x49]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.14003b430
lea rdx, [0x14003b610]
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 rdx, rdi
mov rcx, rsi
call fcn.140035970
mov rdx, rdi
mov rcx, rsi
call fcn.140035b90
xor eax, eax
jmp 0x140040553
mov rdx, rdi
mov rcx, rsi
call fcn.140035270
mov r14, rax
test rax, rax
jne 0x14004041e
mov dword [rbp - 0x49], 0x15f5158c
mov ecx, 0x15d7
mov dword [rbp - 0x45], 0x15fa1584
mov dword [rbp - 0x41], 0x15bd1598
mov dword [rbp - 0x3d], 0x15f915b3
mov dword [rbp - 0x39], 0x15c015ab
mov dword [rbp - 0x35], 0x15871592
mov dword [rbp - 0x31], 0x15c41597
mov dword [rbp - 0x2d], 0x15821588
mov dword [rbp - 0x29], 0x15c8158b
mov dword [rbp - 0x25], 0x158b1599
mov dword [rbp - 0x21], 0x1589158c
mov dword [rbp - 0x1d], 0x15ce159e
mov dword [rbp - 0x19], 0x1591158c
mov dword [rbp - 0x15], 0x159a1592
mov dword [rbp - 0x11], 0x15d81596
mov dword [rbp - 0xd], 0x159515d5
mov dword [rbp - 9], 0x159d159b
mov dword [rbp - 5], 0x15941598
mov dword [rbp - 1], 0x15921592
mov dword [rbp + 3], 0x15de159a
mov dword [rbp + 7], 0x1670158a
mov dword [rbp + 0xb], 0x162f
mov byte [rbp + 0xf], 1
nop dword [rax]
lea eax, [rcx + rbx]
xor word [rbp + rbx*2 - 0x49], ax
inc rbx
cmp rbx, 0x2b
jb 0x140040400
mov byte [rbp + 0xf], 0
lea rdx, [rbp - 0x49]
jmp 0x140040309
mov rdx, rdi
mov rcx, rsi
call fcn.1400354f0
test al, al
jne 0x140040548
mov dword [rbp - 0x49], 0x15f5158c
mov ecx, 0x15d7
mov dword [rbp - 0x45], 0x15fa1584
mov dword [rbp - 0x41], 0x15bd1598
mov dword [rbp - 0x3d], 0x15f915b3
mov dword [rbp - 0x39], 0x15c015ab
mov dword [rbp - 0x35], 0x158a1582
mov dword [rbp - 0x31], 0x158a1582
mov dword [rbp - 0x2d], 0x15831582
mov dword [rbp - 0x29], 0x159815c7
mov dword [rbp - 0x25], 0x1585159b
mov dword [rbp - 0x21], 0x1589159f
mov dword [rbp - 0x1d], 0x159a158e
mov dword [rbp - 0x19], 0x159f1586
mov dword [rbp - 0x15], 0x15d2159f
mov dword [rbp - 0x11], 0x159b1595
mov dword [rbp - 0xd], 0x15d61587
mov dword [rbp - 9], 0x159c159a
mov dword [rbp - 5], 0x15da1595
mov dword [rbp - 1], 0x159d158b
mov dword [rbp + 3], 0x159b159a
mov dword [rbp + 7], 0x162c158c
mov dword [rbp + 0xb], 0x16611621
mov dword [rbp + 0xf], 0x1661166f
mov dword [rbp + 0x13], 0x16681664
mov dword [rbp + 0x17], 0x1666166e
mov dword [rbp + 0x1b], 0x162a166e
mov dword [rbp + 0x1f], 0x167c167e
mov word [rbp + 0x23], bx
mov byte [rbp + 0x25], 1
nop dword [rax + rax]
lea eax, [rcx + rbx]
xor word [rbp + rbx*2 - 0x49], ax
inc rbx
cmp rbx, 0x36
jb 0x140040500
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rbp - 0x49]
mov byte [rbp + 0x25], 0
call fcn.14003b430
lea rdx, [0x14003b610]
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 r8, rdi
mov rdx, r14
mov rcx, rsi
call fcn.140035750
jmp 0x140040325
test r15, r15
je 0x140040550
mov qword [r15], rdi
mov rax, r14
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1400a9330
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret