Function at 0x4e8672
Capabilities:
Check os version

Disassembly:
lea eax, [ebp - 0x3c]
push eax
jmp 0x4c4a26
push ecx
mov ebx, ebx
push 0x519010
push 0
jmp 0x4c4a32
push edi
call dword [ebp - 0x1c]
test eax, eax
jb 0x4ed101
je 0x4f3980
jne 0x4c4a4a
or eax, 0x3966840f
rol byte [ebp - 0x4b7df00a], cl
xchg byte [edx], al
add byte [edi], cl
test byte [eax + eax], dl
add byte [eax], al
cmp dx, dx
test esi, esi
jb 0x4ed109
je 0x4c4a6f
jne 0x4c4a61
loop 0x4c4a66
call 0xffd4a0ab
push esi
mov bh, bh
call fcn.004de62e
wait
add dword [eax], eax
add esp, 4
lea edx, [ebp - 4]
shl bx, 0x20
push 0
jno 0x4f2ab4
jo 0x4c4a82
sbb dword [bx], ecx
sub byte [eax], 2
add byte [ebp - 0x77fbdb9c], cl
lea esp, [esp + 4]
mov byte [esi + eax + 0x24], dl
ja 0x4f07a2
jbe 0x4c4a9a
jo 0x4f2ab4
ret
jmp 0x4d34b3
push edi
call dword [ebp - 0x10]
test esi, esi
jb 0x4cd7b3
je 0x4d34d8
jne 0x4d34cb
invalid
push esi
call fcn.004de62e
add esp, 4
xor eax, 0xd3ed8892
cmp esp, dword [esi - 0x3f]
in eax, 0x20
lea ebp, [ebp]
jmp dword [esi]
out dx, al
jmp 0xc1b44602
test cl, 0x53
add esp, 4
movsb byte es:[edi], byte [esi]
invalid
add eax, 0x24648dc6
add al, 0x57
inc edi
sbb ecx, dword [eax + 0x4468be4]
shr ebp, 0x40
mov ebx, dword [esi + 8]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 0xc]
sbb word [ebx], ax
jmp 0x4f5609
add esp, 0xc
push ebx
mov bl, bl
call fcn.004de62e
test cl, 0xf0
add esp, 4
xor ax, ax
jb 0x4ce885
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jmp 0x4e8648
push edi
call dword [ebp - 0x10]
push esi
call fcn.004de62e
mov ecx, dword [ebp - 0xc]
stc
add esp, 4
jmp 0x4e865e
push ecx
ja 0x4f3d24
jbe 0x4e866a
pushfd
xor al, 0xf
xchg byte [esi + esi*4 - 0x4bfb0000], dh
jbe 0x4f3d24
add eax, 0x24448fb4
cld
add byte [ebx + edx*2 + 0x4d4a2d24], ah
add byte [esp + edi*2 + 0x39d9004e], ch
test cx, 0x1e59
and byte [ebx], al
jb 0x4ddfc6
jmp dword [esi]
pop edx
sub byte [esi + 0x43], 0xe8
dec ebp
add bh, bh
inc dword [eax]
add byte [eax], dh
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [edx - 0x72ffb160], dl
xor cl, byte [eax + eax + 0x44]
add byte [eax], al
add ah, ah
jne 0x4ed176
add dh, dl
int 0xeb
lea ecx, [ebx]
xor byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
je 0x4ed0c0
dec esp
add byte [edx - 0x2c], ch
dec esi
add byte [esp + esi*4 + 0x4e], dh
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
ja 0x4ed19c
add byte [edi - 0x69ffb24b], dl
hlt
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [edx - 0x2c], dh
dec esi
add byte [esp + esi*4 + 0x4e], dh
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
dec ebx
fimul dword [ebp]
add byte [ecx], ah
xor byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add al, cl
pop edx
dec esi
add byte [ebp + 0x44004c32], cl
add byte [eax], al
add byte [esi + 0x35], ch
dec edi
add byte [ecx - 0x25ffb24b], dl
pop eax
mov eax, dword [eax + 8]
test eax, eax
jb 0x4e4edb
je 0x4ed1e4
jne 0x4ed1da
cpuid
ret
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ecx], eax
lea ebp, [ebp]
xor eax, eax
jb 0x4e03ad
pop ebp
ret
call fcn.004c58eb
push 0x4c1769
ret
jmp 0x4f2ab5
push edx
push 0
lea eax, [ebp - 0x3c]
push 0
jmp 0x4f2abf
push eax
push edi
xchg ebx, edx
xchg edx, ebx
call dword [ebp - 0x14]
mov eax, dword [ebp - 4]
push eax
mov ebx, eax
call fcn.004de617
mov esi, eax
add esp, 4
test esi, esi
jb 0x4d4f73
je 0x4f3d3c
jne 0x4f2af0
xchg cl, al
lea ecx, [ebp - 4]
shr dx, 0x40
push 0
shl edx, 0x20
push ecx
push ebx
mov eax, eax
lea edx, [ebp - 0x3c]
push esi
shl ebx, 0x20
push edx
shl si, 0x20
push edi
mov dword [esi], 5
mov dl, dl
call dword [ebp - 0x14]
test eax, eax
jb 0x4d4f8d
ja 0x4f39bc
jbe 0x4f2b2d
xor byte [eax], 0xd7
jbe 0x4f39bc
xor eax, 0x24648d31
add al, 0x8d
add al, 0xb
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [ebp + 0xc]
push eax
jmp 0x4f2b44
push ecx
call fcn.004ed6c6
or di, di
jno 0x4e76c3
jo 0x4f2b5a
nop
cpuid
ret
jo 0x4e76c3
fidiv dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test edx, 0xc80a1c5a
cmp eax, 0x103
je 0x4d34b2
add dword [eax], eax
add byte [edi], cl
test byte [ebx], bl
sti
std
push dword [ebp + 4]
jne 0x4f399d
cpuid
ret
jmp 0x4f399e
push esi
mov dx, dx
call fcn.004de62e
ja 0x4d65b7
jbe 0x4f39b4
cpuid
nop
ret
jbe 0x4d65b7
or byte [ecx + 0xf], 0x84
test dword [edi + edi*8 - 1], ecx
je 0x4e8647
jne 0x4f39c8
cpuid
nop
ret
mov eax, dword [ebp - 0x18]
xchg dl, cl
xchg cl, dl
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], eax
mov dh, dh
lea ebx, [esi + 4]
inc ecx
add eax, 0x100
push ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], eax
ja 0x4f281a
jbe 0x4f39f3
nop
cpuid
ret
jbe 0x4f281a
xor al, 0
inc ebx
call 0x4e3a4e
add byte [eax], al
xor al, 0
add byte [eax], al
je 0x4f398e
dec esp
add byte [eax], dh
mov byte [ebx], cl
dec ebx
fimul dword [ebp]
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
dec eax
add byte [eax], al
add al, cl
pop edx
dec esi
add byte [ebx], bl
push edx
dec esi
add byte [eax], cl
add byte [eax], al
xor al, 0
add byte [eax], al
je 0x4f39c6
dec esp
add byte [edx - 0x72ffb2db], ah
xor cl, byte [eax + eax + 0x48]
add byte [eax], al
add byte [ebx - 0x26], cl
dec ebp
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
push eax
add byte [eax], al
add al, cl
pop edx
dec esi
add byte [ebp + 0x44004c32], cl
add byte [eax], al
add byte [esi + 0x30004df4], dl
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esi + 0x38004df4], dl
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add ah, ah
jne 0x4f3ae2
add al, al
out dx, al
push esp
in eax, 0x4d
add byte [eax], al
loope 0x4f3aeb
add byte [0x4768d09], al
mov dword [ebp + 0x40], esp
shl si, 0x20
jmp dword [esi]
mov ch, byte [edi]
invalid
cpuid
ret
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xchg bp, ax
xchg bp, ax
pop edi
mov ah, ah
pop esi
pop ebx
mov bx, bx
mov esp, ebp
pop ebp
ret
push edi
call dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
xchg ch, dl
xchg dl, ch
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ja 0x4d34af
jbe 0x4f3d61
je 0x4f3dd8
xchg byte [edi + ecx - 0x208b77a], al
inc dword [edx + 0xc60e8de]
std
jbe 0x4d34af
sbb dh, 0xe8
pushal
or al, 0xfd
inc edi
sahf
loopne 0x4f3dfa
and byte [esp + eax + 0xf], bh
mov byte [0x768dc390], al
or byte [edi], cl
and dword [0x51fffc33], 0x3027059
push cs
jo 0x4b712f
fldcw word [edx + 0xf]
test dword [edx + ebp*8 - 0x76990002], edx
leave
je 0x4f3e26
ficomp dword [eax - 0x797bf06a]
ljmp 0x9595
je 0x4e28b2
and byte [ebp - 0x146a6b], 0xf6
mov ch, ch
mov byte [esi + 0xba], bl
shr bl, 0x40
shl si, 0x20
mov byte [esi + 0xbb], al
mov word [esi + 0xbc], di
mov dh, dh
call fcn.004e1bce
xor al, 0xbf
push eax
pop eax
movzx cx, byte [ecx]
shl eax, 8
stc
add eax, ecx
mov ecx, dword [ebp + 0x20]
and eax, 0xffff
jb 0x4b798b
mov edx, eax
and edx, 1
jb 0x4c63d8
mov dword [ecx], edx
mov ecx, dword [ebp + 0x14]
mov edx, eax
shr edx, 1
and edx, 7
jb 0x4ddcff
mov dword [ecx], edx
mov dh, dh
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov al, al
shr edx, 4
and edx, 3
jb 0x4ddd06
mov dword [ecx], edx
mov ecx, dword [ebp + 0xc]
mov edx, eax
shr edx, 6
and edx, 3
jb 0x4d4e22
mov dword [ecx], edx
mov ecx, dword [ebp + 0x18]
mov cx, cx
mov edx, eax
shr edx, 8
and edx, 3
jb 0x4c2215
xchg ecx, ebp
xchg ebp, ecx
mov dword [ecx], edx
mov edx, dword [ebp + 0x1c]
shr eax, 0xa
mov dword [edx], eax
pop ebp
shl dx, 0x20
ret
adc dword [eax], eax
add byte [eax], al
jb 0x4f4f2a
nop
cpuid
ret 0xed89
mov ebp, ebp
lea esi, [esi + 8]
mov cl, cl
jmp dword [esi]
jmp 0x8a17508e
lea esp, [esp + 4]
mov ecx, dword [ebp - 8]
jne 0x4c4a20
je 0x4f4f8b
jmp 0x4f5008
je 0x4c4a20
jmp 0x4f4f20
dec esp
add byte [ebp - 4], bh
jge 0x4f4fa7
dec ebx
add byte [edx], bh
stosd dword es:[edi], eax
dec ebp
add byte [edi - 0x36ffb0b1], dh
fadd qword [0xc004de5]
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebp + 0x48004c32], cl
add byte [eax], al
add byte [esi + 0x30004df4], dl
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
inc ebx
call fcn.004e502a
add byte [eax], al
xor al, 0
add byte [eax], al
je 0x4f4f6a
dec esp
add byte [ebx + edi*2 + 0x4b], dl
add byte [ebx + 0x40], al
dec esp
add byte [ebx - 4], cl
dec ebx
add byte [0xff004d4a], ch
dec edi
dec edi
add byte [eax + 0x2dc2a20f], dl
dec edx
dec ebp
add byte [ebx - 4], cl
dec ebx
add byte [0x4c75e465], dh
in al, 0x75
dec esp
add bl, ch
jle 0x4f4fa9
imul ecx, dword [ebp], 2
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esi], dh
ja 0x4f506a
add cl, bh
push eax
dec edi
add byte [edx], bh
stosd dword es:[edi], eax
dec ebp
add byte [edi], ch
push eax
dec edi
add ch, bl
push 0xda4b643f
dec ebp
add byte [eax], al
popal
add byte [eax + 0x34], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor byte [eax], al
add byte [eax], al
enter 0x4e5a, 0
and ch, dl
dec ebx
add byte [eax - 0x66], cl
add byte [eax], al
cmp al, 0
add byte [eax], al
dec ebx
fimul dword [ebp]
add byte [ecx], ah
xor byte [eax + eax], 0
add byte [ebx - 0x26], cl
dec ebp
add byte [eax], al
popal
add byte [eax + 0x34], al
add byte [ecx], ah
add byte [eax], al
dec edx
add byte [eax], al
add byte [eax], al
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor byte [eax], al
add byte [eax], al
insd dword es:[edi], dx
pushal
add byte [eax], al
and dword [eax], eax
add byte [edx], cl
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebp + 0x60], ch
dec ebp
add byte [ebp + eax*4 + 0x4c], dh
add byte [edx + esi + 0x7f4004c], bh
dec esp
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [eax], al
rol byte [edi - 0x7bfaffb4], 1
add byte [eax], al
xor byte [eax], al
add byte [eax], al
je 0x4f502a
dec esp
add byte [esi + ebx*4], bh
dec ebx
add byte [0x35004dcf], al
jg 0x4f50b2
add byte [eax], dh
add byte [eax], al
add byte [ebx - 0x18], al
dec ebp
add bh, bh
inc dword [eax]
add byte [eax], dh
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [ecx + 0x1b], dh
dec edi
add al, dl
xchg dword [eax + eax + 0x31], ecx
push ecx
add byte [eax], al
xor byte [eax], al
add byte [eax], al
je 0x4f505e
dec esp
add byte [esi + 0x1b], bh
dec edi
add dl, bh
add dword [eax + eax + 0x31], ecx
add byte [eax], al
add byte [ecx], dh
add byte [eax], al
add byte [ebp + 0x44004c32], cl
add byte [eax], al
add ah, ah
jne 0x4f5142
add byte [0x4b8deb1e], dh
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [ebx + 0x42], al
dec esi
add byte [esi], dh
ja 0x4f515c
add byte [ebx + 0x74004f51], ah
mov ah, 0x4e
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
cmp ch, byte [ebx + 0x512d004d]
dec edi
add byte [edx + 0x1b57e1b6], dl
push edx
dec esi
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [edi + ecx + 0x4d], dh
add byte [ebx - 0x26], cl
dec ebp
add byte [eax], al
popal
add byte [eax + 0x34], al
add byte [ecx], ah
add byte [eax], al
dec edx
add byte [eax], al
add byte [eax], al
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor byte [eax], al
add byte [eax], al
enter 0x4e5a, 0
lea esi, [edx]
dec esp
add byte [eax + eax], al
fimul dword [ebp]
add byte [ecx], ah
xor byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], cl
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add al, cl
pop edx
dec esi
add byte [ebp + 0x44004c32], cl
add byte [eax], al
add byte [0x44004e7d], dl
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
adc eax, 0x3c004e7d
add byte [eax], al
add byte [eax + eax], al
add ah, ah
jne 0x4f51d4
add bh, dh
add edx, dword [0x30004e7d]
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
adc eax, 0x3c004e7d
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ecx + 0x9004c9e], ah
add eax, dword [eax]
add byte [eax], dh
add byte [eax], al
add byte [ebp + 0x44004c32], cl
add byte [eax], al
add byte [ebp + 0x4d], dl
add bh, bl
inc esi
dec edi
add byte [0x24648d94], al
lea esp, [esp + 4]
mov dh, dh
mov bx, bx
shr al, 0x40
mov bx, bx
jmp dword [esi]