Function at 0x418e30
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x521e28]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov word [eax + 0x110], 0
mov ecx, dword [ebp + 8]
mov word [ecx + 0x224], 0
push 0x4ef100
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x418e76
xor eax, eax
jmp 0x41927f
push 0x4ef11c
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x41915b
push 0x114
push 0
lea eax, [ebp - 0x128]
push eax
call fcn.004ad2c0
add esp, 0xc
mov dword [ebp - 0x128], 0x114
lea ecx, [ebp - 0x128]
push ecx
call dword [ebp - 8]
test eax, eax
jne 0x418ec7
xor eax, eax
jmp 0x41927f
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x124]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x120]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x11c]
and eax, 0xffff
movzx ecx, ax
mov edx, dword [ebp + 8]
mov dword [edx + 8], ecx
lea eax, [ebp - 0x114]
push eax
push 0x80
mov ecx, dword [ebp + 8]
add ecx, 0x10
push ecx
call fcn.00405230
cmp dword [ebp - 0x118], 0
jne 0x418f22
mov edx, dword [ebp + 8]
mov dword [edx + 0xc], 0
jmp 0x419015
cmp dword [ebp - 0x118], 1
jne 0x418fb7
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.00419460
add esp, 4
test eax, eax
je 0x418f63
mov edx, dword [ebp + 8]
mov word [edx + 0x110], 1
mov eax, dword [ebp + 8]
mov word [eax + 0x224], 1
jmp 0x418fb5
mov ecx, dword [ebp + 8]
push ecx
call fcn.004194c0
add esp, 4
test eax, eax
je 0x418f8d
mov edx, dword [ebp + 8]
mov word [edx + 0x110], 2
mov eax, dword [ebp + 8]
mov word [eax + 0x224], 2
jmp 0x418fb5
mov ecx, dword [ebp + 8]
push ecx
call fcn.00419560
add esp, 4
test eax, eax
je 0x418fb5
mov edx, dword [ebp + 8]
mov word [edx + 0x110], 1
mov eax, dword [ebp + 8]
mov word [eax + 0x224], 1
jmp 0x419015
cmp dword [ebp - 0x118], 2
jne 0x418ff9
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], 2
lea edx, [ebp - 0x114]
push edx
call fcn.00419820
add esp, 4
mov ecx, dword [ebp + 8]
mov word [ecx + 0x110], ax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x110]
mov word [edx + 0x224], cx
jmp 0x419015
cmp dword [ebp - 0x118], 3
jne 0x41900e
mov edx, dword [ebp + 8]
mov dword [edx + 0xc], 9
jmp 0x419015
xor eax, eax
jmp 0x41927f
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0
jne 0x419070
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x114], 3
mov edx, dword [ebp + 8]
mov dword [edx + 0x118], 0xa
mov eax, dword [ebp + 8]
mov dword [eax + 0x11c], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x120], 3
push str.Microsoft_Windows
push 0x80
mov edx, dword [ebp + 8]
add edx, 0x124
push edx
call fcn.00405230
jmp 0x419156
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [eax + 0x114], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [eax + 0x118], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov dword [eax + 0x11c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x120], edx
mov eax, dword [ebp + 8]
add eax, 0x10
push eax
push 0x80
mov ecx, dword [ebp + 8]
add ecx, 0x124
push ecx
call fcn.00405230
cmp dword [ebp - 0x118], 2
jne 0x419156
call fcn.00419970
test eax, eax
je 0x4190fc
mov edx, dword [ebp + 8]
cmp dword [edx], 6
je 0x4190fa
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
je 0x4190fa
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x120], 0xa
jmp 0x419156
call fcn.004199b0
test eax, eax
je 0x41911e
mov edx, dword [ebp + 8]
mov dword [edx + 0x120], 0xb
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 0xb
jmp 0x419156
mov dword [ebp - 0x12c], 0
lea ecx, [ebp - 0x12c]
push ecx
call fcn.00419290
add esp, 4
test eax, eax
je 0x419156
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x12c]
mov dword [edx + 0x120], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x12c]
mov dword [ecx + 0xc], edx
jmp 0x41927a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
and eax, 0xffff
movzx ecx, ax
and ecx, 0xff
movzx edx, cl
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov ecx, dword [ebp - 0x130]
and ecx, 0xffff
movzx edx, cx
shr edx, 8
and edx, 0xff
movzx eax, dl
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 2
push str.Microsoft_Windows_NT
push 0x80
mov ecx, dword [ebp + 8]
add ecx, 0x10
push ecx
call fcn.00405230
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [edx + 0x114], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [edx + 0x118], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov dword [edx + 0x11c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [edx + 0x120], ecx
mov edx, dword [ebp + 8]
add edx, 0x10
push edx
push 0x80
mov eax, dword [ebp + 8]
add eax, 0x124
push eax
call fcn.00405230
call fcn.004198a0
mov ecx, dword [ebp + 8]
mov word [ecx + 0x110], ax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x110]
mov word [edx + 0x224], cx
lea edx, [ebp - 0x134]
push edx
call fcn.00419290
add esp, 4
test eax, eax
je 0x419276
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x134]
mov dword [eax + 0x120], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x134]
mov dword [edx + 0xc], eax
jmp 0x41927a
xor eax, eax
jmp 0x41927f
mov eax, 1
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.004ad2aa
mov esp, ebp
pop ebp
ret