Function at 0x180038af0
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x450
mov rax, qword [0x1800ec5c8]
xor rax, rsp
mov qword [rsp + 0x440], rax
call fcn.180039270
mov dword [rsp + 0x190], eax
lea rdi, [rsp + 0x194]
xor eax, eax
mov ecx, 0x1f0
rep stosb byte [rdi], al
xor r9d, r9d
lea r8, [rsp + 0x190]
mov edx, 0x1f4
mov ecx, 0x29
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
mov dword [rsp + 0x180], eax
cmp dword [rsp + 0x180], 0
je 0x180038d92
mov dword [rsp + 0x3a0], 0
lea rdi, [rsp + 0x3a4]
xor eax, eax
mov ecx, 0x58
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x460]
cmp qword [rax + 0x110], 0
je 0x180038ba6
mov rcx, qword [rsp + 0x460]
add rcx, 0x110
lea rdx, [rsp + 0x3a0]
call fcn.180045910
mov eax, dword [rsp + 0x270]
cmp dword [rsp + 0x3a0], eax
jne 0x180038cd4
mov eax, dword [rsp + 0x274]
cmp dword [rsp + 0x3a4], eax
jne 0x180038cd4
mov eax, dword [rsp + 0x278]
cmp dword [rsp + 0x3a8], eax
jne 0x180038cd4
mov eax, dword [rsp + 0x27c]
cmp dword [rsp + 0x3ac], eax
jne 0x180038cd4
mov eax, dword [rsp + 0x280]
cmp dword [rsp + 0x3b0], eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3b4]
movzx eax, byte [rsp + 0x284]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3b5]
movzx eax, byte [rsp + 0x285]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3b6]
movzx eax, byte [rsp + 0x286]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3b7]
movzx eax, byte [rsp + 0x287]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3b8]
movzx eax, byte [rsp + 0x288]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3b9]
movzx eax, byte [rsp + 0x289]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3ba]
movzx eax, byte [rsp + 0x28a]
cmp ecx, eax
jne 0x180038cd4
movzx ecx, byte [rsp + 0x3bb]
movzx eax, byte [rsp + 0x28b]
cmp ecx, eax
jne 0x180038cd4
lea rdx, [rsp + 0x28c]
lea rcx, [rsp + 0x3bc]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x180038d92
lea rcx, [rsp + 0x270]
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov qword [rsp + 0x400], rax
cmp qword [rsp + 0x400], 0
je 0x180038d92
mov rax, qword [rsp + 0x460]
cmp qword [rax + 0x110], 0
je 0x180038d1f
mov rcx, qword [rsp + 0x460]
add rcx, 0x110
call fcn.18002e6d0
mov rcx, qword [rsp + 0x460]
add rcx, 0x110
mov rdx, qword [rsp + 0x400]
call fcn.180045880
mov rcx, qword [rsp + 0x460]
add rcx, 0x110
call fcn.180037fb0
mov rcx, qword [rsp + 0x460]
add rcx, 8
mov r8d, 1
mov rdx, rax
call fcn.18001e860
mov rcx, qword [rsp + 0x460]
add rcx, 8
lea rdx, [0x1800770e8]
call fcn.180044d70
mov rcx, qword [rsp + 0x460]
add rcx, 8
call fcn.180044da0
mov rdx, qword [rsp + 0x460]
mov rdx, qword [rdx + 8]
lea rcx, [rsp + 0x38]
call fcn.180037e90
mov rcx, qword [rsp + 0x460]
add rcx, 0x110
call fcn.180037fb0
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.180044bc0
mov qword [rsp + 0x390], rax
mov dword [rsp + 0x170], 0
mov dword [rsp + 0x174], 0
mov dword [rsp + 0x178], 0
mov dword [rsp + 0x17c], 0
mov dword [rsp + 0x20], 0x424
lea r9, [rsp + 0x170]
mov r8d, 0xffffffff
lea rdx, [0x1800770e4]
lea rcx, [rsp + 0x38]
call fcn.180044c20
mov ecx, dword [rsp + 0x170]
mov eax, dword [rsp + 0x178]
sub eax, ecx
cmp eax, 4
jge 0x180038e8e
lea rcx, [rsp + 0x170]
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov dword [rsp + 0x20], 0x424
lea r9, [rsp + 0x170]
mov r8d, 0xffffffff
lea rdx, [0x1800770e0]
lea rcx, [rsp + 0x38]
call fcn.180044c20
mov edx, dword [rsp + 0x170]
mov ecx, dword [rsp + 0x178]
sub ecx, edx
mov rax, qword [rsp + 0x460]
mov dword [rax + 0x128], ecx
jmp 0x180038ea0
mov rax, qword [rsp + 0x460]
mov dword [rax + 0x128], 0
mov rdx, qword [rsp + 0x390]
lea rcx, [rsp + 0x38]
call fcn.180044bc0
mov dword [rsp + 0x50], VarUI4FromDisp
lea rdi, [rsp + 0x54]
xor eax, eax
mov ecx, 0x110
rep stosb byte [rdi], al
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [rsp + 0x54], 5
jb 0x180038fbe
mov dword [rsp + 0x408], 1
xor r9d, r9d
lea r8, [rsp + 0x408]
xor edx, edx
mov ecx, 0x100a
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
mov dword [rsp + 0x180], eax
cmp dword [rsp + 0x180], 0
je 0x180038f26
cmp dword [rsp + 0x408], 0
jne 0x180038f26
mov byte [rsp + 0x430], 1
jmp 0x180038f2e
mov byte [rsp + 0x430], 0
movzx edx, byte [rsp + 0x430]
and dl, 1
shl dl, 1
mov rax, qword [rsp + 0x460]
movzx ecx, byte [rax + 0xf1]
and cl, 0xfd
or cl, dl
mov rax, qword [rsp + 0x460]
mov byte [rax + 0xf1], cl
mov rax, qword [rsp + 0x460]
movzx ecx, byte [rax + 0xf1]
or cl, 8
mov rax, qword [rsp + 0x460]
mov byte [rax + 0xf1], cl
mov rax, qword [rsp + 0x460]
movzx eax, byte [rax + 0xf1]
shr al, 1
and al, 1
movzx eax, al
test eax, eax
jne 0x180038fa1
mov byte [rsp + 0x431], 1
jmp 0x180038fa9
mov byte [rsp + 0x431], 0
movzx edx, byte [rsp + 0x431]
mov rcx, qword [rsp + 0x460]
call fcn.180039400
cmp dword [rsp + 0x54], 5
jne 0x180038fcc
cmp dword [rsp + 0x58], 1
jae 0x180038fd3
cmp dword [rsp + 0x54], 5
jbe 0x180039050
mov dword [rsp + 0x40c], 0
xor r9d, r9d
lea r8, [rsp + 0x40c]
xor edx, edx
mov ecx, 0x1022
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
mov dword [rsp + 0x180], eax
cmp dword [rsp + 0x180], 0
je 0x18003901b
cmp dword [rsp + 0x40c], 0
je 0x18003901b
mov byte [rsp + 0x432], 1
jmp 0x180039023
mov byte [rsp + 0x432], 0
movzx edx, byte [rsp + 0x432]
and dl, 1
mov rax, qword [rsp + 0x460]
movzx ecx, byte [rax + 0xf1]
and cl, 0xfe
or cl, dl
mov rax, qword [rsp + 0x460]
mov byte [rax + 0xf1], cl
call fcn.18002ec00
movzx eax, al
test eax, eax
je 0x18003908a
call fcn.180039260
movzx eax, al
test eax, eax
je 0x18003908a
mov rax, qword [rsp + 0x460]
mov eax, dword [rax + 0x98]
and eax, 0x10
test eax, eax
jne 0x18003908a
mov dword [rsp + 0x434], 1
jmp 0x180039095
mov dword [rsp + 0x434], 0
movzx eax, byte [rsp + 0x434]
mov byte [rsp + 0x30], al
movzx eax, byte [rsp + 0x30]
test eax, eax
je 0x1800391a0
lea rcx, str.uxtheme.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x410], rax
cmp qword [rsp + 0x410], 0
je 0x1800391a0
lea rdx, str.IsThemeActive
mov rcx, qword [rsp + 0x410]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x420], rax
movzx eax, byte [rsp + 0x30]
test eax, eax
je 0x18003911b
cmp qword [rsp + 0x420], 0
je 0x18003911b
call qword [rsp + 0x420]
test eax, eax
je 0x18003911b
mov dword [rsp + 0x438], 1
jmp 0x180039126
mov dword [rsp + 0x438], 0
movzx eax, byte [rsp + 0x438]
mov byte [rsp + 0x30], al
lea rdx, str.IsAppThemed
mov rcx, qword [rsp + 0x410]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x418], rax
movzx eax, byte [rsp + 0x30]
test eax, eax
je 0x18003917b
cmp qword [rsp + 0x418], 0
je 0x18003917b
call qword [rsp + 0x418]
test eax, eax
je 0x18003917b
mov dword [rsp + 0x43c], 1
jmp 0x180039186
mov dword [rsp + 0x43c], 0
movzx eax, byte [rsp + 0x43c]
mov byte [rsp + 0x30], al
mov rcx, qword [rsp + 0x410]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
movzx eax, byte [rsp + 0x30]
test eax, eax
jne 0x180039205
mov rax, qword [rsp + 0x460]
movzx eax, byte [rax + 0xf2]
and al, 1
movzx eax, al
test eax, eax
je 0x180039205
mov rax, qword [rsp + 0x460]
cmp qword [rax + 0x78], 0
je 0x180039205
mov rcx, qword [rsp + 0x460]
add rcx, 0x88
call fcn.18002ecf0
test eax, eax
jle 0x180039205
mov rax, qword [rsp + 0x460]
mov qword [rsp + 0x428], rax
mov rcx, qword [rsp + 0x428]
call fcn.180032940
movzx edx, byte [rsp + 0x30]
and dl, 1
mov rax, qword [rsp + 0x460]
movzx ecx, byte [rax + 0xf2]
and cl, 0xfe
or cl, dl
mov rax, qword [rsp + 0x460]
mov byte [rax + 0xf2], cl
lea rcx, [rsp + 0x38]
call fcn.180037ee0
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.180053f80
add rsp, 0x450
pop rdi
ret