Function at 0x646fd1
Capabilities:
Encode data using base64
Encode data using xor
Encrypt data using aes
Encrypt data using speck

Disassembly:
jmp 0x646fed
lea esp, [esp + 4]
jmp 0x647191
jmp 0x647025
jmp 0x647041
push ebp
jmp 0x64705d
jmp 0x647079
mov ebp, esp
jmp 0x647095
jmp 0x6470b1
push ecx
jmp 0x6470cd
jmp 0x6470e9
push ecx
jmp 0x647105
jmp 0x647121
push ebx
jmp 0x64713d
jmp 0x647159
push edi
jmp 0x647175
jmp 0x676b1f
jmp 0x647009
jmp 0x64752b
jmp 0x647547
movzx eax, byte [ecx]
jmp 0x647563
jmp 0x64757f
movzx edx, byte [ecx + 1]
jmp 0x64759b
jmp 0x6475b7
movzx ecx, byte [ecx + 2]
jmp 0x6475d3
jmp 0x6475ef
shl eax, 8
jmp 0x64760b
jmp 0x647627
or eax, edx
jmp 0x647643
jmp 0x67830e
cmp al, 0x30
jb 0x6769f5
cmp al, 0x39
jbe 0x6769ce
jmp 0x6769f5
mov eax, 0x403
jmp 0x676c60
invalid
mov bl, byte [ecx + 1]
mov byte [ebp - 1], bl
cmp bl, 0x41
jb 0x676aa7
jae 0x676a79
cli
jb 0x6769c6
xchg dword [edx - 0x47], esi
cmc
jl 0x6769fe
jne 0x676972
push 0xffffffffffffffa7
arpl word [eax + 0xd], di
rol byte [eax + 0x742bf880], 0xd4
cmp al, 0x2b
je 0x6769ce
cmp al, 0x2f
jne 0x6769ac
lodsd eax, dword [esi]
jmp 0x6769ce
cmp al, 0x61
jb 0x67699f
cmp al, 0x7a
jbe 0x6769ce
jmp 0x67699f
mov dl, byte [ecx + 2]
cmp dl, 0x41
jb 0x676bff
cmp dl, 0x5a
jbe 0x676b84
jmp 0x676bff
cmp bl, 0x5a
jbe 0x676a44
jmp 0x676aa7
cmp bl, 0x30
jmp 0x676afa
cmp bl, 0x61
jb 0x676a8a
cmp bl, 0x7a
jbe 0x676a44
jmp 0x676a8a
cmp bl, 0x2b
je 0x676a44
cmp bl, 0x2f
jne 0x6769ac
jmp 0x676a44
jb 0x676acc
cmp bl, 0x39
jbe 0x676a44
xchg byte [edi], bh
invalid
jmp 0x676acc
mov edi, eax
mov al, byte [ecx]
cmp al, 0x41
jb 0x676a1d
cmp al, 0x5a
jbe 0x6769ce
jmp 0x676a1d
cmp dl, 0x30
jb 0x676ba5
cmp dl, 0x39
jbe 0x676b84
jmp 0x676ba5
cmp cl, 0x61
popal
jb 0x676c3c
jae 0x676c1d
or al, 0x8f
pop ds
jp 0x676b00
jle 0x676b77
je 0x676b65
lea edi, [esi + ebx*4 + 0x2c]
mov edx, 0x1b159a0b
mov cl, byte [ecx + 3]
cmp cl, 0x41
jmp 0x676bdc
cmp dl, 0x2b
je 0x676b84
cmp dl, 0x2f
je 0x676b84
cmp dl, 0x3d
jne 0x6769ac
jmp 0x676b84
cmp dl, 0x3d
jne 0x676d2e
cli
cmp eax, 0x169850f
add byte [eax], al
je 0x676cf6
jg 0x676bbd
add ax, si
adc dl, byte [eax + ebx*8 + 0x4e]
sub eax, ebx
xor dword [esp], ecx
add eax, 0x85723057
jb 0x676b63
cmp cl, 0x5a
jbe 0x676bbc
jmp 0x676b63
cmp dl, 0x61
jb 0x676b55
cmp dl, 0x7a
jbe 0x676b84
jmp 0x676b55
cmp cl, 0x7a
jbe 0x676bbc
jmp 0x676c3c
cmp cl, 0x30
jb 0x676c80
cmp cl, 0x39
jbe 0x676bbc
jmp 0x676c80
pop edi
pop ebx
leave
ret
cmp cl, 0x2b
je 0x676bbc
cmp cl, 0x2f
je 0x676bbc
cmp cl, 0x3d
je 0x676bbc
jmp 0x6769ac
xchg byte [ebx + esi*2], dl
mov fs, word [edi]
iretd
cmp al, 0x2b
jne 0x676ed5
je 0x676ead
jle 0x676cc8
jne 0x676d01
out dx, eax
push edx
xchg byte [eax], bl
mov gs, ecx
sbb byte [ecx - 0x766f66c], dh
or edi, dword [esi - 0x3855167b]
pop es
add dword [eax], eax
add byte [eax], al
mov dword [edi], 1
jmp 0x676cd2
out dx, al
push es
out dx, al
cmpsd dword [esi], dword es:[edi]
xor ah, byte [eax + 0x4a9532c7]
movq qword [eax], mm7
and bl, bl
inc edi
pop esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and ebx, eax
push ebx
lds ebp, ss:[edx - 0x2d]
dec esi
fdivr qword [ebx + 0x1b55e156]
salc
int1
xor ebx, ebx
cmp cl, 0x3d
setne bl
inc ebx
inc ebx
mov dword [edi], ebx
mov bl, byte [ebp - 1]
jmp 0x676cd2
pop eax
jmp 0x676eb7
cmp al, 0x39
jmp 0x676ef0
push 0x3e
jmp 0x676e69
push esi
cmp bl, 0x2b
jmp 0x676f65
cmp al, 0x2f
jne 0x676e8f
push 0x3f
jmp 0x676e69
ja 0x676fcf
movzx eax, al
add eax, 4
jmp 0x676eb7
cmp bl, 0x2f
jne 0x67a922
je 0x6782cb
cmpsd dword ds:[esi], dword es:[edi]
aaa
push edx
mov eax, dword [0xb022be18]
xlatb
and cl, byte [ebx - 0x6d3cc48]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
jmp 0x78f15dbd
sub eax, 0x47
jmp 0x676eb7
jne 0x676f05
je 0x676fab
fisttp dword [esi - 0x24]
mov ebx, 0xfc66f156
xchg edx, eax
cmc
add al, 0xf5
invalid
push 0x3e
jmp 0x676fe1
cmp al, 0x5a
movzx eax, al
ja 0x676f5c
sub eax, 0x41
jmp 0x676eb7
pop esi
jmp 0x6771a5
cmp dl, 0x2f
jne 0x67712a
je 0x67717e
jmp 0x64750f
mov edx, dword [ebp - 8]
jmp 0x677158
mov ecx, dword [ebp - 8]
jmp 0x677250
cmp edi, 3
jmp 0x67739d
sub esi, 0x47
jmp 0x6771a5
pop edx
jmp 0x677158
cmp dl, 0x39
ja 0x677eb3
jbe 0x677ade
add byte [eax], al
jae 0x677137
xchg edx, eax
cmc
add al, 0xe6
mov ecx, 0x3dceab3b
sal byte [edx - 0x43], cl
pop ecx
inc ecx
cmp bl, 0x5a
ja 0x6770a3
sub esi, 0x41
jmp 0x6771a5
cmp edi, 3
jne 0x67707c
cmp cl, 0x2b
jmp 0x677206
push 0x3f
jmp 0x6770b6
mov edi, dword [edi]
cmp edi, 2
jb 0x67706d
cmp dl, 0x2b
jne 0x67704d
push 0x3e
jmp 0x6770b6
cmp cl, 0x2f
jmp 0x67727a
jne 0x6771c1
push 0x3e
jmp 0x6772d4
shl eax, 6
or eax, esi
shl eax, 0xc
pop esi
cmp edi, 2
jb 0x677085
jae 0x67734e
fldl2t
push ss
std
jmp dword [ebx + 0x3dceab3b]
jne 0x6772ac
push 0x3f
jmp 0x6772d4
cmp cl, 0x39
ja 0x677382
movzx ecx, cl
add ecx, 4
jmp 0x677250
pop ecx
jmp 0x677250
sub ecx, 0x47
jmp 0x677250
shl edx, 6
or eax, edx
jmp 0x677085
mov ecx, dword [ebp + 8]
mov edx, eax
shr edx, 0x10
mov byte [ecx], dl
cmp edi, 2
jb 0x6773c8
jae 0x6773a9
invalid
cmp cl, 0x5a
movzx ecx, cl
ja 0x677309
sub ecx, 0x41
jmp 0x677250
jne 0x677358
or eax, ecx
jmp 0x677358
mov edx, eax
shr edx, 8
jmp 0x677426
cmp edi, 3
jne 0x6773f1
je 0x677509
invalid
sub edx, 0x47
jmp 0x677158
xor eax, eax
jmp 0x676c60
mov byte [ecx + 1], dl
jmp 0x6773c8
mov byte [ecx + 2], al
jmp 0x6773f1
movzx edx, dl
add edx, 4
jmp 0x677158
cmp dl, 0x5a
movzx edx, dl
ja 0x6773e8
sub edx, 0x41
jmp 0x677158
push 0x3f
jmp 0x676fe1
shr esi, 6
and ecx, ebx
and edx, ebx
and esi, ebx
and eax, ebx
cmp ecx, 0x1a
jae 0x6783a1
lea ebx, [ecx + 0x41]
jmp 0x678369
push ebx
push esi
shl eax, 8
or eax, ecx
mov ecx, eax
push 0x3f
pop ebx
mov edx, eax
mov esi, eax
shr ecx, 0x12
shr edx, 0xc
jmp 0x6782d4
mov byte [edi], bl
cmp edx, 0x1a
jae 0x6784f7
lea ecx, [edx + 0x41]
jmp 0x67844c
cmp ecx, 0x34
jae 0x6783dc
lea ebx, [ecx + 0x47]
jmp 0x678369
cmp ecx, 0x3e
jae 0x678672
lea ebx, [ecx - 4]
jmp 0x678369
mov byte [edi + 1], cl
jmp 0x678509
xor ecx, ecx
jmp 0x6784d6
cmp edx, 0x3e
jae 0x678468
lea ecx, [edx - 4]
jmp 0x67844c
cmp edx, 0x3e
setne cl
jmp 0x678557
cmp edx, 0x34
jae 0x6784a5
lea ecx, [edx + 0x47]
jmp 0x67844c
cmp esi, 0x1a
jae 0x67852e
lea ecx, [esi + 0x41]
jmp 0x678574
cmp esi, 0x34
jae 0x6785b7
lea ecx, [esi + 0x47]
jmp 0x678574
lea ecx, [ecx*4 + 0x2b]
jmp 0x67844c
pop esi
mov byte [edi + 2], cl
pop ebx
cmp eax, 0x1a
jmp 0x6786c7
cmp esi, 0x3e
jae 0x678636
lea ecx, [esi - 4]
jmp 0x678574
xor ecx, ecx
cmp esi, 0x3e
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x678574
cmp eax, 0x34
jae 0x678dca
lea ecx, [eax + 0x47]
jmp 0x679359
xor ebx, ebx
cmp ecx, 0x3e
setne bl
lea ebx, [ebx*4 + 0x2b]
jmp 0x678369
lea ecx, [eax + 0x41]
jmp 0x679359
jae 0x67864b
jb 0x678691
dec ecx
fimul word [ebx + ebp - 0x1a]
or al, 0x92
push es
xchg esp, eax
push cs
out 0x35, al
mov al, byte [0x7a05136]
std
insd dword es:[edi], dx
hlt
xor ecx, ecx
cmp eax, 0x3e
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x679359
cmp eax, 0x3e
jae 0x67886a
lea ecx, [eax - 4]
jmp 0x679359
mov byte [edi + 3], cl
ret
movzx esi, bl
cmp bl, 0x39
ja 0x677149
add esi, 4
jmp 0x6771a5