Function at 0x4316a0
Capabilities:
Check os version

Disassembly:
sub esp, 0x584
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, 0x7c
xor eax, eax
lea edi, [esp + 0x9c]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [esp + 0x98]
push ebx
push eax
push 0x1f4
push 0x29
mov dword [esp + 0xa8], 0x1f4
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x431868
mov ecx, 0x16
xor eax, eax
lea edi, [esp + 0x40]
lea ebp, [esi + 0xa0]
mov dword [esp + 0x3c], ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp]
cmp eax, ebx
je 0x431713
lea ecx, [esp + 0x3c]
push ecx
push 0x5c
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x178]
cmp edx, eax
jne 0x431805
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x17c]
cmp eax, ecx
jne 0x431805
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x180]
cmp ecx, eax
jne 0x431805
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x184]
cmp edx, eax
jne 0x431805
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x188]
cmp eax, ecx
jne 0x431805
mov cl, byte [esp + 0x50]
mov al, byte [esp + 0x18c]
cmp cl, al
jne 0x431805
mov dl, byte [esp + 0x51]
mov al, byte [esp + 0x18d]
cmp dl, al
jne 0x431805
mov al, byte [esp + 0x52]
mov cl, byte [esp + 0x18e]
cmp al, cl
jne 0x431805
mov cl, byte [esp + 0x53]
mov al, byte [esp + 0x18f]
cmp cl, al
jne 0x431805
mov dl, byte [esp + 0x54]
mov al, byte [esp + 0x190]
cmp dl, al
jne 0x431805
mov al, byte [esp + 0x55]
mov cl, byte [esp + 0x191]
cmp al, cl
jne 0x431805
mov cl, byte [esp + 0x56]
mov al, byte [esp + 0x192]
cmp cl, al
jne 0x431805
mov dl, byte [esp + 0x57]
mov al, byte [esp + 0x193]
cmp dl, al
jne 0x431805
lea eax, [esp + 0x194]
lea ecx, [esp + 0x58]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x431868
lea edx, [esp + 0x178]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov edi, eax
cmp edi, ebx
je 0x431868
mov eax, dword [ebp]
cmp eax, ebx
je 0x43182e
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x43182e
mov dword [ebp], ebx
push edi
mov ecx, ebp
call fcn.0042e390
mov ecx, dword [ebp]
lea edi, [esi + 4]
push 1
push ecx
mov ecx, edi
call fcn.00419e10
mov edx, dword [edi]
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push 0x4dacbc
push ebx
push 0x44d
push edx
call ebp
mov eax, dword [edi]
push ebx
push ebx
push 0x421
push eax
call ebp
mov ecx, dword [esi + 4]
push ecx
lea ecx, [esp + 0x18]
call fcn.00428b10
mov eax, dword [esi + 0xa0]
mov edx, dword [esp + 0x14]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push edx
call edi
mov ebp, eax
lea eax, [esp + 0x1c]
push 0x424
push eax
push 0xffffffffffffffff
push 0x4da084
lea ecx, [esp + 0x24]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.0049fda0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
sub ecx, edx
cmp ecx, 4
jge 0x4318fb
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_SetRectEmpty]
lea eax, [esp + 0x1c]
push 0x424
push eax
push 0xffffffffffffffff
push 0x4dadf8
lea ecx, [esp + 0x24]
call fcn.0049fda0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov dword [esi + 0xac], ecx
jmp 0x431901
mov dword [esi + 0xac], ebx
mov edx, dword [esp + 0x14]
push ebp
push edx
call edi
mov ecx, 0x44
xor eax, eax
lea edi, [esp + 0x290]
mov dword [esp + 0x28c], 0x114
rep stosd dword es:[edi], eax
lea eax, [esp + 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [esp + 0x290]
cmp eax, 5
jb 0x4319ec
lea ecx, [esp + 0x10]
push ebx
push ecx
push ebx
push 0x100a
mov dword [esp + 0x20], 1
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x43196d
cmp dword [esp + 0x10], ebx
jne 0x43196d
mov eax, 1
jmp 0x43196f
xor eax, eax
mov dl, byte [esi + 0x81]
and al, 1
or al, 4
and dl, 0xfd
shl al, 1
or al, dl
mov ecx, esi
mov byte [esi + 0x81], al
not al
shr al, 1
and al, 1
push eax
call fcn.004313d0
mov eax, dword [esp + 0x290]
cmp eax, 5
jne 0x4319ac
cmp dword [esp + 0x294], 1
jae 0x4319ae
jmp 0x4319ec
jbe 0x4319ec
lea eax, [esp + 0x10]
push ebx
push eax
push ebx
push 0x1022
mov dword [esp + 0x20], ebx
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x4319d5
cmp dword [esp + 0x10], ebx
je 0x4319d5
mov ecx, 1
jmp 0x4319d7
xor ecx, ecx
mov al, byte [esi + 0x81]
mov dl, al
xor dl, cl
and dl, 1
xor dl, al
mov byte [esi + 0x81], dl
lea ecx, [esp + 0x14]
call fcn.00428b30
mov ecx, 0x7c
xor eax, eax
lea edi, [esp + 0x3a4]
mov dword [esp + 0x3a0], 0x1f4
rep stosd dword es:[edi], eax
lea eax, [esp + 0x3a0]
push ebx
push eax
push 0x1f4
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x431abb
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x31
call edi
push 0x32
mov dword [esi + 0xf0], eax
call edi
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xf4], eax
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x100], ecx
cmp eax, ebx
je 0x431a89
mov eax, dword [esi + 0xec]
mov ecx, dword [esp + 0x3b0]
mov edx, dword [esp + 0x3b4]
shl eax, 1
sub ecx, eax
sub edx, eax
mov dword [esi + 0xf8], ecx
mov dword [esi + 0xfc], edx
lea eax, [ecx + ecx*2]
jmp 0x431ab5
mov ecx, dword [esi + 0xec]
mov eax, dword [esp + 0x3b0]
mov edi, dword [esp + 0x3b4]
sub eax, ecx
lea edx, [ecx + ecx]
mov dword [esi + 0xf8], eax
sub edi, edx
lea ecx, [ecx + eax*2]
mov dword [esi + 0xfc], edi
add eax, ecx
mov dword [esi + 0x104], eax
mov ecx, dword [esi + 4]
xor edx, edx
mov dword [esp + 0x30], edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x34], edx
push eax
push ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x38]
cmp eax, 1
jle 0x431b36
cmp dword [esi + 0xfc], eax
jle 0x431b36
mov ecx, dword [esi + 0x10c]
mov dword [esi + 0xfc], eax
cmp ecx, ebx
je 0x431b1d
lea edx, [eax + eax*2]
mov dword [esi + 0xf8], eax
mov dword [esi + 0x104], edx
mov dword [esi + 0x104], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x584
ret
mov ecx, dword [esi + 0xec]
add eax, ecx
mov dword [esi + 0xf8], eax
lea ecx, [ecx + eax*2]
add eax, ecx
mov dword [esi + 0x104], eax
mov dword [esi + 0x104], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x584
ret