Function at 0x5814b0
Capabilities:
Check os version

Disassembly:
push ecx
push esi
mov esi, ecx
cmp dword [esi + 0x7c], 0
je 0x581848
cmp dword [esi + 0x90], 0
je 0x581848
push ebx
push edi
mov byte [esi + 0xc4], 0
mov byte [esi + 0xc5], 0
call fcn.0051909a
cmp byte [0x6c7f77], 0
mov bl, al
jne 0x5814f4
cmp byte [0x6c7f82], 0
je 0x58151d
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0xff
cmp eax, 5
jl 0x58151d
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
setne al
test al, al
mov byte [esp + 0xf], 1
jne 0x581522
mov byte [esp + 0xf], 0
cmp byte [0x6c7f77], 0
je 0x58153f
cmp byte [0x6c7f82], 0
je 0x58153f
cmp byte [esp + 0xf], 0
jne 0x58176c
cmp dword [esi + 0xe0], 0
jne 0x581559
cmp byte [esi + 0xb4], 0
je 0x581559
test bl, bl
je 0x58176c
cmp byte [0x6b0edc], 0
je 0x58176c
cmp byte [esi + 0xe5], 0
jne 0x5815ec
cmp byte [0x6c7f78], 0
je 0x5815a9
cmp byte [0x6c7f82], 0
jne 0x581588
cmp byte [esp + 0xf], 0
jne 0x5815a9
call fcn.005840c0
mov ecx, esi
mov dword [esi + 0xc0], eax
call fcn.00581190
test al, al
jne 0x5817d3
mov ecx, esi
call fcn.00581100
cmp byte [esi + 0xe5], 0
jne 0x5815ec
cmp byte [0x6c7f76], 0
je 0x5815ec
cmp byte [0x6c7f82], 0
jne 0x5815cb
cmp byte [esp + 0xf], 0
jne 0x5815ec
call fcn.005f2fd0
mov ecx, esi
mov dword [esi + 0xc0], eax
call fcn.00581190
test al, al
jne 0x5817d3
mov ecx, esi
call fcn.00581100
mov al, byte [0x6c7f7c]
test al, al
jne 0x581618
cmp byte [0x6c7f74], al
jne 0x581618
mov ecx, esi
call fcn.00580860
mov ecx, esi
call fcn.00580a60
test al, al
jne 0x58176c
mov al, byte [0x6c7f7c]
cmp byte [esi + 0xe5], 0
jne 0x5816fe
cmp byte [0x6c7f75], 0
je 0x5816fe
cmp byte [0x6c7f82], 0
jne 0x581646
cmp byte [esp + 0xf], 0
jne 0x5816fe
cmp byte [0x6c7f7e], 0
je 0x581679
test al, al
je 0x581669
cmp byte [0x6c7f74], 0
jne 0x581669
xor al, al
push eax
call fcn.005e04a0
add esp, 4
jmp 0x5816a0
mov eax, 1
push eax
call fcn.005e04a0
add esp, 4
jmp 0x5816a0
test al, al
je 0x58168a
cmp byte [0x6c7f74], 0
jne 0x58168a
xor al, al
jmp 0x58168f
mov eax, 1
movzx ecx, byte [0x6c7f7a]
push ecx
push eax
call fcn.005edfa0
add esp, 8
mov ecx, esi
mov dword [esi + 0xc0], eax
call fcn.00581190
test al, al
je 0x5816f0
cmp byte [0x6c7f7c], 0
sete dl
mov byte [esi + 0xc4], dl
cmp byte [0x6c7f7c], 0
jne 0x5816e0
cmp byte [0x6c7f74], 0
jne 0x5816e0
xor eax, eax
mov byte [esi + 0xc5], al
jmp 0x5817d3
mov eax, 1
mov byte [esi + 0xc5], al
jmp 0x5817d3
mov ecx, esi
call fcn.00581100
movzx eax, byte [0x6c7f7c]
cmp byte [0x6b0ede], 0
je 0x58176c
cmp byte [0x6c7f77], 0
jne 0x581717
cmp byte [esp + 0xf], 0
jne 0x58176c
push eax
movzx eax, byte [0x6b0edd]
push eax
call fcn.005e8350
add esp, 8
mov ecx, esi
mov dword [esi + 0xc0], eax
call fcn.00581190
test al, al
je 0x581765
cmp byte [0x6c7f7c], 0
sete cl
mov byte [esi + 0xc4], cl
cmp byte [0x6c7f7c], 0
jne 0x5816e0
cmp byte [0x6c7f74], 0
jne 0x5816e0
xor eax, eax
mov byte [esi + 0xc5], al
jmp 0x5817d3
mov ecx, esi
call fcn.00581100
call fcn.005e50f0
mov ecx, esi
mov dword [esi + 0xc0], eax
call fcn.00581190
test al, al
jne 0x5817d3
mov edi, dword [esi + 0xc0]
test edi, edi
je 0x5817d3
mov dword [esi + 0xc0], 0
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5817be
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [esi + 0x20], 0
lea edi, [esi + 8]
push 0
mov ecx, edi
call fcn.005831e0
push 0
mov ecx, edi
call fcn.00582c50
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x581836
mov edi, dword [eax]
lea ecx, [esi + 8]
call fcn.005828f0
mov ecx, dword [esi + 0xc0]
mov edx, dword [edi + 0x54]
push eax
call edx
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x581808
push eax
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
cmp byte [esp + 0x14], 0
je 0x581836
cmp byte [esp + 0x18], 0
mov ecx, esi
je 0x581831
push 3
call fcn.00580620
xor eax, eax
cmp dword [esi + 0xc0], eax
pop edi
pop ebx
setne al
pop esi
pop ecx
ret 8
call fcn.00581e90
xor eax, eax
cmp dword [esi + 0xc0], eax
pop edi
pop ebx
setne al
pop esi
pop ecx
ret 8
mov al, 1
pop esi
pop ecx
ret 8