Function at 0x140004070
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov rbx, r8
mov r12, rdx
mov r13, rcx
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x40], 0
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memset
lea rcx, [rbx + 0x20]
cmp qword [rbx + 0x38], 7
jbe 0x1400040de
mov rcx, qword [rbx + 0x20]
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
call fcn.1400077b8
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov edx, eax
lea rcx, [rsp + 0x58]
call fcn.140007270
nop
lea rbx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rbx, qword [rsp + 0x58]
lea rax, [0x14000a980]
mov qword [rbp - 0x70], rax
lea rcx, [rbp + 0x40]
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 + 0x40], 0x1e
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x60]
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 rdi, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x70], rdi
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x74], edx
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rsi, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x60], rsi
mov byte [rbp + 0x1c], 0
mov byte [rbp + 0x11], 0
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x20], 0
mov rax, qword [0x14000fbb0]
mov qword [rbp + 0x14], rax
mov qword [rbp + 8], 0
mov r8d, 0x21
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140005a30
test rax, rax
jne 0x1400041ee
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x70]
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 [rbp - 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x70], rdi
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x74], edx
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x14000424d
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004248
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004248
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140007fb8
cmp qword [rbp + 0x20], 0
jne 0x1400042e2
mov qword [r12], 0
mov qword [r12 + 8], 0
mov qword [r12 + 0x10], 0
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x70], rdi
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x74], edx
mov qword [rbp - 0x60], rsi
cmp qword [rbp + 0x20], 0
je 0x1400042c3
mov rax, qword [rbp - 0x48]
lea rcx, [rbp + 0x10]
cmp qword [rax], rcx
jne 0x1400042c3
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x28]
mov qword [rax], rcx
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp - 0x10]
mov dword [rax], edx
cmp byte [rbp + 0x1c], 0
je 0x1400042d2
lea rcx, [rbp - 0x60]
call fcn.1400058f0
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
jmp 0x1400044ae
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rax
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
mov rax, qword [rbp + rcx - 0x28]
mov qword [rsp + 0x30], rax
test rax, rax
sete byte [rsp + 0x38]
mov byte [rsp + 0x39], 0
mov qword [rsp + 0x78], 0
mov qword [rbp - 0x80], 0
mov qword [rbp - 0x78], 0
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x48], rcx
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
mov r15b, 1
xor edi, edi
movzx esi, byte [rsp + 0x39]
mov rbx, qword [rsp + 0x30]
test rax, rax
jne 0x140004359
movzx r14d, byte [rsp + 0x38]
jmp 0x140004393
test rbx, rbx
je 0x140004371
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
je 0x140004371
movzx esi, al
jmp 0x140004373
xor ebx, ebx
mov r14b, 1
test r15b, r15b
jne 0x140004393
test rdi, rdi
je 0x14000438e
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
jne 0x140004390
xor edi, edi
mov r15b, 1
test rbx, rbx
jne 0x1400044f5
test rdi, rdi
jne 0x1400044fe
xor ebx, ebx
mov r8d, ebx
mov rax, qword [rbp - 0x80]
cmp rax, qword [rsp + 0x78]
je 0x1400043e3
nop word [rax + rax]
mov rcx, qword [rsp + 0x78]
movzx eax, byte [rcx + r8]
xor al, byte [r13 + 0x30]
mov byte [rcx + r8], al
inc r8
mov rax, qword [rbp - 0x80]
sub rax, qword [rsp + 0x78]
cmp r8, rax
jb 0x1400043c0
lea rcx, [rbp - 0x60]
call fcn.1400058f0
test rax, rax
jne 0x14000440d
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x70]
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 rdx, qword [rbp - 0x78]
mov qword [rbp - 0x78], rbx
mov rcx, qword [rbp - 0x80]
mov qword [rbp - 0x80], rbx
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x78], rbx
mov qword [r12], rax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x10], rdx
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 - 0x74], edx
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x60], rax
cmp qword [rbp + 0x20], 0
je 0x140004494
mov rax, qword [rbp - 0x48]
lea rcx, [rbp + 0x10]
cmp qword [rax], rcx
jne 0x140004494
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x28]
mov qword [rax], rcx
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp - 0x10]
mov dword [rax], edx
cmp byte [rbp + 0x1c], 0
je 0x1400044a3
lea rcx, [rbp - 0x60]
call fcn.1400058f0
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x40]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov rax, r12
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.140007f90
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
test rdi, rdi
jne 0x1400043a5
test r14b, r14b
jne 0x14000451d
test rbx, rbx
je 0x14000451b
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
je 0x14000451b
movzx esi, al
jmp 0x14000451d
xor ebx, ebx
mov byte [rsp + 0x20], sil
mov rax, qword [rbp - 0x80]
cmp rax, qword [rbp - 0x78]
je 0x140004535
mov byte [rax], sil
inc qword [rbp - 0x80]
jmp 0x140004548
lea r8, [rsp + 0x20]
mov rdx, qword [rbp - 0x80]
lea rcx, [rsp + 0x78]
call fcn.1400073c0
test rbx, rbx
je 0x140004371
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sbumpc_void____ptr64]
cmp eax, 0xffffffff
je 0x140004371
mov byte [rsp + 0x38], 0
jmp 0x140004359