Function at 0x546ea0
Capabilities:
Encrypt data using aes
Encrypt data using speck

Disassembly:
call 0x546d94
test al, cl
in al, 0x2e
adc al, 0xf2
pmulhuw mm2, qword [ecx + 0x38]
mov al, byte [0xc6ff257a]
jno 0x509d0b
pushal
jmp 0x546e3e
cmp al, 0x2b
je 0x509c9b
jne 0x509cbf
rep movsd dword es:[edi], dword [esi]
jmp 0x5908ca
add bl, dl
cmp al, 0x2f
jne 0x509ce6
je 0x509c9b
rep movsb byte es:[edi], byte [esi]
jmp 0x590894
jmp 0x547200
dec esi
fnstcw word [eax]
or al, 0x89
adc dword [eax + 0xf], esp
cmp al, 5
jo 0x509cbd
jmp 0x5966a7
jmp 0x546e8a
jmp 0x546f9a
cmp dl, 0x61
jmp 0x509d86
jb 0x509dd2
cmp dl, 0x7a
jbe 0x509def
ja 0x509dd2
rep movsd dword es:[edi], dword [esi]
jmp 0x590c77
jmp 0x546f59
call 0x547099
pop esi
test eax, 0xe83b6bc8
sbb eax, 0xc81f7e6a
xlatb
popfd
xor byte [ebx], dh
sub al, byte [ebp - 0x17]
and al, 0xd2
add eax, dword [eax]
cmp byte [0x1e59ac0c], 0x6a
jle 0x509e29
jmp 0x546ffb
add dword [ebp + reloc.RASAPI32.dll_RasHangUpA], esp
mov al, byte [edi]
call fcn.00516e8d
ror dword [edx - reloc.RASAPI32.dll_RasHangUpA], 0xf1
rol byte [ebx], cl
add bl, cl
push 0xeff7caca
call fcn.0051b59e
fisubr word [eax + 0x24896653]
and al, 0xe9
xor esp, edx
add eax, dword [eax]
add dword [eax - 0x1d], ebp
pop ebx
pop edx
mov eax, gs
and byte [eax], bh
add dword [eax], eax
pop ds
mov cl, byte [ecx + 3]
clc
jmp 0x5470e9
push ebx
mov word [esp], sp
jmp 0x547240
call fcn.00547153
lahf
out 0x11, al
cmp byte cs:[edi], dh
cmp al, byte [ebx]
in eax, 0x8e
popfd
pop esi
inc eax
jns 0x509e87
mov ds, word [ebp + 0x5879405e]
mov ebx, 0x4e97c92
invalid
fucomi st(0)
invalid
cmp ecx, 0x34
pushal
mov byte [esp + 0x18], ah
jmp 0x547bd0
call fcn.00547b63
push 0x3e
mov eax, dword [esp]
lea eax, [esp - 0xba]
pop eax
jmp 0x547b9a
push ecx
jmp 0x547b48
cmp esi, 0x34
call 0x547c92
sub al, 0xe2
sub ebp, dword [edx + 0x3f]
outsb dx, byte [esi]
mul dword [edi]
mov cl, 0xe4
cwde
sti
ror byte [ebp - 0x17], cl
hlt
jmp 0x547c39
push cx
lea esp, [esp + 2]
jmp 0x547d68
cmp ecx, eax
jmp 0x547c79
jmp 0x547c04
xor ebx, ebx
jmp 0x547250
jmp 0x547826
pushfd
jmp 0x5472e8
cmp al, 0x2b
jmp 0x5472db
cmp al, 0x39
jmp 0x547320
pop eax
jmp 0x546ae7
call fcn.00547354
wait
or dword [ecx + reloc.RASAPI32.dll_RasHangUpA], ebx
stosb byte es:[edi], al
cmp byte [edi - 0x56], bl
sbb dword [ebx - 0x1e], ecx
sbb eax, 0xe9567f6c
xor dword [ecx], ecx
add byte [eax], al
adc bl, byte [edx - 0x35]
pop ebx
int 8
invalid
push esi
jmp 0x54741e
cmp bl, 0x2f
jmp 0x54739c
push esp
lea esp, [esp + 4]
pop esi
jmp 0x546bcc
invalid
test eax, 0xdc4dd2fb
das
xor edi, dword [edx*4 + reloc.RASAPI32.dll_RasHangUpA]
call fcn.00546ac5
push eax
mov word [esp], bx
jmp 0x547446
mov edx, dword [ebp - 8]
jmp 0x546be2
jno 0x546baf
or al, 0x9f
out 0xd5, al
dec edx
fdivr dword [edi - 0x108a76b6]
jg 0x546b99
jmp 0x8fb4edc9
pushal
pop dword [esp + 1]
jmp 0x5473ff
enter 0xffffffffffff8954, 4
and al, 0xe9
xchg byte [ecx], cl
add byte [eax], al
sbb al, byte [esi]
cmc
inc ecx
imul esi, esp, 0x39fc0d6a
popal
mov al, byte [0x8ece8e3]
add byte [eax], al
push esp
mov dword [esp], eax
jmp 0x547527
call 0x54749f
in al, dx
or byte [eax], al
add al, ah
jno 0x546b97
loopne 0x546c26
loope 0x546b37
xor byte [ebx - 0x3c], 0xe2
jb 0x546b9c
jae 0x546b7d
loop 0x546c2d
loopne 0x546b44
xchg dword [edx - 0x4f], esi
jb 0x546b70
ljmp 0x2ab4:0x3ea7b405
call 0x54742e
mov word [edx + eax*4], cs
in eax, 0x14
mov al, byte [0x6809991a]
wait
pop edx
js 0x546c3a
mov dl, 0xad
mov esp, 0xa58e9
add byte [esi], cl
xchg ecx, eax
add dword [eax - 0x6d], esp
push esp
mov al, 0x12
and bh, 0x12
xchg ebp, eax
adc ecx, dword [edx + reloc.RASAPI32.dll_RasHangUpA]
jmp 0x54763f
pop dword [esp + 0x13]
jmp 0x547511
jmp 0x5473ad
mov ebx, 0x527b180a
int 0x5c
call fcn.00547557
adc bl, byte [edx + 0x589a6f08]
jo 0x546c39
jmp [edi + 0xa]
outsd dx, dword [esi]
or bh, cl
mov cl, 0x52
int 0x5c
scasd eax, dword es:[edi]
mov dh, 0x80
stc
cmp dword [edi], ecx
xchg dword [edi], eax
add al, 0
add cl, ch
cld
or dword [eax], eax
add byte [ebx - 0x3116fb3f], al
add al, 0
add byte [ebp + 0x15e68313], cl
cmpsd dword [esi], dword es:[edi]
adc eax, 0x9c6d0a94
pop edi
add dword [eax + 3], 0xe90495ba
or dword [eax], eax
add byte [ebx + 0x3dceab3b], dh
mov ds, word [ebx + 0x24d5b21c]
in eax, 0xe9
or byte [ebx - 0x1663823e], ch
outsd dx, dword [esi]
or eax, dword [eax]
add byte [edx - 0x32], cl
pop esp
cmp edx, esi
fsub dword [ebx - 0xd]
xchg esi, eax
shl byte gs:[esi], 1
push ecx
rcl byte [ebx - 0x75]
dec ebp
or cl, ch
stc
or eax, dword [eax]
add dl, al
dec eax
fidivr word [ecx - 0x1a9307b8]
jne 0x546cc5
add ecx, 4
jmp 0x547127
out dx, eax
pop ebx
xchg esp, eax
pop es
sub esp, 0x1f
lea esp, [esp + 1]
jmp 0x546ccd
push ecx
push word [esp + 3]
jmp 0x546cad
mov dword [esp + 0x20], edi
sub esp, 7
lea esp, [esp + 3]
mov edi, eax
jmp 0x546d15
pushfd
mov byte [esp + 2], ah
mov word [esp], ax
lea esp, [esp + 0x28]
mov al, byte [ecx]
call fcn.00546cf5
cmp al, 0x61
jmp 0x546d50
jb 0x509c85
stc
jmp 0x546db0
cmp al, 0x7a
jbe 0x509c9b
ja 0x509c85
lea esp, [esp + 0x24]
cmp al, 0x39
jmp 0x546e7e
jb 0x509d1e
pushal
lea esp, [esp + 0xf]
lea esp, [esp + 1]
jmp 0x546efa
lea esp, [esp + 0x20]
mov bl, byte [ecx + 1]
call fcn.00546e13
cmp bl, 0x41
jmp 0x546e25
jbe 0x509c9b
ja 0x509cb1
cld
call dword [ebx - 0x18]
add byte ss:[eax], al
add byte [esi - 0xb], dh
push ebx
call 0x546ec6
jbe 0x546e87
or al, 0xff
pushal
out 0x74, al
adc ebp, esi
pop ebx
xchg edi, eax
dec cl
push 0x424648d
jbe 0x509da6
ja 0x509d1e
lea esp, [esp + 0x10]
cmp bl, 0x5a
call 0x546ea0
lea esp, [esp + 4]
cmp bl, 0x30
push eax
jmp 0x546f1e
lea esp, [esp + 4]
jb 0x509d51
cmp bl, 0x39
pushfd
jmp 0x546fe4
mov dl, byte [ecx + 2]
pushfd
jmp 0x546f82
lea esp, [esp + 0x14]
cmp bl, 0x2f
jne 0x509ce6
je 0x509da6
lea esp, [esp + 4]
cmp dl, 0x41
jmp 0x546fc4
cmp bl, 0x2b
je 0x509da6
push ebp
sub esp, 0x10
mov word [esp + 1], di
jmp 0x546f6f
jb 0x509d7d
call 0x546fae
or al, 0x9a
or byte [edi - 0x66], ch
sub ebp, dword [esi - 1]
outsd dx, dword [esi]
or bh, cl
rol dword [eax + edx*8 + 0x46], 0x21
shl byte [ebx - 0x33], 1
pop esp
scasd eax, dword es:[edi]
lea esp, [esp + 1]
lea esp, [esp]
lea esp, [esp + 3]
jbe 0x509da6
ja 0x509d51
cmp dl, 0x30
jmp 0x547036
jbe 0x509def
ja 0x509dbc
into
pop ebx
retf
jb 0x509dbc
cmp dl, 0x39
jmp 0x547020
cmp cl, 0x41
call fcn.005470cd
lea esp, [esp + 0x10]
cmp cl, 0x5a
jmp 0x54737a
mov eax, 0x926cf4f
call fcn.0054726d
rol byte [ebp - 0x2b], 1
mov esp, 0x67748b4f
mov ds, word [ecx]
js 0x547271
cmp cl, 0x3d
pushfd
lea esp, [esp + 4]
je 0x509e05
jne 0x509ce6
lea esp, [esp + 4]
mov dword [edi], 1
jmp 0x546a79
lea esp, [esp + 4]
cmp dl, 0x3d
jne 0x546a0f
pushfd
jmp 0x54722a
cmp cl, 0x3d
setne bl
call fcn.00547292
stosd dword es:[edi], eax
lodsb al, byte ds:[esi]
retf
fdecstp
lea esp, [esp + 4]
jmp 0x546a25
jne 0x546a63
push 0x3e
jmp 0x546aa5
lea esp, [esp + 4]
cmp al, 0x2f
jne 0x546a8f
je 0x54734d
ljmp 0x65cf:0x48b9de48
push word [esp + 1]
mov dword [esp], ecx
jmp 0x54732e
ja 0x546ad1
movzx eax, al
call fcn.0054730a
push word [esp + 3]
lea esp, [esp + 8]
add eax, 4
jmp 0x546ae7
push 0x3f
jmp 0x546aa5
jbe 0x509e05
ja 0x509e1b
push 0x3f
jmp 0x546b29
jne 0x546c17
pushal
mov dword [esp + 0xf], ebx
lea esp, [esp + 0x20]
jmp 0x547386
movzx esi, bl
call 0x5473ef
jmp 0x5473d9
add esi, 4
jmp 0x546bcc
push 0x3e
jmp 0x546b29
lea esp, [esp + 4]
ja 0x546b82
jbe 0x5473b7
stosd dword es:[edi], eax
sub edi, dword [ebx - reloc.RASAPI32.dll_RasHangUpA]
pop ecx
mov eax, 0x244c889b
add dword [ebp - reloc.RASAPI32.dll_RasHangUpA], ecx
sti
cmp eax, ebp
mov dh, 0xff
invalid
lea esp, [esp + 0x1c]
cmp bl, 0x5a
call fcn.0054754c
push dword [eax - 0x1a]
xor dword [eax - 0x32], 0x84fd6de3
ja 0x5473d9
jle 0x547406
mov eax, dword [esi - reloc.RASAPI32.dll_RasHangUpA]
and al, 4
push esp
lea esp, [esp + 4]
cmp bl, 0x2b
jne 0x546afd
je 0x5473d2
pop word [esp]
jmp 0x547471
push word [esp + 2]
lea esp, [esp + 2]
lea esp, [esp + 4]
sub esi, 0x47
jmp 0x546bcc
jb 0x546b6c
jae 0x547493
int3
lea esp, [esp + 2]
mov edi, dword [edi]
stc
cmp edi, 2
jmp 0x54745b
lea esp, [esp + 4]
push 0x3e
jmp 0x546b98
cmp dl, 0x2b
jne 0x546bae
push eax
jmp 0x54747d
mov dword [esp + 7], edi
push sp
lea esp, [esp + 2]
jmp 0x547534
mov edx, dword [esp + 4]
lea esp, [esp + 8]
jmp 0x546be2
lea esp, [esp + 0x1c]
cmp dl, 0x39
jmp 0x54756d
ja 0x546c2d
movzx edx, dl
add edx, 4
jmp 0x546be2
cmp edi, 3
jne 0x547ae3
call 0x5475f5
movzx ecx, cl
jmp 0x546c51
pop edi
mov bx, word [esp]
mov ebx, 0xf5c66c8b
mov bx, dx
jmp 0x54786a
pop ebx
leave
ret
call fcn.0054769d
cmp dword [ebp + 0xc], 3
jmp 0x547b2e
and eax, edx
call fcn.00547b3e
lea esp, [esp + 4]
jmp 0x509ee9
jne 0x509f14
mov bx, 0xd785
mov bh, byte [esp]
stc
jmp 0x547b0b
mov ecx, ebp
jmp 0x547b79
lea ecx, [ecx + 0xc]
mov ebx, dword [ecx]
pop ecx
jmp 0x509ee9
cmp ecx, 0x1a
call 0x547b84
lea esp, [esp + 8]
jae 0x509ed3
not edx
mov dx, 0xd64b
jmp 0x547bc8
lea edx, [ecx + 0x41]
jmp 0x509fb9
pushal
lea esp, [esp + 0x40]
jae 0x509f6e
pushfd
jmp 0x547cbf
mov ecx, dword [ebp + 8]
jmp 0x547c5c
lea esp, [esp + 0xc]
setne dl
lea edx, [edx*4 + 0x2b]
jmp 0x509fb9
xor edx, edx
sub esp, 0xe
lea esp, [esp + 2]
cmp ecx, eax
jmp 0x547c1a
jae 0x509f2a
not ch
jmp 0x547ca8
mov byte [ecx], dl
cmp esi, 0x1a
push si
lea esp, [esp + 2]
jmp 0x547c46
jae 0x509f40
lea edx, [ecx*4]
mov dx, 0xe963
lea edx, [ecx - 4]
jmp 0x509fb9
lea ecx, [esi + 0x41]
jmp 0x509f56
lea esp, [esp + 4]
lea edx, [ecx + 0x47]
jmp 0x509fb9
cmp dword [ebp + 0xc], 2
mov dx, sp
push 0xb7e3208d
call fcn.0051910a
hlt
xlatb
dec eax
test eax, 0x518432a0
cmp dword [eax - reloc.RASAPI32.dll_RasHangUpA], ebp
jnp 0x5908de
hlt
and dword [eax + reloc.RASAPI32.dll_RasHangUpA], edi
or dword [eax + reloc.RASAPI32.dll_RasHangUpA], ebp
int 0x5b
mov eax, gs
int 0xf8
push dword [edx - 0x2d]
push 0x8c5bcd19
call fcn.0051d63a
jb 0x5908a9
retf 0x5146
jl 0x59092f
salc
inc ecx
invalid
loope 0x5908c0
insd dword es:[edi], dx
mov al, 0xe3
jb 0x59097b
sbb eax, 0x34856a05
daa
int 0x5c
out 0x9a, eax
fmul dword [edx - reloc.RASAPI32.dll_RasHangUpA]
cmpsd dword [esi], dword es:[edi]
mov bh, 0xca
sub al, 0x99
out 0xb9, eax
bound eax, qword [edi]
wait
inc esi
adc dword [esi - reloc.RASAPI32.dll_RasHangUpA], esp
sub edi, dword [edi - reloc.RASAPI32.dll_RasHangUpA]
mov word [edi + ebp*4 - 0xa86d0dc], ds
sahf
inc ebx
xlatb
jmp 0x59090d
add byte [edx], ch
mov edx, 0x6919a578
inc eax
in eax, 0xcc
fistp qword [edx]
mov fs, word [ebp + 0x57]
jne 0x5909f6
int3
bound edi, qword [edi]
jp 0x590a0c
adc byte [ebx + 0x7d], bh
cmp edi, dword [reloc.RASAPI32.dll_RasHangUpA]
lcall 0, 0x9d9b309c
add byte [eax], al
add byte [eax], al
or ecx, ebp
push ebp
xchg ebp, eax
pop edx
clc
mov al, byte [ecx + 0x14f2524e]
dec ebx
cmp eax, 0x5c6fb327
dec esp
mov dh, al
out dx, eax
jno 0x590984
sbb ch, byte [esi + 0x79]
pop eax
mov ebx, 0xef5bc939
xchg ebp, eax
pop ds
imul byte [edi]
mov esp, 0xb09b626a
sub dword [edi - reloc.RASAPI32.dll_RasHangUpA], esi
aam 0xec
sub dword [esi - 0x44], esi
fdivrp st(6)
call 0xe86a05be
dec esp
add byte [eax], al
add cl, dh
ljmp 0xf703
or byte [edx - 0x3819b6be], dh
in al, dx
cli
xor al, 0x80
xchg edx, eax
or eax, 0xb468ef9c
hlt
clc
jmp [eax + 7]
push 0xeff779e9
call fcn.0051b59e
lds ecx, [ecx - 0x27]
mov eax, 0x8b68fa4b
and bl, byte [ebp - 0x54]
mov edi, 0x730462f4
lodsb al, byte [esi]
lds edx, [edx - 0x48c7cf79]
adc dword [esp + ebp*4 + 0x63], 0xffffffef
imul esi, edx, 0x24
adc ch, 0x92
cli
mov al, byte [0xb3c10007]
lcall 0x5b06, 0x751d98c8
popfd
int1
sub bh, dl
stosb byte es:[edi], al
sub dh, byte [ebp + edx*4 + 0x6ee2a7ea]
pop ds
sti
add esi, ebp
fdivr qword [0xa5d9e9ba]
ret
cmp al, 0x75
mov cl, byte [edx - 0x39]
push edi
xor al, cl
jns 0x59665b
invalid
aad 0x44
invalid
mov edx, 0x68926556
cmp ch, byte [eax + 0x3e8078a]
or al, bh
push edi
fisubr word [ecx]
dec eax
jne 0x5966d1
psraw mm2, qword [edx + 0x5d]
loope 0x5966e5
pop ebp
push es
inc esp
cmpsb byte [esi], byte es:[edi]
and byte [edx], dl
ror esi, 0xf2
cmpsb byte [esi], byte es:[edi]
in eax, dx
cmp edx, edi
sub byte [ecx - 0x42fd148d], dh
mov word [eax + 0x4c], gs
xor byte [edx - 0x74], bl
push 0x8c5a304c
call fcn.0051d63a
adc eax, 0xa55633a3
popal
xchg cx, ax
adc byte [ebx + 0x5c3fa50a], dl
jne 0x596656
pop dword [ebx - 0x4f]
salc
popal
je 0x59667c
rcl ecx, 0xf
ror dword [edi], 1
jne 0x596691
cli
inc esi
out dx, eax
mov dh, 0x8a
mov ebx, dword [ebp + reloc.RASAPI32.dll_RasHangUpA]
mov cl, byte [ebx - 0x55c39763]
dec esp
mov ebx, 0xc5d017f4
outsb dx, byte [esi]
jbe 0x596724
jb 0x596713
out 0x2d, al
invalid
cwde
cwde
fcom dword [ecx + 0x6bf93846]
lodsb al, byte [esi]
iretd
pop edx
enter 0x5aaf, 0xffffffffffffffec
cmp edx, dword [edx]
lea ebx, [edi + ebp*2]
jbe 0x596797
push esi
je 0x59678b
mov esp, dword [eax - reloc.RASAPI32.dll_RasHangUpA]
or ebx, dword [eax + 0x35]
enter 0x561d, 0xfffffffffffffff9
xchg edx, eax
int 0x7b
ror dword [ebx], 0x58
xor eax, 0xf9561dc8
jo 0x5966c9
cmp eax, 0x3c5fcc03
jl 0x596750
sbb edx, dword [esi]
xchg edi, eax
cmpsd dword [esi], dword es:[edi]
jp 0x596759
cmp al, byte [esp + edi - 0x1b73f48e]
adc dword [ecx + 0x69], esp
loop 0x5967ab
mov al, byte [0xac571de3]
mov dword [eax], eax
xor dword [edx], ecx
lodsd eax, dword [esi]
jae 0x596756
add byte [ecx], dh
or ch, byte [ebp + 0x5f6d0073]
insd dword es:[edi], dx
pop edi
mov esp, 0xb2b09bed
in eax, dx
wait
mov al, 0xb2
retf 0x95cc
and al, 0x65
in eax, dx
push eax
dec esi
pop ecx
mov ecx, 0x77c78df9
pop edx
cmp al, 0xd4
push esi
push es
fldenv [edx - 7]
push ebp
stc
xchg ecx, eax
invalid
mov bl, 0xeb
cmp ecx, dword [edi]
xchg edi, eax
inc esi
int 0xb3
jg 0x59681c
push 0xffffffffffffffdb
cwde
ficomp dword [ecx]
invalid
insd dword es:[edi], dx
push es
clc
dec dword [esi]
cdq
clc
fisttp dword [ebp + 0x19]
dec edx
loope 0x59687b
loope 0x5967b5
stosb byte es:[edi], al
ret
push edx
adc eax, 0x837e71be
cmp dl, byte [0x7329f784]
invalid