Function at 0x53ab51
Capabilities:
Check os version
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
add esp, 8
mov al, byte [edi + 0x16]
dec eax
jno 0x565357
jo 0x52961f
pop ebp
ret
jmp dword [esi]
insd dword es:[edi], dx
invalid
and eax, 0x20e7c0ea
lea esp, [esp + 4]
jne 0x5588d5
je 0x53ab61
cpuid
nop
ret
mov cx, word [esi + 0xbc]
mov eax, ecx
add ebp, 0
jno 0x53ab73
nop
cpuid
ret
jno 0x55889e
invalid
mov ebx, dword [esi + 8]
xchg dl, dh
xchg dh, dl
mov ax, word [ebp + eax]
imul word [ebp + ebx]
shl edx, 0x20
lea esi, [esi + 0xc]
mov word [ebp + ebx], ax
jmp dword [esi]
push ecx
shr ax, 0x40
call fcn.005486e5
cmp bx, bx
add esp, 8
push edx
pop edx
pop ebp
ret
push 4
jmp 0x543329
push esi
push 0x5516fb
ret
xor dword [ebp + ebx], eax
jb 0x558aa9
jmp dword [esi]
fcom dword [edi + 0x4b]
dec edx
push ebx
add byte [eax], al
add byte [eax], al
cmp eax, 0x34000000
lea edx, [ebx]
lds ebx, [esp + eax*8 + 0x480055cb]
add byte [eax], al
add byte [eax], cl
add byte [eax], al
mov esi, 0x3300564c
xor edx, dword [eax + eax + 0x25]
xor al, 0xc0
in al, dx
inc eax
shr ah, 0x40
mov cl, bl
xchg ch, dl
xchg dl, ch
shr word [edi], cl
jne 0x5377dd
shr al, 0x40
je 0x54610d
or eax, 0xca840f23
push ss
invalid
je 0x5377dd
fimul dword [ebx]
mov ecx, dword [eax]
jne 0x53ea5f
je 0x546122
int1
mov ch, 0xd4
je 0x53ea5f
xor eax, 0x1d448853
add bh, bh
push cs
loope 0x5460f4
out dx, eax
inc eax
shr bx, 0x40
mov eax, dword [esi + 4]
ja 0x53d0a2
push ebx
pop ebx
jbe 0x546149
add byte [ebx], al
scasd eax, dword es:[edi]
jbe 0x53d0a2
fsub dword [edi - 0x25792c7a]
jne 0x5318d0
je 0x55117e
and ecx, dword [edi]
mov byte [0x56f2e9c3], al
invalid
jmp fcn.00546875
out dx, al
or al, 0xf
add byte [ebx - 0x380000dc], 0x78
shr edi, 0x40
mov ebx, dword [ebp + 0x44]
shl dh, 0x20
mov eax, dword [esi + 4]
xchg edx, esi
xchg esi, edx
shr bl, 0x40
mov edx, dword [esi + 8]
shl di, 0x20
push 0x533d92
ret
invalid
mov ebx, dword [esi + 8]
mov eax, dword [ebp + eax]
xchg bx, ax
xchg bx, ax
lea esi, [esi + 0xc]
add dx, 0
ja 0x544f3a
jbe 0x555f3e
dec edi
cmp al, 0x43
jnp 0x555f4e
jbe 0x544f3a
xchg dh, dh
out dx, eax
invalid
xor al, 0x99
push dword [ecx*2 + 0x665dec89]
shl ebx, 0x20
lea esi, [esi + 0xc]
stc
xor word [ebp + ebx], ax
jb 0x55a473
jmp dword [esi]
jae 0x556981
mov dx, dx
mov di, di
mov eax, dword [esi + 4]
ja 0x555f1f
jbe 0x55697b
cmp eax, 0x9e860fba
cmc
invalid
jbe 0x555f1f
ficom dword [esi]
xchg byte [esi + 0x6a1f0053], cl
push ebp
add byte [edx - 0x6affab3e], cl
imul edx, dword [ebp], 0xfc55c44b
push esp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
and eax, 0xffff
jb 0x5388ec
shl ecx, 6
shr eax, 0xa
and ecx, 0xffff
jb 0x5388f3
or eax, ecx
jb 0x553c37
xor eax, 0xd5bd
jb 0x553c3f
jmp 0x558937
cmp al, 2
jne 0x558923
je 0x5588e3
cpuid
ret
mov cx, word [esi + 0xbc]
mov eax, ecx
and eax, 0xffff
jb 0x5460ca
shl ecx, 4
shr eax, 0xc
and ecx, 0xffff
jb 0x55eeb0
or eax, ecx
jb 0x55de1d
xor eax, 0xd59f
jb 0x55de25
jmp 0x558937
neg al
sbb eax, eax
and eax, 0x7d
jb 0x556966
add eax, 4
push 1
push esi
mov word [esi + 6], ax
mov cx, cx
call fcn.0054e32d
lea esi, [esi]
mov edi, dword [ebp + 8]
xor eax, eax
jb 0x556979
jno 0x529609
jo 0x558960
int3
jo 0x529609
fdivr dword [edx - 0x73]
and al, 4
pop edi
mov word [ebp + 0x30], ax
mov esi, esi
jmp dword [esi]
out 0xff, al
inc dword [0x54f19b0b]
add eax, 0x54f19b0b
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
loope 0x55a470
push edx
add byte [ecx], dh
inc ecx
push esp
add byte [edx - 0x3dffac], ch
push ebp
add byte [ebp + 0xf0055a4], ch
mov byte [0xffc258c3], al
push ebp
add byte [edx + 0x9da0054], ch
xchg ebp, esi
xchg esi, ebp
mov ecx, dword [edi]
push 0
push ecx
call fcn.005486e5
mov edx, dword [edi]
push 0x14
jmp 0x55a4cb
push edx
call fcn.0053e901
mov eax, dword [edi]
push 1
jmp 0x55a4d7
push eax
call fcn.0052b60e
add esp, 0x18
pop edi
mov di, di
pop esi
pop ebx
mov esp, ebp
pop ebp
js 0x5340f3
jns 0x55a4f8
pop ecx
out dx, eax
out 0xf, eax
mov ebp, esi
wait
std
inc dword [0xfc08564]
jns 0x5340f3
add eax, 0xfc08564
cmp ah, 0xf7
invalid
mov ax, word [ebp + eax]
jne 0x556955
shl si, 0x20
je 0x55de1f
pop es
in eax, dx
je 0x556955
xor al, 0x91
out dx, al
stosd dword es:[edi], eax
mov ecx, ecx
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
jne 0x55de0c
je 0x55eec6
or dh, byte [eax - 0x7bf07c68]
inc eax
out dx, eax
invalid
je 0x55de0c
cmp cl, 0x5c
jmp 0x551172
cmp eax, 0xe9
add byte [eax], al
ja 0x543326
jbe 0x565367
jmp 0x56535a
push 0x54e200
ret