Function at 0x100029c70
Capabilities:
Check os version

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x510
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov rax, qword [0x1000a1108]
xor rax, rsp
mov qword [rsp + 0x500], rax
mov rbx, rcx
mov esi, 0x1f8
mov edi, esi
mov dword [rsp + 0x2c0], VarUI4FromDisp
xor edx, edx
mov r8d, VarUI4FromDisp
lea rcx, [r11 - 0x274]
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x2c0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
lea r8d, [rsi - 4]
xor r13d, r13d
cmp eax, r13d
je 0x100029cf2
cmp dword [rsp + 0x2c4], 6
jae 0x100029cf5
mov edi, r8d
mov dword [rsp + 0xc0], edi
xor edx, edx
lea rcx, [rsp + 0xc4]
call sub.msvcrt.dll_memset
xor r9d, r9d
lea r8, [rsp + 0xc0]
mov edx, esi
lea ecx, [r9 + 0x29]
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
mov r14d, 1
cmp eax, r13d
je 0x100029ed7
mov dword [rsp + 0x60], r13d
xor edx, edx
lea r8d, [r14 + 0x57]
lea rcx, [rsp + 0x64]
call sub.msvcrt.dll_memset
mov rcx, qword [rbx + 0x110]
cmp rcx, r13
je 0x100029d61
lea r8, [rsp + 0x60]
lea edx, [r14 + 0x5b]
call qword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [rsp + 0x1a0]
cmp dword [rsp + 0x60], eax
jne 0x100029e3a
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
cmp dword [rsp + 0x64], eax
jne 0x100029e3a
mov eax, dword [rsp + 0x1a8]
cmp dword [rsp + 0x68], eax
jne 0x100029e3a
mov eax, dword [rsp + 0x1ac]
cmp dword [rsp + 0x6c], eax
jne 0x100029e3a
mov eax, dword [rsp + 0x1b0]
cmp dword [rsp + 0x70], eax
jne 0x100029e3a
mov al, byte [rsp + 0x1b4]
cmp byte [rsp + 0x74], al
jne 0x100029e3a
mov al, byte [rsp + 0x1b5]
cmp byte [rsp + 0x75], al
jne 0x100029e3a
mov al, byte [rsp + 0x1b6]
cmp byte [rsp + 0x76], al
jne 0x100029e3a
mov al, byte [rsp + 0x1b7]
cmp byte [rsp + 0x77], al
jne 0x100029e3a
mov al, byte [rsp + 0x1b8]
cmp byte [rsp + 0x78], al
jne 0x100029e3a
mov al, byte [rsp + 0x1b9]
cmp byte [rsp + 0x79], al
jne 0x100029e3a
mov al, byte [rsp + 0x1ba]
cmp byte [rsp + 0x7a], al
jne 0x100029e3a
mov al, byte [rsp + 0x1bb]
cmp byte [rsp + 0x7b], al
jne 0x100029e3a
lea rdx, [rsp + 0x1bc]
lea rcx, [rsp + 0x7c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
cmp eax, r13d
je 0x100029ed7
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov rdi, rax
cmp rax, r13
je 0x100029ed7
cmp qword [rbx + 0x110], r13
je 0x100029e76
mov rcx, qword [rbx + 0x110]
call qword [sym.imp.GDI32.dll_DeleteObject]
cmp eax, r13d
je 0x100029e76
mov qword [rbx + 0x110], r13
mov rcx, qword [rbx + 0x110]
cmp rcx, r13
je 0x100029e8d
cmp rcx, rdi
je 0x100029e8d
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rbx + 0x110], rdi
mov r9, r14
mov r8, rdi
mov edx, 0x30
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
lea r9, [0x100003fc8]
xor r8d, r8d
mov edx, 0x44d
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x421
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r12, qword [rbx + 8]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], r12
mov rcx, r12
call qword [sym.imp.USER32.dll_GetWindowDC]
mov rbp, rax
mov qword [rsp + 0x48], rax
mov rdx, qword [rbx + 0x110]
mov rcx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdi, rax
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x3c], r13d
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], r13d
mov esi, 0x424
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x38]
or r8d, 0xffffffff
lea rdx, [0x100003fd0]
mov rcx, rbp
call qword [sym.imp.USER32.dll_DrawTextW]
mov r11d, dword [rsp + 0x40]
sub r11d, dword [rsp + 0x38]
cmp r11d, 4
jge 0x100029f8a
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x38]
or r8d, 0xffffffff
lea rdx, [0x100003fd4]
mov rcx, rbp
call qword [sym.imp.USER32.dll_DrawTextW]
mov r11d, dword [rsp + 0x40]
sub r11d, dword [rsp + 0x38]
mov dword [rbx + 0x128], r11d
jmp 0x100029f91
mov dword [rbx + 0x128], r13d
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.GDI32.dll_SelectObject]
mov edi, VarUI4FromDisp
mov dword [rsp + 0x3e0], edi
lea esi, [rdi - 4]
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x3e4]
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov r11d, dword [rsp + 0x3e4]
cmp r11d, 5
jb 0x10002a083
mov dword [rsp + 0x30], r14d
xor r9d, r9d
lea r8, [rsp + 0x30]
xor edx, edx
mov ecx, 0x100a
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, r13d
je 0x10002a009
cmp dword [rsp + 0x30], r13d
jne 0x10002a009
mov al, r14b
jmp 0x10002a00c
mov al, r13b
and byte [rbx + 0xf1], 0xfd
and al, r14b
or al, 4
add al, al
or byte [rbx + 0xf1], al
mov al, byte [rbx + 0xf1]
mov cl, al
shr cl, 1
not cl
and cl, r14b
shl cl, 2
xor cl, al
and cl, 4
xor cl, al
movzx eax, cl
mov byte [rbx + 0xf1], al
shl eax, 0x12
not eax
mov r8d, 0x100000
and eax, r8d
mov r9d, eax
mov edx, 0x446
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8d, r14d
xor edx, edx
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov r11d, dword [rsp + 0x3e4]
cmp r11d, 5
jne 0x10002a093
cmp dword [rsp + 0x3e8], r14d
jae 0x10002a099
cmp r11d, 5
jbe 0x10002a0d7
mov dword [rsp + 0x30], r13d
xor r9d, r9d
lea r8, [rsp + 0x30]
xor edx, edx
mov ecx, 0x1022
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, r13d
je 0x10002a0c4
cmp dword [rsp + 0x30], r13d
je 0x10002a0c4
mov al, r14b
jmp 0x10002a0c7
mov al, r13b
and byte [rbx + 0xf1], 0xfe
and al, r14b
or byte [rbx + 0xf1], al
mov dword [rsp + 0x2c0], edi
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x2c4]
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x2c0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, r13d
je 0x10002a198
cmp dword [rsp + 0x2c4], 6
jb 0x10002a198
call fcn.10002d7e8
cmp al, r13b
je 0x10002a198
test byte [rbx + 0x98], 0x10
jne 0x10002a198
mov dil, r14b
lea rcx, [0x100003fb0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
cmp rax, r13
je 0x10002a1bb
lea rdx, [0x100003fd8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp rax, r13
je 0x10002a15c
call rax
cmp eax, r13d
jne 0x10002a15f
mov dil, r13b
lea rdx, [0x100003fe8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dil, r13b
je 0x10002a185
cmp rax, r13
je 0x10002a185
call rax
cmp eax, r13d
je 0x10002a185
mov dil, r14b
jmp 0x10002a188
mov dil, r13b
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dil, r13b
jne 0x10002a1bb
jmp 0x10002a19b
mov dil, r13b
test byte [rbx + 0xf2], r14b
je 0x10002a1bb
cmp qword [rbx + 0x78], r13
je 0x10002a1bb
cmp dword [rbx + 0x90], r13d
jle 0x10002a1bb
mov rcx, rbx
call fcn.100029bb0
and byte [rbx + 0xf2], 0xfe
and dil, r14b
or byte [rbx + 0xf2], dil
mov qword [rsp + 0x48], r13
mov rdx, rbp
mov rcx, r12
call qword [sym.imp.USER32.dll_ReleaseDC]
nop
mov rcx, qword [rsp + 0x500]
xor rcx, rsp
call fcn.10007a3b0
lea r11, [rsp + 0x510]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret