Function at 0x42124b
Capabilities:
Check os version
Encode data using base64
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [eax + edx]
lea esi, [esi + 0xc]
and dword [ebp + ebx], eax
jb 0x423f2c
push esi
pop esi
jmp dword [esi]
fbld tbyte [0x8bed8966]
push esi
add al, 0x8d
jbe 0x407a88
mov ebx, dword [ebp + 0x38]
jmp 0x407a84
push esi
mov esi, dword [ebx + edx]
mov dword [ebp + 0x34], esp
jmp dword [esi]
adc ecx, dword [ecx + 0x26ff3465]
scasb al, byte es:[edi]
and esp, dword [esi - 0x3f]
in eax, 0x20
mov ebx, dword [ebp + 0x38]
mov edx, dword [esi + 8]
ja 0x443cde
jbe 0x407aa6
cpuid
invalid
jbe 0x443cde
fcmove st(0), st(2)
je 0x434838
jne 0x407abc
jbe 0x407b09
add eax, 0x3c41f07e
inc ebp
cmp al, 0x45
jne 0x428135
je 0x407acc
out dx, al
or eax, 0xdd573301
cmp byte [esi], 0
jmp fcn.0042811e
cmp esi, 0x840f0004
and al, byte [eax]
add byte [eax], al
fisubr dword [eax + 0x66]
mov edi, edi
adc byte [ecx + 0x20e5c09d], 0xff
cld
mov ch, 0xf3
xchg edi, eax
xchg edi, eax
dec esi
mov ah, 1
add al, al
loope 0x41a327
push dword [esi + esi*2]
xchg bh, bl
xchg bl, bh
mov eax, dword [ebp + 0x38]
mov ebx, ebx
mov edx, dword [esi + 4]
shr eax, 0x40
mov ebx, dword [esi + 8]
shl bp, 0x20
mov si, si
mov al, byte [eax + edx]
lea esi, [esi + 0xc]
and byte [ebp + ebx], al
jb 0x4117e0
jmp dword [esi]
jno 0x41a300
mov eax, dword [ebp + 0x38]
mov edx, dword [esi + 4]
shr si, 0x40
mov ebx, dword [esi + 8]
mov ax, word [eax + edx]
mov eax, dword [eax + edx]
lea esi, [esi + 0xc]
and word [ebp + ebx], ax
jb 0x423f26
jmp dword [esi]
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x38]
mov edx, dword [esi + 4]
mov ebx, dword [esi + 8]
jno 0x407a61
jo 0x41a38d
jns 0x41a365
jo 0x407a61
xor al, 0xa9
jns 0x41a336
inc ebx
add byte [ebp + 0x1b0043a4], bh
adc al, 0x43
add byte [eax - 0x2affbe5d], ch
cli
invalid
adc byte [esi + 0xd97ee8], 0
mov esi, 0x66800f7c
xor dword [ecx], eax
add byte [0x42f110c1], dh
xor eax, 0x42f110c1
add byte [eax], al
popal
add byte [eax + 0x28], al
add byte [ecx], ah
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [ecx], dl
add byte [eax], al
add byte [ecx], al
add byte [eax + eax], ch
add byte [eax], al
test byte fs:[edx], al
and eax, 0x240041aa
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
nop
cli
inc edx
add byte [eax - 0x53ffbf7d], ah
stc
inc edx
add byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
lodsb al, byte [esi]
stc
inc edx
add byte [eax], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
adc cl, dh
inc edx
add byte [eax], al
popal
add byte [eax + 0x28], 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
and al, 0
add byte [eax], al
sub al, 0x42
add byte [0x2c0041aa], ah
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
nop
cli
inc edx
add byte [ebx + eax*4 - 0x91dffc0], bh
inc eax
add byte [eax + eax], ch
add byte [eax], al
sub al, 0
add byte [eax], al
sub dword [ebx + eax*2 + 0x1500], ebx
add byte [eax + eax], ah
add byte [eax], al
nop
cli
inc edx
add byte [edi - 0x1affbc5b], al
out dx, eax
inc eax
add byte [esi + 1], bl
add byte [eax], al
and al, 0
add byte [eax], al
sbb ah, byte [edi]
inc edx
add byte [eax], bh
add byte [eax], al
add byte [edi], bl
inc ecx
add byte [eax], al
add byte [eax], al
sub dword [eax], eax
add byte [eax], al
adc ebp, esp
inc ebx
add byte [ecx], ch
add byte [eax], al
add byte [ecx], dl
in eax, 0x43
add byte [eax + eax], ah
add byte [eax], al
sub al, 0
add byte [eax], al
adc ebp, esp
inc ebx
add byte [eax + eax], ch
add byte [eax], al
and al, 0
add byte [eax], al
add eax, 0xf100438c
outsd dx, dword [esi]
pop ds
inc ecx
add byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
inc eax
insd dword es:[edi], dx
inc edx
add byte [edx], cl
add byte [eax], al
add byte [0xab000000], ch
in eax, 0x42
add byte [edx], cl
add byte [eax], al
add byte [0x99000000], ch
mov ch, 0x43
add byte [edx], al
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
and ebx, dword [0x200043]
add byte [eax], al
sub al, 0
add byte [eax], al
jns 0x41f80e
inc ebx
add dl, bl
cmp dword [ecx], eax
sbb edx, dword [ebx + eax*2]
add byte [ebx + 0x750041f8], al
mov dword [0x4345b8f6], eax
pop ebp
add al, byte [edx]
sbb byte [ecx], bh
inc ecx
add byte [eax], dh
enter 0x40, 0xffffffffffffff98
clc
inc ecx
add byte [ebp - 0x35], cl
retf 0xe625
push ebp
mov ebp, ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
cmc
xor ebx, ebx
jb 0x41b645
sub edi, esi
mov dl, byte [esi]
cmp dl, 0x61
jb 0x4212a8
jae 0x421278
cpuid
ret
cmp dl, 0x7a
ja 0x4212a8
jbe 0x421286
adc byte [ebx - 0x7e2e7617], 0xe1
inc dword [eax]
add byte [eax], al
mov ecx, edx
and ecx, 0xff
jb 0x435767
add cx, 0
sub ecx, 0x20
jmp 0x4212b6
mov ecx, edx
and ecx, 0xff
jb 0x435771
mov al, byte [edi + esi]
sub bl, 0
cmp al, 0x61
jb 0x4212f1
jae 0x4212c8
mov al, byte [0x3cd23934]
jp 0x421254
cmp edx, edx
cmp al, 0x7a
xchg ecx, edi
stc
xchg edi, ecx
ja 0x4212f1
jbe 0x4212da
test dword [0xff], 0x4495820f
add dword [eax], eax
and eax, 0xff
jb 0x43577a
sub eax, 0x20
jmp 0x4212fc
and eax, 0xff
jb 0x41a355
cmp ecx, eax
jne 0x433d0b
je 0x42130c
xchg esp, eax
xor ebp, dword [edi]
outsd dx, dword [esi]
xchg esi, edi
inc ebx
mov edi, edi
inc esi
test dl, dl
jb 0x41a378
jne 0x421267
shr dl, 0x40
je 0x421327
cpuid
test al, 0xc3
pop edi
pop esi
and ebp, ebp
jno 0x42132f
in eax, dx
sbb eax, 0x29c9810f
add dword [eax], eax
jno 0x433cfe
fdiv st(5)
mov eax, dword [edx + 0x76]
js 0x4319c7
jns 0x421346
cpuid
add ebx, 0xf
mov dword [ebx + 6], edi
add dword [eax], eax
jns 0x4319c7
and eax, 0x4468bfd
xchg dh, bh
xchg bh, dh
mov eax, dword [ebp + eax]
mov ebx, dword [esi + 8]
mov al, byte [eax]
mov bl, bl
call fcn.00410e2f
invalid
and dword [ebx + 0x26ff1f38], esi
int 0x2f
cmp cx, cx
cmp dword [edi], ebx
jmp dword [esi]
cmp al, 0x43
jne 0x428156
je 0x428144
mov eax, dword [0x22c30fb2]
cmp byte [esi], 0
je 0x437461
jne 0x428152
lodsd eax, dword [esi]
xchg esp, eax
pushfd
shr bp, 0x40
and eax, 0xff
jb 0x407a75
shr bp, 0x40
mov edx, dword [ebp + 0xc]
mov ecx, eax
mov al, byte [ebx + edx]
cmp al, 0x61
jb 0x44262c
jae 0x42cc65
fnstcw word [eax + ecx*4 - 0x1dd3818]
invalid
call fcn.0040ef31
fimul dword [edx]
mov edx, dword [ebp - 0x24]
xor eax, eax
jb 0x41a38b
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov edi, edi
mov al, byte [ebx + eax]
cmp al, 0x61
jb 0x433d46
jae 0x433d1f
inc esp
in eax, dx
cmp al, 0x7a
ja 0x433d46
jbe 0x433d2c
cmp al, 0xe
movsd dword es:[edi], dword [esi]
and eax, 0xff
jb 0x41a393
sub eax, 0x20
jmp 0x42cc50
js 0x42cc41
jns 0x433d50
je 0x433d13
jns 0x42cc41
xor eax, 0x56006a9d
cmp byte [esi], 0
shr ax, 0x40
je 0x43485d
jne 0x434849
add eax, 0xdb885f22
pop edi
mov bl, bl
pop esi
xor eax, eax
jb 0x410afe
pop ebx
pop ebp
mov bp, bp
ret
test di, di
jb 0x41f741
mov ch, ch
jne 0x43488f
je 0x434875
inc eax
dec ebp
mov dword [0xd387fb10], eax
xchg ebx, edx
xchg edx, ebx
shl cl, 0x20
pop edi
pop esi
xor eax, eax
jb 0x41f749
pop ebx
pop ebp
shl bx, 0x20
ret
mov eax, dword [ebp + 0xc]
shr bx, 0x40
mov ebx, 2
mov word [eax], di
shr esi, 0x40
pop edi
mov word [eax + 2], bx
pop esi
mov eax, 1
pop ebx
mov dl, dl
pop ebp
jmp fcn.0040ab28
mov bh, al
ja 0x41a32a
jbe 0x435774
pop esp
test byte [esi + 0x4bb0860f], ah
invalid
jbe 0x41a32a
and eax, 0x42f22233
add byte [eax + eax], dh
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
and byte [ecx], dl
inc ecx
add byte [eax], cl
add byte [eax], al
add byte [eax + eax], ch
add byte [eax], al
adc cl, dh
inc edx
add byte [eax], al
popal
add byte [eax + 0x2c], al
add byte [ecx], ah
add byte [eax], al
mov edx, 0
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
and al, 0
add byte [eax], al
mov esi, 0x1b004083
outsd dx, dword [esi]
inc ecx
add byte [ecx], cl
xchg esi, eax
add byte [eax], al
sub al, 0
add byte [eax], al
cdq
mov ch, 0x43
add byte [ecx], al
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
pop ebp
add al, byte [edx]
sub byte [eax], dl
inc ecx
add byte [eax], dh
enter 0x40, 0xffffffffffffffe2
push edi
inc ebx
add byte [ebx + edi*4 + 0x40c830], ch
sub byte [eax], dl
inc ecx
add byte [0x9e666854], dh
inc eax
add bl, al
add eax, 0x40ebc095
xor edx, edx
jb 0x4426a1
test di, di
jb 0x4085da
jne 0x41f5c0
je 0x437478
mov eax, dword [0x83b36b13]
and dword [edi + 0x5e], ebx
and eax, 0xff
jb 0x443d01
ja 0x435e6b
jbe 0x442645
retf 0x4eb0
jbe 0x435e6b
invalid
mov eax, dword [esi + 4]