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

Disassembly:
cmp ebx, 1
add edi, eax
test ecx, 0x80000000
jb 0x41eda7
call fcn.00432a23
xor eax, 0x4146b000
add byte [eax], cl
add byte [eax], al
add byte [eax], ch
add byte [eax], al
add byte [eax + 0x4326], ah
popal
add byte [eax + 0x28], 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
dec esi
mov ecx, 0xe1ea0040
inc ecx
add byte [esi - 0x5a], ch
invalid
mov eax, dword [eax + edx]
lea esi, [esi + 0xc]
and dword [ebp + ebx], eax
jb 0x4274bc
push esi
pop esi
jmp dword [esi]
fbld tbyte [0x8bed8966]
push esi
add al, 0x8d
jbe 0x40b018
mov ebx, dword [ebp + 0x38]
jmp 0x40b014
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 0x44726e
jbe 0x40b036
cpuid
invalid
jbe 0x44726e
fcmove st(0), st(2)
je 0x437dc8
jne 0x40b04c
jbe 0x40b099
add eax, 0x3c41f07e
inc ebp
cmp al, 0x45
jne 0x42b6c5
je 0x40b05c
out dx, al
or eax, 0xdd573301
cmp byte [esi], 0
jmp fcn.0042b6ae
cmp esi, 0x840f0004
and al, byte [eax]
add byte [eax], al
fisubr dword [eax + 0x66]
mov edi, edi
mov cl, bl
rcr dword [edi], cl
jmp dword [esi]
adc byte [ecx + 0x20e5c09d], 0xff
cld
jbe 0x414d9f
cpuid
ret
jbe 0x409861
xor al, 0x28
call fcn.00423dfe
mov dx, word [edi + 0x1c]
jmp 0x414db1
push edx
jmp 0x414db4
push esi
call fcn.004190e8
jmp fcn.00418426
dec esi
mov ah, 1
add al, al
loope 0x41d8b7
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 0x414d70
jmp dword [esi]
jno 0x41d890
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 0x4274b6
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 0x40aff1
jo 0x41d91d
jns 0x41d8f5
jo 0x40aff1
xor al, 0xa9
or ebp, edx
inc ebx
add byte [ebp - 0x26], cl
inc ebx
add byte [ebx + 0x38004349], ch
fld dword [ecx]
aad 0xfa
lea eax, [edi + 0x2000423b]
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax + 0x4326], ah
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
invalid
adc byte [esi + 0xd97ee8], 0
call fcn.0042c55a
xor eax, eax
jb 0x431654
mov ax, word [edi + 0x24]
push eax
jmp 0x41ebea
push esi
call fcn.00423dfe
mov cx, word [edi + 0x18]
push ecx
push esi
call fcn.004407e0
push 1
push esi
call fcn.00429ada
mov edx, dword [ebp + 0x10]
jmp 0x41ec09
push edx
push esi
call fcn.00419cf8
add esp, 0x30
jmp fcn.0040f08a
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 0x41ebd5
sub edi, esi
mov dl, byte [esi]
cmp dl, 0x61
jb 0x424838
jae 0x424808
cpuid
ret
cmp dl, 0x7a
ja 0x424838
jbe 0x424816
adc byte [ebx - 0x7e2e7617], 0xe1
inc dword [eax]
add byte [eax], al
mov ecx, edx
and ecx, 0xff
jb 0x438cf7
add cx, 0
sub ecx, 0x20
jmp 0x424846
mov ecx, edx
and ecx, 0xff
jb 0x438d01
mov al, byte [edi + esi]
sub bl, 0
cmp al, 0x61
jb 0x424881
jae 0x424858
mov al, byte [0x3cd23934]
jp 0x4247e4
cmp edx, edx
cmp al, 0x7a
xchg ecx, edi
stc
xchg edi, ecx
ja 0x424881
jbe 0x42486a
test dword [0xff], 0x4495820f
add dword [eax], eax
and eax, 0xff
jb 0x438d0a
sub eax, 0x20
jmp 0x42488c
and eax, 0xff
jb 0x41d8e5
cmp ecx, eax
jne 0x43729b
je 0x42489c
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 0x41d908
jne 0x4247f7
shr dl, 0x40
je 0x4248b7
cpuid
test al, 0xc3
pop edi
pop esi
and ebp, ebp
jno 0x4248bf
in eax, dx
sbb eax, 0x29c9810f
add dword [eax], eax
jno 0x43728e
fdiv st(5)
and dword [ebx + 0x26ff1f38], esi
int 0x2f
cmp cx, cx
cmp dword [edi], ebx
jmp dword [esi]
cmp al, 0x43
jne 0x42b6e6
je 0x42b6d4
mov eax, dword [0x22c30fb2]
cmp byte [esi], 0
je 0x43a9f1
jne 0x42b6e2
lodsd eax, dword [esi]
xchg esp, eax
pushfd
shr bp, 0x40
fdiv st(4)
and eax, 0xff
jb 0x40b005
shr bp, 0x40
mov edx, dword [ebp + 0xc]
mov ecx, eax
mov al, byte [ebx + edx]
cmp al, 0x61
jb 0x445bbc
jae 0x4301f5
fnstcw word [eax + ecx*4 - 0x1dd3818]
invalid
call fcn.004124c1
fimul dword [edx]
jmp dword [esi]
mov edx, dword [ebp - 0x24]
push eax
push 0
mov edx, edx
push 4
push ecx
push edx
shr bx, 0x40
push esi
push 4
call fcn.00426736
add esp, 0x24
cmp ax, 0x1a
mov dword [ebp - 0xc], eax
je 0x4162c6
jne 0x434f87
mov esp, 0x173d663f
add byte [edi], cl
test byte [0x75fffe13], dh
add eax, dword [edi]
cmp ax, 0x17
je 0x4162c6
jne 0x434f96
pop es
mov dword [0xec4d8b08], eax
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jb 0x42e09c
jne 0x434fbd
je 0x434fae
invalid
cmp ax, 0x1f
je 0x4162c6
jne 0x434fbd
add al, 0x6c
test ax, ax
jb 0x41a6fb
jne 0x42199d
je 0x434fd1
aaa
sbb eax, 0xa8d8458b
nop
mov eax, dword [ebp - 0x28]
test al, 0x90
test eax, eax
jb 0x41a711
je 0x4162c6
jne 0x434fec
sbb byte gs:[esi - 0x647243], ch
invalid
push eax
call fcn.0040e883
mov ecx, dword [ebp - 8]
cmc
add esp, 4
test eax, eax
jb 0x43f047
push 0x42e392
ret
xor eax, eax
jb 0x41d91b
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov edi, edi
mov al, byte [ebx + eax]
cmp al, 0x61
jb 0x4372d6
jae 0x4372af
inc esp
in eax, dx
cmp al, 0x7a
ja 0x4372d6
jbe 0x4372bc
cmp al, 0xe
movsd dword es:[edi], dword [esi]
and eax, 0xff
jb 0x41d923
sub eax, 0x20
jmp 0x4301e0
js 0x4301d1
jns 0x4372e0
je 0x4372a3
jns 0x4301d1
xor eax, 0x56006a9d
call fcn.0041a7b9
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov cl, byte [ebp + 0x10]
add esp, 0xc
ja 0x407964
jbe 0x43730a
mov edi, 0x860f62d1
push esp
push es
std
invalid
jbe 0x407964
fcmove st(0), st(7)
lea eax, [eax]
push edx
push esi
jno 0x41ebd7
jo 0x437325
add dword [ebx + 0x2c], 0xffffff95
enter 0xffffffffffff800f, 0xffffffffffffffac
jo 0x41ebd7
js 0x437328
invalid
fadd dword [esi - 0x3f]
call 0x96ccd974
mov esp, 0x66000000
shr ecx, 0x40
cmp byte [esi], 0
shr ax, 0x40
je 0x437ded
jne 0x437dd9
add eax, 0xdb885f22
pop edi
mov bl, bl
pop esi
xor eax, eax
jb 0x41408e
pop ebx
pop ebp
mov bp, bp
ret
test di, di
jb 0x422cd1
mov ch, ch
jne 0x437e1f
je 0x437e05
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 0x422cd9
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.0040e0b8
mov bh, al
ja 0x41d8ba
jbe 0x438d04
pop esp
test byte [esi + 0x4bb0860f], ah
invalid
jbe 0x41d8ba
and eax, 0x4327b233
add byte [eax + eax], dh
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
mov al, 0x46
inc ecx
add byte [eax], cl
add byte [eax], al
add byte [eax + eax], ch
add byte [eax], al
mov al, byte [0x4326]
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
dec esi
mov ecx, 0xa4ab0040
inc ecx
add byte [ecx], cl
xchg esi, eax
add byte [eax], al
sub al, 0
add byte [eax], al
sub ebx, ebp
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
in eax, dx
aaa
inc edx
add byte [eax - 0x3fffbebb], bh
std
inc eax
add byte [edx - 0x73], dh
inc ebx
add byte [ebx + edi*4 + 0x40fdc0], ch
mov eax, 0x35004145
push esp
xor edx, edx
jb 0x445c31
test di, di
jb 0x40bb6a
jne 0x422b50
je 0x43aa08
mov eax, dword [0x83b36b13]
and dword [edi + 0x5e], ebx
ja 0x41089c
jbe 0x43dd35
wait
sar cl, 1
invalid
jbe 0x41089c
sub ch, byte [ecx]
inc esp
add byte [eax], bl
add byte [eax], al
and al, 0
add byte [eax], al
stosb byte es:[edi], al
pop esp
inc edx
add byte [eax + eax], bh
add byte [eax], al
mov bl, 0x52
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [eax + 0x4326], ah
inc eax
add byte [eax], al
and al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
sub byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [eax + eax], cl
add byte [eax], al
invalid
rol dword [ecx], 1
jo 0x43dd28
cmp byte [edi + ecx - 0x7b], 0x52
int 0xfc
push dword [esi + eax + 0x46]
mov dword [edx + 0x57508e49], esi
pop edi
pop edi
push 0x40bda0
ret
and eax, 0xff
jb 0x447291
ja 0x4393fb
jbe 0x445bd5
retf 0x4eb0
jbe 0x4393fb
invalid
dec ebx
fmul dword [edi]
test bl, ah
mov ch, bh
inc dword [edx + 0x392be828]
mov eax, dword [esi + 4]
lea esi, [esi + 0xc]
cmp byte [ebx + edx], al
jmp dword [esi]
fimul dword [eax]
mov cx, cx
shl edi, 0x20
mov dx, word [ebp + 0x10]
mov ch, ch
jmp 0x4472a0
push eax
mov al, al
push esi
mov dl, dl
shl bx, 0x20
push 0x445e77
ret