Function at 0x140001660
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x2b0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
mov rax, qword [0x140009040]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov rsi, rcx
xor ebx, ebx
mov dword [rsp + 0x20], ebx
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x70]
call sub.VCRUNTIME140.dll_memset
lea r15, [0x140000000]
lea rax, [r15 + 0x5678]
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x120]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x70]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x70], rax
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x6c], edx
lea rcx, [rbp + 0x80]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea r14, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x80], r14
mov byte [rbp + 0xfc], bl
mov byte [rbp + 0xf1], bl
lea rcx, [rbp + 0x80]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x100], rbx
mov rax, qword [0x140193678]
mov qword [rbp + 0xf4], rax
mov qword [rbp + 0xe8], rbx
lea r8d, [rbx + 1]
mov rdx, rsi
lea rcx, [rbp + 0x80]
call fcn.140002db0
test rax, rax
jne 0x14000179f
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x70]
add rcx, rax
xor r8d, r8d
lea edx, [rbx + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x70]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::good_void_const___ptr64]
movzx edi, al
lea rcx, [rbp + 0x70]
call fcn.1400015a0
test dil, dil
je 0x1400017cc
xor al, al
jmp 0x140001b29
xor edx, edx
mov r8d, 0x108
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll_memset
lea rax, [r15 + 0x5670]
mov qword [rsp + 0x60], rax
lea rcx, [rbp + 8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x60], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x5c], edx
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
mov qword [rsp + 0x68], r14
mov byte [rbp - 0x1c], 0
mov byte [rbp - 0x27], 0
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp - 0x18], rbx
mov rax, qword [0x140193678]
mov qword [rbp - 0x24], rax
mov qword [rbp - 0x30], rbx
mov r8d, 0x22
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.140002db0
test rax, rax
jne 0x1400018a9
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x60]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x60]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
test al, al
je 0x1400019b2
movdqa xmm6, xmmword [0x1400056d0]
movdqa xmm7, xmmword [0x1400056a0]
mov dword [rsp + 0x48], 0x5a475c59
mov dword [rsp + 0x4c], 0x2e494047
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x140193674], eax
jle 0x14000194d
lea rcx, [0x140193674]
call fcn.1400034bc
cmp dword [0x140193674], 0xffffffff
jne 0x14000194d
movups xmmword [0x140193638], xmm6
movups xmmword [0x140193648], xmm7
movsd xmm0, qword [rsp + 0x48]
movsd qword [0x140193658], xmm0
lea rcx, [0x140004570]
call fcn.140003798
lea rcx, [0x140193674]
call fcn.140003450
lea rdx, [0x140193638]
cmp byte [0x14019365f], 0
je 0x140001acd
movdqa xmm2, xmmword [str.................m]
nop dword [rax]
movdqu xmm0, xmmword [rbx + rdx]
movdqa xmm1, xmm2
xorps xmm1, xmm0
movdqu xmmword [rbx + rdx], xmm1
add rbx, 0x10
cmp rbx, 0x20
jb 0x140001970
cmp rbx, 0x28
jae 0x140001acd
nop word [rax + rax]
xor byte [rbx + rdx], 0x2e
inc rbx
cmp rbx, 0x28
jb 0x1400019a0
jmp 0x140001acd
mov r8d, 0x189c00
lea rdx, [0x1400090c0]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::write_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x60]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
test al, al
je 0x140001aed
movdqa xmm6, xmmword [0x1400056e0]
mov dword [rsp + 0x38], 0x40475a47
mov dword [rsp + 0x3c], 0x415a0e49
mov dword [rsp + 0x40], 0x4247480e
mov word [rsp + 0x44], 0x2e4b
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x140193684], eax
jle 0x140001a84
lea rcx, [0x140193684]
call fcn.1400034bc
cmp dword [0x140193684], 0xffffffff
jne 0x140001a84
movups xmmword [0x140193688], xmm6
movsd xmm0, qword [rsp + 0x38]
movsd qword [0x140193698], xmm0
mov eax, dword [rsp + 0x40]
mov dword [0x1401936a0], eax
movzx eax, word [rsp + 0x44]
mov word [0x1401936a4], ax
lea rcx, [0x140004540]
call fcn.140003798
lea rcx, [0x140193684]
call fcn.140003450
lea rdx, [0x140193688]
cmp byte [0x1401936a5], 0
je 0x140001acd
movdqa xmm1, xmmword [str.................m]
movdqu xmm0, xmmword [0x140193688]
xorps xmm1, xmm0
movdqu xmmword [0x140193688], xmm1
mov eax, 0x10
nop dword [rax]
nop dword [rax + rax]
xor byte [rax + rdx], 0x2e
inc rax
cmp rax, 0x1e
jb 0x140001ac0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140002f20
lea rdx, [0x1400030f0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor bl, bl
jmp 0x140001b1c
lea rcx, [rsp + 0x68]
call fcn.140002cf0
test rax, rax
jne 0x140001b1a
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x60]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
mov bl, 1
lea rcx, [rsp + 0x60]
call fcn.140001b60
movzx eax, bl
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.140003430
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop rbp
ret