Function at 0x5cb8cf
Capabilities:
Check os version
Encode data using base64
Encrypt data using aes mixcolumns step

Disassembly:
movzx eax, byte [ebp + eax]
add esi, 8
shl eax, cl
add edi, eax
test ecx, 0x80000000
jb 0x5c920b
mov ebp, ebp
jne 0x5e8a77
je 0x5ade53
stc
cpuid
ret
add ax, 0
add esi, 4
add ah, 0x76
sub ah, 0x76
popfd
jmp dword [esi - 4]
mov word [esi + 0xbc], dx
push 0x5ba0e0
ret
sahf
pushfd
lea ecx, [ecx]
call fcn.005d27e3
xor al, 0xcc
jmp 0x5b608c
push ebp
mov ebp, esp
sub esp, 0x140
shl esi, 0x20
mov eax, dword [ebp + 0x18]
push ebx
shl dh, 0x20
jmp 0x5b60a2
push esi
shl edi, 0x20
mov esi, dword [ebp + 0x1c]
push edi
mov edi, dword [ebp + 0x14]
push esi
jne 0x5cb5e2
je 0x5b60ba
invalid
je 0x5cb5e2
add eax, 0xdb880f07
add dword [bx + si], eax
mov bp, bp
jns 0x5b60d1
cpuid
nop
ret
jns 0x5cc8a3
xor eax, 0x87cd872d
jmp 0x8b5fa76c
mov bl, bl
mov ebx, dword [esi + 8]
mov ax, word [eax]
mov cx, cx
lea esi, [esi + 0xc]
or word [ebp + ebx], ax
jb 0x5e0d10
xchg ebx, ecx
xchg ecx, ebx
jmp dword [esi]
call fcn.00600010
add bl, 0x9a
sub bl, 0x9a
add esp, 0x14
mov ax, ax
shl si, 0x20
mov dword [ebp - 8], eax
test eax, eax
jb 0x5c7d23
mov bx, bx
jne 0x5afaa9
je 0x5bb7e8
leave
test byte [ebp + 0x62], dl
je 0x5afaa9
fimul dword [0xffc4458d]
invalid
and eax, 0xb60f521d
adc eax, 0x5b3b33
mov esp, ebp
pop ebp
shr cx, 0x40
shl bx, 0x20
mov byte [esi + 0xbb], 0
jmp 0x5aebd8
cmpsb byte [esi], byte es:[edi]
int1
jns 0x5ba76e
add eax, 0xf0ffebe1
shr ch, 0x40
shl cx, 0x20
shr dh, 0x40
jmp 0x5c7c1a
push esi
xchg bl, al
xchg al, bl
push 0
mov byte [esi + 0xba], cl
shr cl, 0x40
jmp 0x5c3d33
retf
xor al, 0x54
imul ebx, ecx, 0x2005c
add byte [eax], al
xor byte [eax], al
add byte [eax], al
push es
in eax, 0x5b
add byte [eax], dl
xchg dword [ebp], ebx
or bl, byte [ecx]
pop ebp
add byte [0xcc005c92], ch
cmc
fld xword [ebp - 0x64]
rcr dword [ebx], cl
inc eax
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
sbb ecx, dword [eax + 0x5d]
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
cmp byte [eax], al
add byte [eax], al
cwde
enter 0x5d, 0x1b
dec eax
pop ebp
add byte [eax], al
popal
add byte [eax + 0x34], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
xor byte [eax], al
add byte [eax], al
xor al, 0x5a
pop ebx
add byte [eax - 0x57], ah
pop ebp
add byte [ecx], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edi], ch
mov dword [esi], ebx
cmc
out dx, al
pop edx
add byte [edi - 0x26ffa2ef], bl
or cl, byte [edi]
test dword [ebx + edi*4 - 2], ebp
push dword [esp + eax + 0x62]
cpuid
ret
lea ecx, [ebp - 0x140]
jmp 0x5e4244
push edi
ja 0x5bb7b6
jbe 0x5cb8c7
mov ecx, 0xf69a14f
xchg cl, ch
invalid
jbe 0x5bb7b6
adc byte [edi + ecx*4 - 0x1603dbbc], 0x1b
mov ebx, 0x3beafffe
shr eax, 3
xchg si, dx
xchg dx, si
inc eax
push eax
push esi
call fcn.005bd913
mov al, byte [edi + 0x3c]
shl al, 1
and eax, 7
jb 0x5beb7c
mov ecx, 8
sub ecx, eax
push ecx
push esi
mov cx, cx
call fcn.005eb938
jmp fcn.005b73f3
test eax, 0x930ce8fb
invalid
sub ch, 0x68
add eax, 0x52000001
mov bx, bx
call fcn.005cd20f
lea eax, [ebp - 0x10c]
push 0
push eax
mov edx, edx
call fcn.005d5a32
lea ecx, [ebp - 0x10c]
shl eax, 0x20
push 0
jmp 0x5cbeb8
push ecx
call fcn.005eb938
lea edx, [ebp - 0x10c]
push edx
call fcn.005c42ef
ja 0x5ec93a
jbe 0x5cbed8
jp 0x5cbf51
mov ecx, 0x5c860fe3
or al, byte [edx]
add byte [ebx - 0x77f0fbba], cl
inc ebx
pop ds
invalid
jbe 0x5ec93a
mov eax, dword [esi + 4]
js 0x5ade2a
jns 0x5cbeed
cpuid
test al, 0xc3
jns 0x5ade2a
fcmovbe st(0), st(1)
pop esi
pop ebx
mov esp, ebp
mov ah, ah
pop ebp
ret
and eax, 0xffff
jb 0x5d9fca
shr esi, 0x40
ja 0x5e4b59
jbe 0x5cc8bb
dec edx
insb byte es:[edi], dx
jbe 0x5e4b59
and eax, 0x53368b64
pop ebx
jmp dword [esi]
pop dword [esp - 4]
ja 0x5aff6e
mov cl, cl
jbe 0x5cdec0
cpuid
nop
ret
test dx, 0xa6ed
stc
shr bp, 0x40
jb 0x5cdecf
xchg ebx, eax
daa
jb 0x5e0a3c
jb 0x5e0a3c
xor al, 0x76
dec byte [ecx + 0x5c]
add byte [eax], al
popal
add byte [eax + 0x40], al
add byte [ecx], ah
add byte [eax], al
cld
invalid
test bl, 7
jb 0x5c7c02
je 0x5d208a
jne 0x5d206c
std
cpuid
ret
inc eax
jmp 0x5d208a
sub bl, 0
test al, 1
jb 0x5c7c0a
je 0x5e1227
jne 0x5d20a1
cpuid
invalid
xchg ah, dh
xchg dh, ah
inc eax
jne 0x5e1227
je 0x5d20b2
cpuid
mov ebx, es
je 0x5e1227
and eax, 0xff895578
xchg dl, bl
xchg bl, dl
mov ebp, esp
jmp 0x5d20c4
push ebx
push esi
lea ecx, [ecx]
mov esi, dword [ebp + 8]
push esi
call fcn.005dccbd
fstpnce st(0), st(0)
jmp 0x5d20e0
push 0
push 0xedf1ac77
push 0x77c78d
shl bx, 0x20
push ebx
ja 0x5cb8ba
jbe 0x5d20fb
cwde
pushal
jbe 0x5cb8ba
fidivr dword [esi + 0x66]
xchg ecx, edx
xchg dx, cx
mov eax, eax
js 0x5b608b
jns 0x5d2115
je 0x5d2116
jns 0x5b608b
mov dword [eax + 0x3f], esi
invalid
invalid
pop edi
pop esi
mov ax, 0xa
pop ebx
ja 0x5c2eba
jbe 0x5d3f97
nop
popal
sbb al, 0xf
xchg byte [0x35fffeef], bl
dec esi
aad 0x52
pop ebp
jbe 0x5c2eba
xor eax, 0x5d52d54e
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
adc al, 0x53
pop ebx
add byte [ebx], cl
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
sbb ecx, dword [eax + 0x5d]
add byte [eax], al
inc ecx
add byte [eax + 0x30], al
add byte [ecx], al
add byte [eax], al
test eax, ecx
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
out dx, eax
add al, 0x5c
add bl, ch
mov edi, fcn.0048005d
add byte [eax], al
xor al, 0
add byte [eax], al
inc esp
pop ebx
add byte [edi + 0x5b], ch
add byte [ebp - 0x60], bl
pop ebx
add byte [eax], cl
add byte [eax], al
inc esp
and bl, byte [esi]
xor byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
sbb ecx, dword [eax + 0x5d]
add byte [eax], al
inc ecx
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [ecx], 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
insb byte es:[edi], dx
add byte [eax], al
add bh, ch
add al, 0x5c
add byte [ebx], dl
scasb al, byte es:[edi]
pop ebx
add byte [ebx + 0x48], bl
pop esp
add ch, bh
mov bh, 0x5c
add byte [ecx], bh
inc eax
pop ebp
add byte [ebx + 0x7e], bl
std
mov bh, 0x5c
add byte [ebx + 0x48], bl
pop esp
add byte [ebx], dh
jno 0x5e1059
jo 0x5d404f
loopne 0x5d405c
mov byte [0x4800fc3], al
rol byte [eax], 1
add dl, bl
ja 0x5d3fe3
jo 0x5e1059
add eax, 0x1d5c8b00
add byte [esi - 0x77], ah
dec dword [ebp - 0x1f17f38a]
insd dword es:[edi], dx
invalid
mov al, byte [edi + eax]
js 0x5d54df
jns 0x5d41aa
push ss
fimul dword [ebx - 0x61]
jns 0x5d54df
fidivr dword [0x820fc031]
sar byte [edx], cl
add byte [ebp - 0x3d], bl
mov byte [0xe589551a], al
mov eax, dword [ebp + 8]
and cx, cx
cmp dword [eax + 4], 4
je 0x5e3f93
jne 0x5d41d8
xlatb
jge 0x5d423f
cmp cx, cx
cmp ecx, ecx
or eax, 0xffffffff
jb 0x5dbca3
push eax
pop eax
pop ebp
ret
add byte [eax], al
and dword [eax], eax
add byte [ecx], al
add byte [eax], al
add byte [edx + ebx*2], dh
pop ebx
add al, al
xchg esi, eax
pop esp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pop ebp
mov al, byte [0x44005b]
add byte [eax], al
pushal
test eax, 0x40005d
add byte [eax], al
inc esp
add byte [eax], al
add byte [ebx + 0x5863005b], dh
test al, al
jb 0x5b51b4
jne 0x5df3da
je 0x5d54f1
test dword [ebp + 0x5f], 0xfc0315e
add dl, 0xfc
std
call [ebx + 0x5d]
pop edi
pop esi
xor eax, eax
jb 0x5b51bd
pop ebx
pop ebp
ret
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 0x5ec3d9
xchg byte [edi + ecx - 0x4b3180], bh
inc dword [0x4c481b1]
invalid
invalid
invalid
add eax, 0x4c481b1
add byte [eax], al
add byte [ecx], dh
ror byte [edi], 0x82
mov ch, 0xc1
invalid
jmp dword [esi]
call fcn.005c88a9
invalid
cmp al, 0x41
mov ah, ah
jae 0x5e0a5f
jb 0x5e0a4b
ror dword [esi - 7], cl
cmp al, 0x39
xchg bx, bp
xchg bp, bx
ja 0x5aff6e
jbe 0x5e0a5f
xor eax, 0x8b9ed617
push ss
mov edx, dword [esi]
add al, 0xd0
mov ecx, edx
mov byte [ebp + 0xc], al
mov bh, bh
shl ecx, 4
cmp al, 9
mov dword [esi], ecx
jbe 0x5e0a82
ja 0x5e0a7d
test eax, 0x48f3ad4
stc
add al, 0xf9
mov byte [ebp + 0xc], al
mov eax, dword [ebp + 0xc]
and eax, 0xff
jb 0x5cbe85
or eax, ecx
jb 0x5cbe8c
cmp eax, edx
mov si, si
mov dword [esi], eax
jb 0x5aff6e
jae 0x5e0aaa
ja 0x5e0b24
mov al, 0x8b
inc ebp
or byte [edi + 0xf], al
and edi, 0x66ffff36
mov edx, edx
mov eax, dword [ebp + 8]
inc edi
jno 0x5d419b
mov dx, dx
jo 0x5e0abd
cpuid
aaa
ret
jo 0x5d419b
and eax, 0x81d889e5
stc
add eax, dword [eax]
add byte [eax], al
ja 0x5d3f85
jbe 0x5e0ad7
sub eax, 0x8d24ff31
or dword [ebx], ebp
pop ebx
add byte [ebp - 0x1e], al
mov eax, ebx
sar eax, 3
jmp 0x5d2057
jmp dword [ecx*4 + 0x5b2b09]
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ax, word [ebp + eax]
lea esi, [esi + 0xc]
add word [ebx], ax
ja 0x5ddccc
jbe 0x5e1076
cpuid
ret
jbe 0x5ddccc
mov eax, dword [eax + 8]
test eax, eax
jb 0x5dbcab
je 0x5e3fb4
jne 0x5e3faa
cpuid
ret
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ecx], eax
lea ebp, [ebp]
xor eax, eax
jb 0x5d717d
pop ebp
ret
jmp dword [esi]