Function at 0x4ccf30
Capabilities:
Check os version

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x3c0
mov ebx, 0x1f4
mov rdi, rcx
lea rcx, [rax - 0x334]
lea r8d, [rbx - 4]
xor edx, edx
mov dword [rax - 0x338], ebx
call fcn.006aba40
xor r9d, r9d
lea r8, [rsp + 0xa0]
lea ecx, [r9 + 0x29]
mov edx, ebx
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
xor ebx, ebx
cmp eax, ebx
je 0x4cd12b
lea r8d, [rbx + 0x58]
lea rcx, [rsp + 0x44]
xor edx, edx
mov dword [rsp + 0x40], ebx
call fcn.006aba40
mov rcx, qword [rdi + 0x110]
cmp rcx, rbx
je 0x4ccfb5
lea r8, [rsp + 0x40]
lea edx, [rbx + 0x5c]
call qword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [rsp + 0x180]
cmp dword [rsp + 0x40], eax
jne 0x4cd08d
mov eax, dword [rsp + 0x184]
cmp dword [rsp + 0x44], eax
jne 0x4cd08d
mov eax, dword [rsp + 0x188]
cmp dword [rsp + 0x48], eax
jne 0x4cd08d
mov eax, dword [rsp + 0x18c]
cmp dword [rsp + 0x4c], eax
jne 0x4cd08d
mov eax, dword [rsp + 0x190]
cmp dword [rsp + 0x50], eax
jne 0x4cd08d
mov al, byte [rsp + 0x194]
cmp byte [rsp + 0x54], al
jne 0x4cd08d
mov al, byte [rsp + 0x195]
cmp byte [rsp + 0x55], al
jne 0x4cd08d
mov al, byte [rsp + 0x196]
cmp byte [rsp + 0x56], al
jne 0x4cd08d
mov al, byte [rsp + 0x197]
cmp byte [rsp + 0x57], al
jne 0x4cd08d
mov al, byte [rsp + 0x198]
cmp byte [rsp + 0x58], al
jne 0x4cd08d
mov al, byte [rsp + 0x199]
cmp byte [rsp + 0x59], al
jne 0x4cd08d
mov al, byte [rsp + 0x19a]
cmp byte [rsp + 0x5a], al
jne 0x4cd08d
mov al, byte [rsp + 0x19b]
cmp byte [rsp + 0x5b], al
jne 0x4cd08d
lea rdx, [rsp + 0x19c]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
cmp eax, ebx
je 0x4cd12b
lea rcx, [rsp + 0x180]
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov rsi, rax
cmp rax, rbx
je 0x4cd12b
cmp qword [rdi + 0x110], rbx
je 0x4cd0c8
mov rcx, qword [rdi + 0x110]
call qword [sym.imp.GDI32.dll_DeleteObject]
cmp eax, ebx
je 0x4cd0c8
mov qword [rdi + 0x110], rbx
mov rcx, qword [rdi + 0x110]
cmp rcx, rbx
je 0x4cd0df
cmp rcx, rsi
je 0x4cd0df
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r9d, 1
mov qword [rdi + 0x110], rsi
mov rcx, qword [rdi + 8]
lea edx, [r9 + 0x2f]
mov r8, rsi
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 8]
lea r9, [0x0079b1a8]
xor r8d, r8d
mov edx, 0x44d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 8]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x421
call qword [sym.imp.USER32.dll_SendMessageW]
mov rbp, qword [rdi + 8]
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetWindowDC]
mov rdx, qword [rdi + 0x110]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.GDI32.dll_SelectObject]
lea r9, [rsp + 0x30]
lea rdx, [0x0079b1b0]
or r8d, 0xffffffff
mov rcx, rsi
mov dword [rsp + 0x30], ebx
mov r12, rax
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x20], 0x424
call qword [sym.imp.USER32.dll_DrawTextW]
mov r11d, dword [rsp + 0x38]
sub r11d, dword [rsp + 0x30]
cmp r11d, 4
jge 0x4cd1ce
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_SetRectEmpty]
lea r9, [rsp + 0x30]
lea rdx, [0x0079b1b4]
or r8d, 0xffffffff
mov rcx, rsi
mov dword [rsp + 0x20], 0x424
call qword [sym.imp.USER32.dll_DrawTextW]
mov r11d, dword [rsp + 0x38]
sub r11d, dword [rsp + 0x30]
mov dword [rdi + 0x128], r11d
jmp 0x4cd1d4
mov dword [rdi + 0x128], ebx
mov rdx, r12
mov rcx, rsi
call qword [sym.imp.GDI32.dll_SelectObject]
lea rcx, [rsp + 0x2a4]
xor edx, edx
mov r8d, 0x110
mov dword [rsp + 0x2a0], 0x114
call fcn.006aba40
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov r11d, dword [rsp + 0x2a4]
cmp r11d, 5
jb 0x4cd311
lea r8, [rsp + 0x3e0]
xor r9d, r9d
xor edx, edx
mov ecx, 0x100a
mov dword [rsp + 0x3e0], 1
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, ebx
je 0x4cd252
mov cl, 1
cmp dword [rsp + 0x3e0], ebx
je 0x4cd254
mov cl, bl
mov al, byte [rdi + 0xf1]
and cl, 1
mov r8d, 0x100000
and al, 0xfd
or cl, 4
mov edx, 0x446
add cl, cl
or cl, al
mov al, cl
add al, al
not al
xor al, cl
and al, 4
xor al, cl
mov rcx, qword [rdi + 8]
movzx eax, al
mov byte [rdi + 0xf1], al
shl eax, 0x12
mov r9d, eax
not r9d
and r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 8]
xor edx, edx
lea r8d, [rdx + 1]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov r11d, dword [rsp + 0x2a4]
cmp r11d, 5
jne 0x4cd2d1
cmp dword [rsp + 0x2a8], 1
jae 0x4cd2d3
cmp r11d, r11d
jbe 0x4cd311
lea r8, [rsp + 0x3e0]
xor r9d, r9d
xor edx, edx
mov ecx, 0x1022
mov dword [rsp + 0x3e0], ebx
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, ebx
je 0x4cd301
cmp dword [rsp + 0x3e0], ebx
je 0x4cd301
mov bl, 1
and byte [rdi + 0xf1], 0xfe
and bl, 1
or byte [rdi + 0xf1], bl
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.USER32.dll_ReleaseDC]
lea r11, [rsp + 0x3c0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret