Function at 0x1400317d8
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x190
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov rbx, rcx
mov qword [rsp + 0x20], rcx
xor esi, esi
cmp dword [rcx + 0x14c], esi
je 0x14003184b
movzx ecx, word [rcx + 0x14c]
call qword [sym.imp.KERNEL32.DLL_SetThreadLocale]
mov dword [rsp + 0x30], esi
lea r8, [rsp + 0x30]
lea rdx, [0x14010f658]
lea ecx, [rsi + 8]
call qword [sym.imp.KERNEL32.DLL_SetThreadPreferredUILanguages]
movzx ecx, word [rbx + 0x14c]
call qword [sym.imp.KERNEL32.DLL_SetThreadUILanguage]
mov eax, dword [rbx + 0x148]
test eax, eax
jne 0x14003189c
mov qword [rsp + 0x60], 0x11c
xor edx, edx
mov r8d, 0x114
lea rcx, [rsp + 0x68]
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.DLL_GetVersionExW]
test eax, eax
setne al
test al, al
je 0x1400318c0
cmp dword [rsp + 0x64], 6
jne 0x1400318c0
mov eax, dword [rsp + 0x68]
add eax, 0xfffffffe
cmp eax, 1
ja 0x1400318c0
mov eax, 2
cmp eax, 1
je 0x1400318c0
cmp eax, 2
jne 0x1400318ac
lea rax, [rbx + 0x50]
jmp 0x1400318c4
cmp eax, 3
jne 0x1400318b7
lea rax, [rbx + 0x58]
jmp 0x1400318c4
cmp eax, 4
lea rax, [rbx + 0x60]
je 0x1400318c4
lea rax, [rbx + 0x48]
mov qword [rbx + 0x38], rax
mov qword [0x140184740], rax
lea rcx, [rbx + 0xf8]
call fcn.14005e108
lea rcx, [0x14010f630]
call qword [sym.imp.SHELL32.dll_SetCurrentProcessExplicitAppUserModelID]
mov ecx, 0xd20
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14003190a
mov rcx, rax
call fcn.1400510fc
mov rcx, rax
jmp 0x14003190d
mov rcx, rsi
mov qword [rbx + 0x30], rcx
test rcx, rcx
jne 0x14003191d
xor al, al
jmp 0x140031a33
mov rax, qword [rcx]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
test al, al
jne 0x140031978
or r8d, 0xffffffff
lea rdx, [0x14010f650]
lea rcx, [rsp + 0x30]
call fcn.1400e6fc8
nop
lea rax, vtable.micro::utils::QString.0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rsi
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.1400e7b9c
nop
lea rdx, [0x14016bc48]
lea rcx, [rsp + 0x40]
call sub.msvcrt.dll__CxxThrowException
nop
mov edi, dword [rbx + 0x160]
cmp edi, 3
je 0x14003198c
mov rcx, qword [rbx + 0x30]
call fcn.1400ec740
mov rcx, qword [rbx + 0x30]
mov edx, edi
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_ShowWindow]
mov byte [rbx + 0x70], sil
mov dword [rbx + 0x80], 3
mov qword [rbx + 0x88], rsi
mov qword [rbx + 0x90], rsi
mov qword [rbx + 0x98], rsi
mov qword [rbx + 0xa0], rsi
mov qword [rbx + 0xa8], rsi
mov qword [rbx + 0xb0], rsi
mov dword [rbx + 0xb8], esi
mov dword [rbx + 0xbc], 1
mov dword [rbx + 0xc0], 0x48
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateThreadpool]
mov qword [rbx + 0x78], rax
test rax, rax
je 0x140031a2d
mov qword [rbx + 0x88], rax
call qword [sym.imp.KERNEL32.DLL_CreateThreadpoolCleanupGroup]
mov qword [rbx + 0xc8], rax
test rax, rax
je 0x140031a2d
mov qword [rbx + 0x90], rax
lea rax, [method.mc::MyGetPasswordDialog.virtual_48]
mov qword [rbx + 0x98], rax
mov al, 1
jmp 0x140031a33
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.140001010
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret