Function at 0x4e2e8a
Capabilities:
Check os version
Encode data using base64

Disassembly:
mov edx, edx
xchg al, ah
xchg ah, al
push ebp
mov ebp, esp
mov edx, edx
push ecx
mov eax, dword [ebp + 0xc]
jmp 0x4c8837
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add esp, 0
jae 0x4c8847
and dh, al
adc al, 0xf
sub dword [edi + ebx - 0x3725fffe], 0xffffff88
leave
jae 0x4ea7f9
fcmove st(0), st(0)
push eax
mov dx, dx
mov bp, bp
mov si, si
push esi
shr bx, 0x40
mov word [esi + 0xbc], dx
mov esi, esi
call fcn.004d7580
mov ebx, ebx
mov cl, byte [ebp + 0xb]
mov edx, edx
shr bh, 0x40
push esi
mov byte [esi + 0xba], bl
lea esi, [esi]
mov byte [esi + 0xbb], cl
mov word [esi + 0xbc], di
xchg edi, ebp
xchg ebp, edi
xchg ecx, eax
xchg ecx, eax
jno 0x4dc964
shr edx, 0x40
shr dh, 0x40
jo 0x4cd0bc
in eax, dx
cmp eax, 0x800fdb6c
mov byte [0x50000f8], al
cwde
jo 0x4dc964
add eax, 0x24448f98
cld
mov edx, dword [ebp - 0x14]
push ebp
pop ebp
mov eax, dword [ebp + 0xc]
cmp edx, eax
je 0x4eb60f
jne 0x4ce457
nop
cpuid
ret 0xd239
cmp edx, edx
xor eax, eax
jb 0x4c330e
lea edx, [edx]
pop esi
jmp 0x4eb609
sub edx, esi
mov esi, ebx
shr esi, 7
and esi, 0x1f
jb 0x4e2dfc
mov bl, bl
mov eax, edx
sub ecx, esi
shl eax, cl
mov ecx, esi
shr edx, 0x40
shr edx, cl
cmp ecx, ecx
or eax, edx
jb 0x4e2e24
mov edx, dword [ebp + 8]
xor eax, ebx
jb 0x4e2e2e
mov dword [edi], eax
mov ecx, dword [edx]
mov edx, eax
shr edx, 4
push 0x4c195e
ret
mov eax, dword [esi]
xor ecx, ecx
jb 0x4f45c1
mov ax, ax
jmp 0x4d0541
push esi
push 0
mov edx, dword [eax + 0x76]
mov cx, word [eax + 0x7e]
jne 0x4c210e
je 0x4d0558
nop
cpuid
ret 0x840f
je 0x4c210e
add eax, 0x4689662a
push es
mov bp, bp
jmp 0x4dcacf
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
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
xor al, 0
add byte [eax], al
enter 0x4e5a, 0
mov eax, 0x11004d99
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
iretd
add byte [ebp + 0x38004c32], cl
add byte [eax], al
add byte [ebx - 0x26], cl
dec ebp
add byte [eax], al
inc ecx
add byte [eax + 0x30], al
add byte [ecx], al
add byte [eax], al
clc
adc byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
inc ecx
add byte [eax], al
dec eax
add byte [eax], al
add byte [edi], bl
xchg edi, eax
dec esp
add byte [ebx - 0x18], al
dec ebp
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
je 0x4d1824
dec esp
add byte [edi - 9], bl
dec esp
add byte [esi + 0x35], ch
dec edi
add byte [ecx - 0x25ffb2bd], dh
out dx, eax
mov al, byte [ebp + 0xb]
jne 0x4dde27
mov ebp, ebp
je 0x4d18be
jnp 0x4d1864
je 0x4dde27
and eax, 0x478b6649
and byte [eax - 1], dl
imul al
xchg esp, eax
das
invalid
call fcn.004e19f0
xchg di, bx
mov bl, bl
shl cl, 0x20
mov dx, dx
xchg bx, di
jne 0x4bce3a
je 0x4dc983
nop
cpuid
ret
je 0x4bce3a
jne 0x4d18af
je 0x4dcadb
cpuid
ret
je 0x4d18af
and eax, 0xeb850f8a
out 0xfe, eax
push dword [esp + eax + 0x1f]
mov esi, esi
push esi
jmp 0x4f4c7d
shl cx, 0x20
shl ch, 0x20
mov byte [esi + 0xba], cl
shl si, 0x20
mov eax, dword [ebp - 4]
lea eax, [eax]
xchg ecx, edx
shr dh, 0x40
xchg al, ah
mov edx, edx
xchg ah, al
xchg edx, ecx
mov byte [esi + 0xbb], 0
mov ebx, ebx
jmp 0x4cd065
add byte [eax], al
cmp dl, dl
test eax, eax
jb 0x4c3306
jne 0x4ce441
je 0x4e2cbe
cwde
cpuid
ret
jne 0x4ec995
je 0x4e2cc9
pop esp
mov edx, 0xc6840f08
pushfd
add byte [eax], al
je 0x4ec995
add eax, 0x4dda4b1d
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
add al, 0
add byte [eax], al
enter 0x4e5a, 0
lea esi, [edx]
dec esp
add byte [eax + eax], al
add ah, ah
jne 0x4e2d4c
add byte [esi + 0xd], bh
iretd
add byte [eax], al
add bl, ch
lea ecx, [ebx]
xor byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
je 0x4e2ca6
dec esp
add byte [edi - 0x2a], bl
dec ebx
add byte [edi], dh
mov ch, 0x4e
add byte [eax], ah
add byte [eax], al
add byte [0x36000000], dh
ja 0x4e2d82
add byte [edi + edx*4 - 0x54c5ffb2], bl
dec ebp
add byte [ebp + 0x2d], al
dec esi
add byte [eax - 0x7f], bh
add eax, 0xc004de5
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esi + 0x48004df4], dl
add byte [eax], al
add byte [eax], cl
add byte [eax], al
lea esi, [edx]
dec esp
add byte [eax], cl
add byte [eax], al
sti
xor cl, byte [eax + eax + 0x40]
add byte [eax], al
add byte [0x96000000], bh
add byte [eax], al
cmp eax, 0x96000000
hlt
inc dword [eax]
add byte [eax + eax], dh
xor al, 0
add byte [eax], al
je 0x4e2d10
dec esp
add ch, bh
jne 0x4e2ddc
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
add al, 0
add byte [eax], al
enter 0x4e5a, 0
je 0x4e2d6b
dec esi
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
lea esi, [edx]
dec esp
add byte [eax + eax], al
add ah, dl
mov dl, 0x4c
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
in al, 0x75
dec esp
add byte [edi - 0x1e], ch
mov ebx, 0x9c004f1d
xchg edi, eax
sbb eax, 0x979c004f
dec esi
add byte [edx], bh
loop 0x4e2e34
add dh, ch
sub eax, 0x818004e
jae 0x4e2e29
loop 0x4e2e3f
add byte [edi + edx*4 + 0x4428004e], bl
sbb eax, 0x3f26ff00
aas
loop 0x4e2d85
xchg dh, bl
mov eax, dword [ebp + 0x44]
mov edx, dword [esi + 4]
mov ebx, dword [esi + 8]
mov dh, dh
shl ax, 0x20
mov ax, word [eax + edx]
lea esi, [esi + 0xc]
add cx, 0
sub word [ebp + ebx], ax
jmp dword [esi]
fst dword [edi + 0xf]
xchg dword [esi + 0x76fffd56], esi
add ebx, ebp
sbb eax, 0xab860f74
push esi
std
push dword [esi + 3]
fstp qword [0xab860f74]
push esi
std
invalid
lea ebx, [ebx]
je 0x4e2e47
nop
cpuid
ret 0x840f
je 0x4e14b0
or byte [esi], 0x8b
push ss
shr si, 0x40
mov edi, 0xa
shl bx, 0x20
push edx
call fcn.004f420e
and eax, 0xffff
jb 0x4f45b8
add esp, 4
shl eax, 3
cmp eax, edi
jae 0x4d0533
jb 0x4e2e87
cpuid
mov ebx, eax
shl ax, 0x20
push 2
call fcn.004d0508
invalid
and byte [eax], al
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
in al, 0x75
dec esp
add byte [ecx - 9], ah
xor al, 0x77
dec esp
add byte [edx + 0x72], bl
dec esp
add byte [edx], bh
stosd dword es:[edi], eax
dec ebp
add bh, ch
cmpsd dword [esi], dword es:[edi]
dec esi
add dl, bh
sti
push esp
cmp ch, byte [ebx + 0x725a004d]
dec esp
add byte [edx + 0x6005b2], al
add byte [eax], al
add eax, 0x60
mov dword [ebp + 8], eax
mov dword [ebp - 4], 0xc
shr al, 0x40
mov ecx, dword [ebp + 8]
mov edx, dword [edi]
mov ebx, dword [edi + 4]
mov esi, dword [ecx + 4]
mov ecx, 0x20
js 0x4ce9c3
jns 0x4ea827
wait
stc
jge 0x4ea7ce
jns 0x4ce9c3
xor eax, 0xff896604
push 0x4d3ee9
ret
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x10]
mov cx, cx
push 0x4f3847
ret
pop esi
mov esp, ebp
call fcn.004ce439
add eax, 0x1d4cff59
add bh, bh
add byte es:[esi], 0xf
xchg dword [ecx + ebp*2], edi
add byte [eax], al
jbe 0x4ec9b3
cpuid
nop
ret
jbe 0x4f32e9
and eax, 0x4eb47439
add byte [eax + eax], cl
add byte [eax + eax], cl
add byte [ebp + 0x48004c32], cl
add byte [eax], al
add byte [ebx - 0x27], ah
dec ebx
add byte [0x34000000], bh
add byte [eax], al
add byte [ebx - 0x27], ah
dec ebx
add byte [eax + eax], dh
jmp dword [esi]
shr dh, 0x40
nop
cpuid
ret 0x800f
add byte [ebp + 0x3080c76], cl
invalid
sub cl, byte [edi]
test byte [ebx - 0x70], ch
cld
jmp dword [0x4dda0f63]
and eax, 0x4dda0f63
add byte [eax + eax], al
add byte [eax], al
rol byte [edi - 0x7bc3ffb4], 1
add byte [eax], al
dec eax
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [esi], bh
jns 0x4f462c
add byte [ebx - 0x18], al
dec ebp
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
je 0x4f4572
test dword [eax + eax - 0x20], ecx
dec esp
add al, ah
dec ecx
dec ebp
add byte [edi], bh
jo 0x4f4641
add byte [0x11004dcf], al
add byte [eax], al
add byte [eax], cl
add byte [eax], al
inc ebx
call fcn.004e4656
add byte [eax], al
dec eax
add byte [eax], al
add byte [ebp + eax*4 + 0x4c], dh
add byte [eax], al
add byte [ebx - 0x18], al
dec ebp
add bh, bh
inc dword [eax]
add byte [eax], cl
add byte [eax], al
je 0x4f4596
dec esp
add dh, dh
dec ecx
dec ebp
add bh, cl
retf 0x4c
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
je 0x4f45ba
dec esp
add bh, bh
dec ecx
dec ebp
add dl, bh
add dword [eax + eax + 0x38], ecx
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [ebp + 0x48004c32], cl
add byte [eax], al
add byte [esi + 0x35], ch
dec edi
add byte [ecx + edx*4 + 0x4c], dh
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
lea esi, [edx]
dec esp
add byte [eax], cl
add byte [eax], al
outsb dx, byte [esi]
xor eax, 0x9174004f
dec esp
add byte [edx + 0x4de8432b], al
add bh, bh
inc dword [eax]
add byte [eax], cl
add byte [eax], al
je 0x4f45ec
dec esp
add dh, cl
sub byte [ebp], cl
sbb edx, dword [edx + 0x4e]
add byte [eax], cl
add byte [eax], al
xor al, 0
add byte [eax], al
je 0x4f4600
dec esp
add cl, bh
pop edx
dec ebp
add byte [ebp + 0x48004c32], cl
add byte [eax], al
add ah, dh
pop es
dec esp
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [eax], al
aas
jo 0x4f46e3
add al, dl
xchg dword [eax + eax + 0x1a], ecx
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
je 0x4f462c
dec esp
add byte [edx], dl
pop ebx
dec ebp
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 ss
add byte [eax], al
add al, cl
pop edx
dec esi
add byte [edi + 0x1b], bl
dec edi
add byte [ecx + 0x43], ch
dec esi
add bh, cl
mov dword [0xdc05004d], eax
dec ebx
fimul dword [ebp]
add byte [ecx], al
add byte [eax], 0
add byte [eax], al
add dword [eax], eax
add byte [eax + eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
pop ds
xchg edi, eax
dec esp
add bl, dl
test byte [esi], cl
in al, 0x75
dec esp
add byte [esi + 0x24648dbd], dl
lea esp, [esp - 0x68]
mov byte [esi + 0xba], bl
push ecx
pop ecx
mov dx, dx
mov byte [esi + 0xbb], al
jne 0x4ec7e4
je 0x4f4c99
sbb eax, 0x840fb2d2
inc ebp
jnp 0x4f4c9d
je 0x4ec7e4
invalid
jmp dword [0x24448f62]
and eax, 0x24448f62
cld