Function at 0x140007aa0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x590
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x5c8], rbx
mov rax, qword [0x1400c2038]
xor rax, rsp
mov qword [rsp + 0x580], rax
mov rbp, r8
mov rbx, rdx
mov rdi, rcx
lea rcx, [rsp + 0x38]
call qword [0x14008a728]
nop
mov r8, rbx
lea rdx, [rsp + 0x470]
mov rcx, rdi
call fcn.140007740
nop
lea r9, [rsp + 0x478]
cmp qword [rsp + 0x490], 0x10
cmovae r9, qword [rsp + 0x478]
lea r8, str.http:__activation.format_recovery.com_activation2_activation_dr.php
lea rdx, str._s_key_Sproductiboysoft_win_data_recovery
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_COleServerDoc::XOleObject::EnumAdvise]
lea rdx, [0x14008ac98]
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
mov dword [rdi + 4], 1
lea rdx, str.M3_END
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
lea rdx, str.M3_BEGIN
lea rcx, [rsp + 0x20]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x38]
call fcn.140004aa0
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov r11, qword [rsp + 0x28]
cmp dword [r11 - 0x10], 0
jg 0x140007bec
lea rdx, [rsp + 0x470]
mov rcx, rbp
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
mov dword [rdi + 4], 0
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x470]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor eax, eax
jmp 0x140007eff
xor edx, edx
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc90u.dll_CStdioFile::Flush]
mov rdx, rax
lea rcx, [rsp + 0x498]
call fcn.140034610
nop
lea rcx, [rsp + 0x30]
call fcn.1400045c0
nop
xor edx, edx
mov rcx, rax
call qword [sym.imp.mfc90u.dll_CStdioFile::Flush]
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140034610
nop
lea rdx, [rsp + 0x4a0]
cmp qword [rsp + 0x4b8], 0x10
cmovae rdx, qword [rsp + 0x4a0]
mov r8, rax
mov rcx, rdi
call fcn.140007f30
mov rsi, rax
lea rcx, [rsp + 0x48]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CView::CView]
test rsi, rsi
je 0x140007ec7
cmp qword [rsi + 0x18], 0x20
jne 0x140007ec7
mov byte [rsp + 0x4c0], 0
xor eax, eax
mov qword [rsp + 0x4c1], rax
mov qword [rsp + 0x4c9], rax
mov qword [rsp + reloc.mfc90u.dll_AfxSetModuleState], rax
mov qword [rsp + 0x4d9], rax
mov qword [rsp + AfxThrowResourceException], rax
mov qword [rsp + 0x4e9], rax
mov qword [rsp + 0x4f1], rax
mov dword [rsp + 0x4f9], eax
mov word [rsp + 0x4fd], ax
mov byte [rsp + 0x4ff], al
cmp qword [rsi + 0x20], 0x10
jb 0x140007ce9
lea rdi, [rsi + 8]
mov r8, qword [rdi]
jmp 0x140007cf0
lea rdi, [rsi + 8]
mov r8, rdi
mov edx, 0x40
lea rcx, [rsp + 0x4c0]
call qword [sym.imp.MSVCR90.dll_strcpy_s]
xor r11d, r11d
mov qword [rsp + 0x4d8], r11
xor ebx, ebx
xor r9d, r9d
lea r10, [rsp + 0x70]
mov r11d, 8
nop
mov edx, r9d
shl edx, 0x18
xor ecx, ecx
mov r8, r11
nop dword [rax + rax]
mov eax, ecx
xor eax, edx
bt eax, 0x1f
jae 0x140007d44
add ecx, ecx
xor ecx, 0x4c10db7
jmp 0x140007d46
add ecx, ecx
add edx, edx
sub r8, 1
jne 0x140007d30
mov dword [r10], ecx
inc r9d
add r10, 4
cmp r9d, 0x100
jb 0x140007d20
lea r9, [rsp + 0x4c2]
nop dword [rax]
movzx ecx, byte [r9 - 2]
mov eax, ebx
shr rax, 0x18
xor rcx, rax
shl ebx, 8
mov edx, dword [rsp + rcx*4 + 0x70]
xor edx, ebx
movzx ecx, byte [r9 - 1]
mov eax, edx
shr rax, 0x18
xor rcx, rax
shl edx, 8
mov r8d, dword [rsp + rcx*4 + 0x70]
xor r8d, edx
mov ecx, r8d
shr rcx, 0x18
movzx eax, byte [r9]
xor rcx, rax
shl r8d, 8
mov edx, dword [rsp + rcx*4 + 0x70]
xor edx, r8d
movzx ecx, byte [r9 + 1]
mov eax, edx
shr rax, 0x18
xor rcx, rax
shl edx, 8
mov ebx, dword [rsp + rcx*4 + 0x70]
xor ebx, edx
add r9, 4
sub r11, 1
jne 0x140007d70
cmp qword [rsi + 0x20], 0x10
jb 0x140007de4
mov rdi, qword [rdi]
mov r8, rdi
mov edx, 0x40
lea rcx, [rsp + 0x4c0]
call qword [sym.imp.MSVCR90.dll_strcpy_s]
lea rcx, [rsp + 0x4d8]
call fcn.1400040c0
cmp eax, ebx
jne 0x140007ec7
mov byte [rsp + CDaoRecordset::AllocDatabase], 0
xor edx, edx
lea r8d, [rdx + 0x7f]
lea rcx, [rsp + 0x501]
call sub.MSVCR90.dll_memset
lea r8, [rsp + 0x4c0]
mov edx, 0x80
lea rcx, [rsp + 0x500]
call qword [sym.imp.MSVCR90.dll_strcpy_s]
mov byte [rsp + 0x508], 0
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x20]
lea rdx, [0x14008be28]
lea rcx, [rsp + 0x500]
call qword [sym.imp.MSVCR90.dll_sscanf]
mov ebx, dword [rsp + 0x20]
lea rcx, [rsp + 0x4c8]
call fcn.1400040c0
mov edi, eax
lea rcx, [rsp + 0x4d0]
call fcn.1400040c0
xor ebx, eax
xor edi, eax
cmp bx, 0x1e
jne 0x140007ec7
shr ebx, 0x10
cmp bx, 1
jne 0x140007ec7
cmp edi, 0x9a
je 0x140007eb5
lea eax, [rdi - 0x99]
cmp eax, 4
ja 0x140007ec7
lea rdx, [rsp + 0x498]
mov rcx, rbp
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x498]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x470]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov rax, rsi
mov rcx, qword [rsp + 0x580]
xor rcx, rsp
call fcn.140077470
mov rbx, qword [rsp + 0x5c8]
add rsp, 0x590
pop rdi
pop rsi
pop rbp
ret