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

Disassembly:
mov ecx, 0xa
test ax, 0x720f
xor eax, eax
jb 0x4a9735
lea edi, [ebp - 0x50]
rep stosd dword es:[edi], eax
mov edi, 0x8000
test word [esi + 0x4e], di
jb 0x4a9749
jne 0x4cc7a5
je 0x4a7870
push ss
push ss
cmp word [esi + 0x16], bx
shr dh, 0x40
je 0x4c869a
jne 0x4a7882
ror dword [edi + 0x22], 0xff
imul al
push eax
nop
add al, byte [eax]
push esi
call fcn.004d08d9
add esp, 4
lea edx, [ebp - 0x50]
push eax
push edx
jmp 0x4a7896
push esi
call 0x4b7da8
add esp, 0xc
cmp eax, ebx
mov dword [ebp + 8], eax
jne 0x4cc7d7
je 0x4a78b3
jecxz 0x4a787d
or eax, 0xfb8
add byte [edi + 0x66], bl
mov dword [esi + 0x1a], eax
mov eax, 0xf
pop edi
mov word [esi + 0x1a], ax
pop esi
jmp 0x4c8690
add esp, 4
test byte [esi + 0x1c], 3
jb 0x4ab014
jne 0x4c8af7
je 0x4a8bf4
insd dword es:[edi], dx
sbb al, 0xb8
or dword [eax], eax
add byte [eax], al
mov eax, 9
pop edi
jmp 0x4c8ae6
jmp 0x4a8d3a
push eax
push esi
xchg al, bh
shr al, 0x40
mov ah, ah
xchg bh, al
mov byte [esi + 0xba], cl
shr ah, 0x40
mov byte [esi + 0xbb], 0
mov dl, dl
mov word [esi + 0xbc], dx
call fcn.004cad95
push edx
pop edx
shr bp, 0x40
shl ah, 0x20
mov al, byte [ebp + 0xb]
xchg bp, di
shl cx, 0x20
mov dh, dh
shr di, 0x40
xchg di, bp
push esi
shl edi, 0x20
shl di, 0x20
mov byte [esi + 0xba], bl
xchg ah, dl
xchg dl, ah
mov byte [esi + 0xbb], al
mov ebx, ebx
xchg cl, al
mov ch, ch
push esi
pop esi
xchg al, cl
shl edi, 0x20
mov word [esi + 0xbc], di
shl al, 0x20
shl dx, 0x20
call fcn.004df54f
push eax
pop eax
xchg dx, di
xchg di, dx
xchg si, di
xchg di, si
mov cl, byte [ebp + 0xc]
mov dx, word [ebp + 0x10]
shl eax, 0x20
mov dh, dh
ja 0x4bda57
jbe 0x4a8ddd
mov ebp, ecx
jbe 0x4bda57
xor al, 0x38
cmp cl, cl
test byte [ebx], al
jb 0x4b273e
jmp dword [esi]
mov eax, dword [ebp + eax]
mov ecx, ecx
lea esi, [esi + 0xc]
push ecx
pop ecx
sbb dword [ebx], eax
mov edx, edx
mov cx, cx
jmp dword [esi]
pop eax
cld
ja 0x4aab44
jbe 0x4a9743
cpuid
ret
jbe 0x4aab44
fnstcw word [edi + 0x7b]
xchg esp, eax
dec edx
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esp + ecx*4], al
dec ebx
add byte [eax], cl
les ecx, [eax + eax + 0x71]
xor byte [eax + eax + 5], cl
push ebx
dec ebx
add byte [edx], al
out dx, eax
dec ebp
add byte [ebx - 0x69], dh
dec edx
add ah, bl
pop ds
mov bl, 0xc3
add ch, bh
dec ebp
add byte [0x25004b53], al
test al, 0xc0
loop 0x4a97a0
mov dword [0x26ff0002], eax
pop ss
shl bh, 0x20
shr ax, 0x40
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
jno 0x4a9721
jo 0x4ab02d
int 0x17
jo 0x4a9721
add eax, 0xc768d2b
mov bh, bh
mov word [ebx], ax
jmp dword [esi]
pop edi
push esi
shl dh, 0x20
call 0x4c9d80
test ebx, 0xcb6cbb21
jne 0x4dd8c9
je 0x4bc49f
xor ebx, dword [eax - 0x7bf04f3e]
and al, 0x14
add al, byte [eax]
je 0x4dd8c9
lea esp, [esp + 4]
fnclex
mov cl, byte [ebp + 0x34]
mov ebx, dword [esi + 4]
lea esi, [esi + 8]
sar dword [ebp + ebx], cl
jmp dword [esi]
call fcn.004a8b18
fld dword [edi - 0x1a760a01]
sub esp, 0x140
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x140]
push eax
shl ax, 0x20
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test ch, 0xc9
test eax, eax
jb 0x4b9632
xchg ebx, esi
xchg esi, ebx
je 0x4bdad9
shl al, 0x20
jne 0x4bda9c
mov al, byte [ebx + edi*4 - 0x1137a73]
invalid
lea eax, [ebp - 0x114]
push esi
push eax
call fcn.004b5f7b
mov esi, dword [ebp + 8]
inc eax
lea ecx, [ebp - 0x114]
shl dh, 0x20
jmp 0x4bdab8
push eax
jmp 0x4bdabb
push ecx
push esi
call fcn.004ddd56
add esp, 0x10
shl cx, 0x20
mov eax, esi
pop esi
mov esp, ebp
pop ebp
mov bh, bh
ret
xor eax, eax
jb 0x4bc8ac
mov esp, ebp
pop ebp
ret
invalid
call fcn.004bdbaf
add esp, 4
pop edi
pop esi
pop ebx
mov bx, bx
mov esp, ebp
pop ebp
ret
cmp word [esi + 0x1c], 2
je 0x4a7841
jne 0x4c1d6c
out dx, eax
jb 0x4c1cf3
dec esi
cmp word [esi + 0x1e], bx
je 0x4a7841
jne 0x4c1d7c
mov ebp, 0xb8c3a20f
or al, byte [eax]
add byte [eax], al
mov eax, 0xa
mov ax, ax
ja 0x4b84e0
lea ecx, [ecx]
jbe 0x4c1d92
cpuid
ret
jbe 0x4b84e0
fcomp dword [eax]
pop ebx
mov esp, ebp
shl cl, 0x20
pop ebp
ret
call 0x4e12cd
cmp eax, ebx
jne 0x4cc79b
je 0x4c86ad
invalid
je 0x4cc79b
xor al, 0x48
jmp dword [esi]
mov word [esi + 0x1a], ax
pop esi
pop ebx
shl ebx, 0x20
mov esp, ebp
pop ebp
push edx
pop edx
ret
mov al, byte [esi + 0xfe]
test al, al
jb 0x4ab02b
je 0x4bc483
jne 0x4c8b11
cpuid
ret
mov eax, 2
jno 0x4bc474
jo 0x4c8b21
dec edi
call 0x4dcc9b21
cmp edi, edi
push dword [0x40e9c1b8]
jo 0x4bc474
xor eax, 0x40e9c1b8
xchg edi, esi
xchg esi, edi
mov al, byte [ebp + 0xb]
call fcn.004ae189
xor byte [esi - 0x73], 0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
inc eax
add edi, 4
cmp eax, ecx
push 0x4b882b
ret
jne 0x4cfc35
je 0x4cbaf6
inc esp
xor ecx, dword [esi + 0x10]
je 0x4cfc35
xor al, 0x7f
shl si, 0x20
mov dword [esi + 0x30], ecx
jmp fcn.004b8058
jne 0x4a788f
je 0x4cc7a5
cwde
and word [esi + 0x50], 0x7fff
jb 0x4aab64
js 0x4deadf
jns 0x4cfc41
jo 0x4cfc93
mov esi, 0x98890f6e
out dx, al
add byte [eax], al
jns 0x4deadf
add eax, 0xfe810f02
popal
invalid
xchg byte [eax], bl
push edx
invalid
shr ax, 0x40
jo 0x4cfc9b
je 0x4cfc74
jo 0x4b265f
fsub dword [esi - 0x7df02ef7]
adc eax, 0x81fffe14
in eax, dx
add byte [eax], al
add byte [eax], al
xor cx, word [esi + 6]
jb 0x4b10c9
push 0x4d7530
ret
add esp, 4
cmc
test eax, eax
jb 0x4ab033
je 0x4c1d5a
mov ax, ax
jne 0x4dd8e5
jle 0x4dd94a
push esi
ja 0x4c1d41
jbe 0x4dd8f2
sbb dword [ebx], ebp
imul esp, dword [ebp + 0xf], 0xffffff86
dec ecx
inc esp
invalid
jbe 0x4c1d41
mov ebp, 0xf5ef089
test ebp, esp
push cs
invalid
or al, 0x86
into
mov bx, bx
xchg cl, dh
mov ebp, ebp
jmp 0x4cbaea
lea esp, [esp + 4]
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x1c], ebx
xchg di, si
xchg si, di
je 0x4a8be0
xchg ecx, ebp
xchg ebp, ecx
jne 0x4de264
and al, 0x86
add byte [esi + 0x39], ah
fcom dword [ebx + 0x5b]
cmp ax, bx
push ebx
pop ebx
je 0x4a8be0
jne 0x4de275
cmp ax, 0x28
je 0x4a8be0
jne 0x4de285
push esi
call fcn.004bdbaf
jno 0x4a8bcf
jo 0x4de295
add eax, 0x34800fc1
jo 0x4a8bcf
add eax, 0xfd7393a
test byte [eax], bl
add byte [eax], al
add byte [ebp + 4], dh
shl esi, 0x20
mov dx, word [ebp + 0x10]
jmp 0x4a8d39