Function at 0x811f4
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff38
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x81bdf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x149c70]
mov eax, dword [eax]
mov edx, 0x81bf8
call fcn.00065094
xor edx, edx
push ebp
push 0x81ba2
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x81b67
push dword fs:[edx]
mov dword fs:[edx], esp
mov ecx, 0x20019
mov dl, 1
mov eax, dword [0x669ec]
call fcn.00066b30
mov esi, eax
mov edx, 0x80000002
mov eax, esi
call fcn.00066bc8
xor ecx, ecx
mov edx, 0x81c24
mov eax, esi
call fcn.00066c2c
test al, al
je 0x812a1
lea ecx, [ebp - 0x10]
mov edx, 0x81c5c
mov eax, esi
call fcn.000670f8
xor ecx, ecx
mov edx, 0x81c78
mov eax, esi
call fcn.00066c2c
test al, al
je 0x812c2
lea ecx, [ebp - 0x14]
mov edx, 0x81cb4
mov eax, esi
call fcn.000670f8
mov eax, dword [ebp - 0x10]
mov edx, 0x81cc8
call fcn.00014174
jne 0x81335
lea edx, [ebp - 0xbc]
mov eax, dword [ebp - 0x14]
call fcn.0001a4b4
mov eax, dword [ebp - 0xbc]
mov edx, 0x81cd8
call fcn.00014174
je 0x81311
lea edx, [ebp - 0xc0]
mov eax, dword [ebp - 0x14]
call fcn.0001a4b4
mov eax, dword [ebp - 0xc0]
mov edx, 0x81cec
call fcn.00014174
jne 0x81323
lea eax, [ebp - 0xc]
mov edx, 0x81d00
call fcn.00013e7c
jmp 0x81b40
lea eax, [ebp - 0xc]
mov edx, 0x81d1c
call fcn.00013e7c
jmp 0x81b40
call fcn.00086da4
mov ebx, eax
lea eax, [ebp - 0xb8]
xor ecx, ecx
mov edx, 0x9c
call fcn.00012cd0
mov dword [ebp - 0xb8], 0x9c
lea eax, [ebp - 0xb8]
push eax
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x81b40
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
movzx edi, byte [ebp - 0x1e]
movzx edx, word [ebp - 0x20]
mov dword [ebp - 8], edx
mov edx, dword [ebp - 0xa8]
sub edx, 2
jne 0x81b33
cmp eax, 4
jg 0x813fb
lea edx, [ebp - 0xc4]
mov eax, dword [ebp - 0x14]
call fcn.0001a4b4
mov eax, dword [ebp - 0xc4]
mov edx, 0x81cd8
call fcn.00014174
je 0x813d7
lea edx, [ebp - 0xc8]
mov eax, dword [ebp - 0x14]
call fcn.0001a4b4
mov eax, dword [ebp - 0xc8]
mov edx, 0x81cec
call fcn.00014174
jne 0x813e9
lea eax, [ebp - 0xc]
mov edx, 0x81d00
call fcn.00013e7c
jmp 0x81b40
lea eax, [ebp - 0xc]
mov edx, 0x81d1c
call fcn.00013e7c
jmp 0x81b40
cmp eax, 5
jne 0x8145b
test esi, esi
jne 0x8145b
dec edi
jne 0x81419
lea eax, [ebp - 0xc]
mov edx, 0x81d3c
call fcn.00013e7c
jmp 0x81b40
test byte [ebp - 8], 0x80
je 0x81431
lea eax, [ebp - 0xc]
mov edx, 0x81d60
call fcn.00013e7c
jmp 0x81b40
test byte [ebp - 8], 2
je 0x81449
lea eax, [ebp - 0xc]
mov edx, 0x81d88
call fcn.00013e7c
jmp 0x81b40
lea eax, [ebp - 0xc]
mov edx, 0x81db0
call fcn.00013e7c
jmp 0x81b40
cmp eax, 5
jne 0x8148f
cmp esi, 1
jne 0x8148f
test byte [ebp - 7], 2
je 0x8147d
lea eax, [ebp - 0xc]
mov edx, 0x81dcc
call fcn.00013e7c
jmp 0x81b40
lea eax, [ebp - 0xc]
mov edx, 0x81dec
call fcn.00013e7c
jmp 0x81b40
cmp eax, 5
jne 0x8156d
cmp esi, 2
jne 0x8156d
cmp edi, 1
jne 0x814b9
test bl, bl
je 0x814b9
lea eax, [ebp - 0xc]
mov edx, 0x81e0c
call fcn.00013e7c
jmp 0x814f4
test byte [ebp - 7], 0x80
je 0x814ce
lea eax, [ebp - 0xc]
mov edx, 0x81e34
call fcn.00013e7c
jmp 0x814f4
push 0x59
call sub.user32.dll_GetSystemMetrics
dec eax
jne 0x814e7
lea eax, [ebp - 0xc]
mov edx, 0x81e50
call fcn.00013e7c
jmp 0x814f4
lea eax, [ebp - 0xc]
mov edx, 0x81e70
call fcn.00013e7c
dec edi
je 0x81b40
test byte [ebp - 7], 0x40
je 0x81513
lea eax, [ebp - 0xc]
mov edx, 0x81e8c
call fcn.0001406c
jmp 0x81b40
test byte [ebp - 8], 0x80
je 0x8152b
lea eax, [ebp - 0xc]
mov edx, 0x81eb0
call fcn.0001406c
jmp 0x81b40
test byte [ebp - 8], 2
je 0x81543
lea eax, [ebp - 0xc]
mov edx, 0x81ecc
call fcn.0001406c
jmp 0x81b40
test byte [ebp - 7], 4
je 0x8155b
lea eax, [ebp - 0xc]
mov edx, 0x81ee8
call fcn.0001406c
jmp 0x81b40
lea eax, [ebp - 0xc]
mov edx, 0x81f00
call fcn.0001406c
jmp 0x81b40
cmp eax, 6
jne 0x81b24
test esi, esi
jne 0x815a1
dec edi
jne 0x8158f
lea eax, [ebp - 0xc]
mov edx, 0x81f1c
call fcn.00013e7c
jmp 0x81664
lea eax, [ebp - 0xc]
mov edx, 0x81f34
call fcn.00013e7c
jmp 0x81664
cmp esi, 1
jne 0x815cd
dec edi
jne 0x815bb
lea eax, [ebp - 0xc]
mov edx, 0x81f54
call fcn.00013e7c
jmp 0x81664
lea eax, [ebp - 0xc]
mov edx, 0x81f68
call fcn.00013e7c
jmp 0x81664
call fcn.00080018
test al, al
je 0x81631
mov eax, 0x81f88
call fcn.000806d0
test al, al
je 0x815f3
lea eax, [ebp - 0xc]
mov edx, 0x81f9c
call fcn.00013e7c
jmp 0x81664
mov eax, 0x81fb0
call fcn.000806d0
test al, al
je 0x81610
lea eax, [ebp - 0xc]
mov edx, 0x81fcc
call fcn.00013e7c
jmp 0x81664
dec edi
jne 0x81622
lea eax, [ebp - 0xc]
mov edx, 0x81fec
call fcn.00013e7c
jmp 0x81664
lea eax, [ebp - 0xc]
mov edx, 0x82004
call fcn.00013e7c
jmp 0x81664
cmp esi, 2
jne 0x81657
dec edi
jne 0x81648
lea eax, [ebp - 0xc]
mov edx, 0x82024
call fcn.00013e7c
jmp 0x81664
lea eax, [ebp - 0xc]
mov edx, 0x82038
call fcn.00013e7c
jmp 0x81664
lea eax, [ebp - 0xc]
mov edx, 0x82058
call fcn.00013e7c
cmp dword [ebp - 0xc], 0
je 0x81b40
push 0x82060
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x81b40
push 0x82070
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov esi, eax
test esi, esi
je case.0x816cf.19
lea eax, [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0xb4]
push eax
call esi
test eax, eax
je case.0x816cf.19
mov eax, dword [ebp - 0x1c]
cmp eax, 0x45
ja case.0x816cf.19
jmp dword [eax*4 + 0x816d6]
lea eax, [ebp - 0xc]
mov edx, 0x82088
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x820a4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x820c0
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x820e0
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82100
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82110
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8212c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8214c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82168
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82188
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x821a4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x821c0
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x821d8
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x821f4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8220c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82228
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82244
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8225c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8227c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82298
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x822d8
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82308
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8214c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82348
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82388
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x823b8
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x823f8
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82430
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82450
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82480
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x824a4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x824e4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82500
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82538
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82568
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x825a0
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x825bc
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x825e4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82614
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82640
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82674
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x82688
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x8269c
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x826b4
call fcn.0001406c
jmp case.0x816cf.19
lea eax, [ebp - 0xc]
mov edx, 0x826cc
call fcn.0001406c
mov edx, dword [ebp - 0xc]
mov eax, 0x826e4
call fcn.00014350
test eax, eax
jle 0x81b40
call fcn.00080188
test al, al
je 0x81b40
lea eax, [ebp - 0xc]
mov edx, 0x82700
call fcn.0001406c
jmp 0x81b40
mov eax, dword [ebp - 4]
mov edx, 0x82058
call fcn.00013e38
jmp 0x81b40
mov eax, dword [ebp - 4]
mov edx, 0x82058
call fcn.00013e38
test bl, bl
je 0x81b51
lea eax, [ebp - 0xc]
mov edx, 0x82720
call fcn.0001406c
mov eax, dword [0x149c70]
mov eax, dword [eax]
call fcn.000650e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x81b8b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x81ba9
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_FreeLibrary_1
ret