Function at 0x140005724
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rsi
push rdi
push r15
sub rsp, 0x2c0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x1400a48d0]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
mov rsi, rdx
mov rdi, rcx
lea r15, str._b0_n_
mov rcx, qword [str._b0_n_]
mov ebx, 0x100
cmp rcx, r15
je 0x14000578f
test dword [rcx + 0x1c], ebx
je 0x14000578f
cmp byte [rcx + 0x19], 4
jb 0x14000578f
mov edx, AtlComQIPtrAssign
lea r8, [0x1400835a8]
mov rcx, qword [rcx + 0x10]
call fcn.1400043e4
call qword [sym.imp.KERNEL32.dll_GetVersion]
nop dword [rax + rax]
cmp al, 5
jb 0x14000590e
mov edx, InitCommonControls
lea ecx, [rdx + 0x72]
call qword [sym.imp.MFC42u.dll_Ordinal_1441]
nop dword [rax + rax]
mov rcx, rax
mov edx, 0x80
call qword [sym.imp.USER32.dll_LoadIconW]
nop dword [rax + rax]
test rax, rax
jne 0x14000586c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov edi, eax
mov rcx, qword [str._b0_n_]
cmp rcx, r15
je 0x140005819
test dword [rcx + 0x1c], ebx
je 0x140005819
cmp byte [rcx + 0x19], 2
jb 0x140005819
mov edx, AtlComQIPtrAssign
mov dword [rsp + 0x20], edi
lea r9, str.LoadIcon
lea r8, [0x1400835a8]
mov rcx, qword [rcx + 0x10]
call fcn.140004454
call qword [sym.imp.MFC42u.dll_Ordinal_1471]
nop dword [rax + rax]
mov rdx, rax
test rax, rax
je 0x140005840
mov rcx, qword [rax]
mov rax, qword [rcx + 0xf8]
mov rcx, rdx
call qword [case.0x14000c28f.0]
test rax, rax
je 0x140005b3c
mov r8, rdi
mov r9d, 0x10326
mov edx, 0x8003
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_PostMessageW]
nop dword [rax + rax]
jmp 0x140005b3c
mov r9, rax
lea r8, [0x1400835a0]
mov rdx, qword [rdi + 0xe8]
mov rcx, rsi
call qword [sym.imp.SHELL32.dll_ShellAboutW]
nop dword [rax + rax]
test eax, eax
jne 0x140005b3c
mov rcx, qword [str._b0_n_]
cmp rcx, r15
je 0x1400058cd
test dword [rcx + 0x1c], ebx
je 0x1400058cd
cmp byte [rcx + 0x19], 2
jb 0x1400058cd
lea edx, [rax + 0x1f]
mov dword [rsp + 0x20], reloc.MFC42u.dll_COleDocument::AddItem
lea r9, str.ShellAbout
lea r8, [0x1400835a8]
mov rcx, qword [rcx + 0x10]
call fcn.140004454
call qword [sym.imp.MFC42u.dll_Ordinal_1471]
nop dword [rax + rax]
mov rdx, rax
test rax, rax
je 0x1400058f4
mov rcx, qword [rax]
mov rax, qword [rcx + 0xf8]
mov rcx, rdx
call qword [case.0x14000c28f.0]
test rax, rax
je 0x140005b3c
mov r9d, 0x1032e
mov r8d, reloc.MFC42u.dll_COleDocument::AddItem
jmp 0x140005852
xor r8d, r8d
lea esi, [r8 + 0x64]
mov edx, esi
lea rcx, [rsp + 0x40]
call qword [sym.imp.MFC42u.dll_CDocTemplate::CDocTemplate]
nop dword [rax + rax]
nop
lea rax, vtable.CAboutDlg.0
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x100]
call qword [sym.imp.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo]
nop dword [rax + rax]
nop
lea edi, [rsi + 0x64]
mov r8d, edi
xor edx, edx
lea rcx, [rsp + 0x1e0]
call sub.msvcrt.dll_memset
mov r8d, edi
xor edx, edx
lea rcx, [rsp + 0x110]
call sub.msvcrt.dll_memset
and qword [rsp + 0x20], 0
lea r9d, [rsi - 0x5a]
lea r8, str._d._d
mov edx, esi
lea rcx, [rsp + 0x1e0]
call fcn.140006aa0
mov edi, eax
test eax, eax
jns 0x140005a1f
mov edx, eax
and edx, 0x1fff0000
movzx ecx, di
cmp edx, 0x70000
cmove edi, ecx
mov rcx, qword [str._b0_n_]
cmp rcx, r15
je 0x1400059e4
test dword [rcx + 0x1c], ebx
je 0x1400059e4
cmp byte [rcx + 0x19], 2
jb 0x1400059e4
lea edx, [rsi - 0x44]
mov dword [rsp + 0x20], edi
lea r9, str.StringCchPrintf
lea r8, [0x1400835a8]
mov rcx, qword [rcx + 0x10]
call fcn.140004454
call qword [sym.imp.MFC42u.dll_Ordinal_1471]
nop dword [rax + rax]
mov rdx, rax
test rax, rax
je 0x140005a0b
mov rcx, qword [rax]
mov rax, qword [rcx + 0xf8]
mov rcx, rdx
call qword [case.0x14000c28f.0]
test rax, rax
je 0x140005b17
mov r9d, 0x10342
jmp 0x140005ac0
xor r9d, r9d
lea r8, [0x140083574]
mov rdx, rsi
lea rcx, [rsp + 0x110]
call fcn.140006aa0
mov edi, eax
test eax, eax
jns 0x140005ada
mov edx, eax
and edx, 0x1fff0000
movzx ecx, di
cmp edx, 0x70000
cmove edi, ecx
mov rcx, qword [str._b0_n_]
cmp rcx, r15
je 0x140005a8e
test dword [rcx + 0x1c], ebx
je 0x140005a8e
cmp byte [rcx + 0x19], 2
jb 0x140005a8e
mov edx, 0x22
mov dword [rsp + 0x20], edi
lea r9, str.StringCchPrintf
lea r8, [0x1400835a8]
mov rcx, qword [rcx + 0x10]
call fcn.140004454
call qword [sym.imp.MFC42u.dll_Ordinal_1471]
nop dword [rax + rax]
mov rdx, rax
test rax, rax
je 0x140005ab5
mov rcx, qword [rax]
mov rax, qword [rcx + 0xf8]
mov rcx, rdx
call qword [case.0x14000c28f.0]
test rax, rax
je 0x140005b17
mov r9d, 0x10359
mov r8d, edi
mov edx, 0x8003
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_PostMessageW]
nop dword [rax + rax]
jmp 0x140005b17
lea r9, [rsp + 0x110]
lea r8, [rsp + 0x1e0]
mov edx, 0xef42
lea rcx, [rsp + 0x100]
call qword [sym.imp.MFC42u.dll_Ordinal_1443]
nop dword [rax + rax]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.MFC42u.dll_COleUpdateDialog::DoModal]
nop dword [rax + rax]
jmp 0x140005b17
lea rcx, [rsp + 0x100]
call qword [sym.imp.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef]
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call qword [sym.imp.MFC42u.dll_COleVariant::operator]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.14006e550
mov rbx, qword [rsp + 0x2f0]
add rsp, 0x2c0
pop r15
pop rdi
pop rsi
ret