Function at 0x41fd40
Capabilities:
Check os version

Disassembly:
push rbp
push rbx
sub rsp, 0xa8
mov rbp, rsp
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], rbp
mov qword [rbp + 0xc0], rcx
mov dword [rbp + 0xc8], edx
nop
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
je 0x41fdc8
lea rcx, [rbp + 0x70]
mov edx, dword [rbp + 0xc8]
call qword [0x00604308]
mov rcx, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0x70]
call fcn.0040fbe0
jmp 0x420028
mov eax, dword [rbp + 0xc8]
test eax, 0xc0000000
je 0x41fe41
lea rcx, [rbp + 0x68]
mov rdx, qword [0x006043e8]
call fcn.00420130
mov rcx, qword [rbp + 0x68]
call fcn.0040f280
mov rcx, rax
call sub.kernel32.dll_GetModuleHandleA
mov rbx, rax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x00604b38]
call fcn.00420130
mov rcx, qword [rbp + 0x60]
call fcn.0040f280
mov rcx, rbx
mov rdx, rax
call sub.kernel32.dll_GetProcAddress
mov qword [rbp + 0x80], rax
cmp qword [rbp + 0x80], 0
je 0x41fe41
mov ecx, dword [rbp + 0xc8]
call qword [rbp + 0x80]
mov dword [rbp + 0xc8], eax
mov dword [rbp + 0x88], 0x1300
cmp dword [rbp + 0xc8], 0x834
jb 0x41feab
cmp dword [rbp + 0xc8], 0xbb7
ja 0x41feab
lea rcx, [rbp + 0x58]
mov rdx, qword [0x00604b30]
call fcn.00420130
mov rcx, qword [rbp + 0x58]
call fcn.0040f280
mov rcx, rax
xor rdx, rdx
mov r8d, 2
call sub.kernel32.dll_LoadLibraryExA
mov qword [rbp + 0x90], rax
cmp qword [rbp + 0x90], 0
je 0x41feb6
or dword [rbp + 0x88], 0x800
jmp 0x41feb6
mov qword [rbp + 0x90], 0
nop
mov ecx, dword [rbp + 0x88]
mov rdx, qword [rbp + 0x90]
mov r8d, dword [rbp + 0xc8]
mov r9d, 0x400
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
call sub.kernel32.dll_FormatMessageW
test eax, eax
je 0x41ffb2
nop
mov rcx, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0x98]
call fcn.0040fb30
mov rax, qword [rbp + 0xc0]
mov rcx, qword [rax]
call fcn.0040e860
mov dword [rbp + 0x8c], eax
cmp dword [rbp + 0x8c], 0
jbe 0x41ffa2
mov rax, qword [rbp + 0xc0]
mov rax, qword [rax]
mov ecx, dword [rbp + 0x8c]
cmp word [rax + rcx*2 - 2], 0xd
jne 0x41ff61
mov rcx, qword [rbp + 0xc0]
call fcn.0040e980
mov ecx, dword [rbp + 0x8c]
mov word [rax + rcx*2 - 2], 0x20
jmp 0x41ff92
mov rax, qword [rbp + 0xc0]
mov rax, qword [rax]
mov ecx, dword [rbp + 0x8c]
cmp word [rax + rcx*2 - 2], 0xa
jne 0x41ff92
mov rcx, qword [rbp + 0xc0]
mov edx, dword [rbp + 0x8c]
mov r8d, 1
call fcn.00410160
sub dword [rbp + 0x8c], 1
cmp dword [rbp + 0x8c], 0
ja 0x41ff2e
nop
nop
mov rcx, qword [rbp + 0x98]
call sub.kernel32.dll_LocalFree
jmp 0x420010
lea rcx, [rbp + 0x50]
mov rdx, qword [0x00604b40]
call fcn.00420130
lea rcx, [rbp + 0x48]
mov rdx, qword [rbp + 0x50]
call fcn.0040fbe0
lea rcx, [rbp + 0x40]
mov edx, dword [rbp + 0xc8]
mov r8d, 1
mov r9w, 0x30
call fcn.0041eaf0
mov rcx, qword [rbp + 0xc0]
mov edx, 3
mov r8, qword [rbp + 0x48]
lea r9, [0x00420124]
mov rax, qword [rbp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.00410010
nop
cmp qword [rbp + 0x90], 0
je 0x420027
mov rcx, qword [rbp + 0x90]
call sub.kernel32.dll_FreeLibrary
nop
lea rcx, [rbp + 0x40]
mov edx, 2
call fcn.0040e140
lea rcx, [rbp + 0x50]
mov edx, 5
call fcn.0040e170
mov rax, qword [rbp + 0xc0]
lea rsp, [rbp + 0xa8]
pop rbx
pop rbp
ret