Function at 0x180018640
Capabilities:
Check os version
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x2a0
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rsp + 0x290], rax
movzx esi, r9b
mov rbx, rcx
test dl, 2
je 0x180018678
cmp byte [rcx + 0x98], 0
je 0x1800188ac
cmp dword [rcx + 0x10], 0xffffffff
mov qword [rsp + 0x2b8], rdi
jne 0x1800186cd
cmp byte [rcx + 0x99], 0
jne 0x18001869b
mov rcx, qword [rcx + 0xa8]
test rcx, rcx
jne 0x180018686
xor edi, edi
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
mov dword [rsp + 0x20], edi
xor edx, edx
call fcn.1801f4ab4
test rax, rax
je 0x1800186cd
mov rax, qword [rax + 0xe0]
cmp byte [rax + 0x50], dil
setne dil
mov dword [rbx + 0x10], edi
cmp dword [rbx + 0x10], 1
jne 0x1800188a4
test sil, sil
jne 0x1800188a4
cmp byte [rbx + 0x99], 0
jne 0x1800186fa
mov rbx, qword [rbx + 0xa8]
test rbx, rbx
jne 0x1800186e0
jmp 0x1800188a4
test rbx, rbx
je 0x1800188a4
mov rax, qword [rbx + 0xe0]
mov rcx, qword [rax]
test rcx, rcx
je 0x1800188a4
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, rax
mov rdi, rax
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1800188a4
mov edx, 0xfffffff0
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
and eax, 0x1040000
cmp eax, 0x1040000
jne 0x18001888d
xor edx, edx
lea rcx, [rsp + 0x34]
mov r8d, 0x118
call fcn.1801cf320
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180018886
cmp dword [rsp + 0x34], 6
ja 0x180018793
jne 0x180018837
cmp dword [rsp + 0x38], 2
jb 0x180018837
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x180018837
mov edx, 1
mov rcx, rax
lea r8d, [rdx + 0xf]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x180018837
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x180018837
movups xmm0, xmmword [0x1802251f0]
mov rcx, rax
movups xmm1, xmmword [0x180225200]
movups xmmword [rsp + 0x270], xmm0
movups xmmword [rsp + 0x280], xmm1
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x180018837
lea rcx, [rax + 6]
lea rdx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x180018837
cmp word [rbx + 2], ax
jbe 0x180018837
movzx edx, word [rbx + 0x32]
movzx eax, word [rbx + 0x30]
movzx ecx, word [rbx + 0x36]
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.RtlGetVersion
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x180018886
xor edx, edx
lea rcx, [rsp + 0x154]
mov r8d, 0x118
call fcn.1801cf320
lea rcx, [rsp + 0x150]
mov dword [rsp + 0x150], 0x11c
call rbx
cmp dword [rsp + 0x34], 6
jb 0x1800188a4
xor r9d, r9d
mov edx, VarUI4FromDisp
mov r8d, 0xf012
mov rcx, rdi
call qword [sym.imp.USER32.dll_PostMessageW]
mov rdi, qword [rsp + 0x2b8]
xor al, al
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.1801ccd30
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x2a0
pop rsi
ret