Function at 0x475a60
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6dc1d8
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
mov eax, dword [0x7ce4e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x7d1271], 0
je 0x475d1e
push 0x110
lea eax, [ebp - 0x1e8]
push 0
push eax
call fcn.005c0be0
add esp, 0xc
mov dword [ebp - 0x1ec], 0x114
lea eax, [ebp - 0x1ec]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x475d17
cmp dword [ebp - 0x1e8], 5
jbe 0x475d17
xor eax, eax
mov dword [ebp - 0xd8], vtable.t_cuObject.0
mov dword [ebp - 0xd4], 0xffffffff
mov dword [ebp - 0xd0], 1
mov dword [ebp - 0xd8], vtable.t_cuFont.0
mov word [ebp - 0xcc], ax
mov dword [ebp - 0x8c], eax
mov word [ebp - 0x88], ax
mov byte [ebp - 0x86], al
mov dword [ebp - 0x84], eax
mov word [ebp - 0x80], 1
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
sub esp, 0xc
mov dword [ebp - 4], eax
lea ecx, [ebp - 0xd8]
push eax
push 0xc
push 0x7850b4
call fcn.004c9a40
cmp byte [ebp - 0x80], 0
jne 0x475c7e
cmp byte [0x7d1270], 0
mov edi, 1
je 0x475c60
xor eax, eax
mov dword [ebp - 0x74], vtable.t_cuObject.0
mov dword [ebp - 0x70], 0xffffffff
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x74], vtable.t_cuFont.0
mov word [ebp - 0x68], ax
mov dword [ebp - 0x28], eax
mov word [ebp - 0x24], ax
mov byte [ebp - 0x22], al
mov dword [ebp - 0x20], eax
mov word [ebp - 0x1c], di
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
sub esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x74]
push edi
push 0xc
push 0x7850c0
call fcn.004c9a40
movzx eax, byte [0x7f8e18]
cmp byte [ebp - 0x1c], 0
mov byte [0x7d1270], 0
cmove eax, edi
mov byte [0x7f8e18], al
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x74], vtable.t_cuFont.0
test eax, eax
je 0x475bec
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [0x7f8e80]
test eax, eax
je 0x475c57
test ecx, ecx
jne 0x475c37
push 0x14
call fcn.005be217
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1f0], ecx
mov dword [0x7f8e80], ecx
mov byte [ecx + 0x10], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [ebp - 0x18]
cmp byte [ecx + 0x10], 0
je 0x475c57
mov edx, dword [ecx + 0xc]
test edx, edx
je 0x475c50
push eax
call edx
mov ecx, dword [0x7f8e80]
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x74], vtable.t_cuObject.0
jmp 0x475c66
mov ecx, dword [0x7f8e80]
movzx eax, byte [0x7f8e19]
cmp byte [0x7f8e18], 0
cmovne eax, edi
mov byte [0x7f8e19], al
jmp 0x475c84
mov ecx, dword [0x7f8e80]
mov byte [0x7d1271], 0
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xd8], vtable.t_cuFont.0
test eax, eax
je 0x475cbd
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [0x7f8e80]
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x475d1e
test ecx, ecx
jne 0x475d02
push 0x14
call fcn.005be217
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1f0], ecx
mov dword [0x7f8e80], ecx
mov byte [ecx + 0x10], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [ebp - 0x7c]
cmp byte [ecx + 0x10], 0
je 0x475d1e
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x475d1e
push eax
call ecx
add esp, 4
jmp 0x475d1e
mov byte [0x7d1271], 0
mov al, byte [0x7f8e19]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005be209
mov esp, ebp
pop ebp
ret