Function at 0x54a0a3
Capabilities:
Encrypt data using speck

Disassembly:
lea esp, [esp + 2]
jmp 0x57f971
push ebx
jmp 0x57f9bb
mov eax, 0x403
jmp 0x57f535
push esi
lea esp, [esp + 4]
cmp al, 0x2b
jmp 0x57f98b
sahf
mov eax, dword [reloc.MSVCRT.dll_strncpy]
adc al, 0x87
mov dl, byte cs:[ecx + 2]
mov dl, byte [ecx + 2]
jmp 0x57fa96
cmp bl, 0x61
call 0x57fa22
mov ah, 0x4f
ja 0x54a115
je 0x54a15a
cmp dl, byte [ecx + 0x5ccdaf3d]
scasd eax, dword es:[edi]
mov dh, 0xe8
mov ebx, dword [ebx + 3]
add byte [edx + 0x6b], dh
call 0x57fcda
jb 0x54a1bc
cmp bl, 0x39
pushfd
jmp 0x57fc91
outsb dx, byte [esi]
push ecx
mov esp, 0xbdddb1cd
and byte ss:[ecx - 0x16a5dc20], 0x8f
lock add dword [eax], eax
mov ch, 0xa4
xlatb
push ds
invalid
jmp 0x57fb41
cmp dl, 0x61
jb 0x54a1d2
jae 0x54a1a3
rep movsd dword es:[edi], dword [esi]
jmp 0x5dd042
cmp dl, 0x7a
jbe 0x54a17e
ja 0x54a1d2
rep movsb byte es:[edi], byte [esi]
jmp 0x5dd0bd
cmp bl, 0x2b
call fcn.0057fa7e
popfd
in al, dx
inc esi
invalid
call 0x57fad0
lea esp, [esp + 2]
cmp dl, 0x30
jb 0x57f489
jae 0x57faba
adc eax, 0x58
add eax, dword [eax]
jno 0x54a25c
jae 0x54a258
dec esi
dec ebx
aad 0xd4
sub byte [edi], 0x50
invalid
adc eax, 0xd2f22d8a
jecxz 0x54a27a
xchg ecx, eax
mov ebp, 0xd94e5dca
cmp byte [ebx - 0x17], dl
inc edx
add eax, dword fs:[eax]
inc ecx
lcall 0x790d, 0xd8fe0e8
adc al, 0x67
lds esp, [esp + edi*4 + 0x36]
xchg ecx, eax
cmp eax, 0x6d721b53
jl 0x54a1e5
jmp 0x580675
jmp 0x580644
js 0x54a21f
dec edi
salc
inc ecx
ret
cmp ecx, 0x34
jmp 0x5806ed
push 0x3e
jmp 0x54a27c
ret 0xf7d
bswap eax
bswap eax
sub esp, 0x1a
lea esp, [esp + 2]
jmp 0x580793
pushfd
jmp 0x58074a
call 0x58070b
lea esp, [esp + 4]
jae 0x54a2b1
call fcn.00580760
lea esp, [esp + 4]
lea edx, [ecx - 4]
jmp 0x54a2f0
mov ecx, dword [ebp + 8]
stc
sub esp, 0x14
jmp 0x5807bf
cmp dword [ebp + 0xc], 2
jmp 0x580869
cmp esi, 0x34
jmp 0x5807ca
call fcn.00580806
xchg esp, eax
and al, 0xb
push ebp
in eax, 0xbf
sbb eax, 0xe9d53dbc
inc edi
sbb al, 0x6f
jbe 0x54a3ce
call fcn.005808da
mov al, byte [0x4a751ae3]
push edi
je 0x54a3c3
adc al, 0x12
dec esp
push 0x67
xchg ebx, eax
or ah, byte [ebp + 0x242c6d4]
cmp eax, 0x35f73e9
add byte [edi + edx*4 - 2], ah
leave
lodsb al, byte [esi]
pop edi
push ss
test al, 0xa2
retf 0x65eb
mov byte [edx + 2], 0x3d
jmp 0x5802ff
jmp fcn.00569241
into
mov dh, 0xa1
loopne 0x54a3eb
call 0x580962
lea esp, [esp + 8]
and al, 8
jmp 0x58094c
jmp 0x54a39c
xor al, 0x24
test ecx, ecx
call fcn.0057f4ac
leave
ret
call 0x57faf5
cmp ah, byte [ecx + 0x13a35031]
jl 0x57f478
jo 0x57f4af
loop 0x57f4ed
mov dword [reloc.MSVCRT.dll_strncpy], eax
mov esi, 0x8d144d8b
and al, 4
dec dword [ebp + 0x14]
jmp 0x57f480
add al, 0xf
test dword [eax + edi*8 - 1], eax
jmp dword [esi + 0x50]
cmp cl, 0x61
pushal
jmp 0x57fbdd
cmp cl, 0x30
pushfd
pushal
jmp 0x57fbec
cmp dl, 0x3d
jmp 0x57f509
push eax
lea esp, [esp + 4]
jne 0x57f59c
je 0x57fd1e
xchg dword [ebx], ebp
mov ebx, 0xceac2dde
dec esp
ret 0x54a5
push bx
lea esp, [esp + 2]
jmp 0x580292
jmp 0x57fc13
cmpsb byte [esi], byte es:[edi]
push ebp
out 0x54, al
aam 0x4a
sub eax, 0x80c118dc
inc ebx
cli
aad 0xe8
sbb al, byte [eax]
add byte [eax], al
call 0x57f583
inc edi
invalid
jmp 0x57fd9a
push 0x3e
jmp 0x57f5c8
and al, 4
cmp al, 0x2f
jmp 0x57fd81
jmp 0x57fd29
jmp 0x58121c
mov edx, 0xd1ed2cdd
push eax
ror dword [edx - 0x1b], cl
call 0x57fdb3
out 0x6c, eax
loop 0x57f556
je 0x57f585
jns 0x57f5bf
mov byte [ebx - 0x3a], bh
fdivr dword [ebx]
adc cl, byte [ebp + 0x7dfe81c]
add byte [eax], al
call 0x57fdc2
jl 0x57f5d1
bound eax, qword [0xf96a44f4]
imul ecx, dword [eax], reloc.MSVCRT.dll_strncpy
xchg edx, eax
or eax, 0x63f3649c
push es
cmc
xor byte [edx - 0xc], bh
push 0xd
cld
cmp ch, byte [ecx + 0x71]
adc bl, ah
push edi
mov al, byte [0x8d14458b]
cmp al, 0xc
call fcn.0057fe65
das
mov bl, 0x23
inc esi
mov ch, 3
aaa
mov ah, 0x2a
dec ebp
mov esp, 0xa3602109
fidiv dword [reloc.MSVCRT.dll_strncpy]
jmp 0x57fe33
add byte [eax], al
lcall 0x5cb3, 0x3f09101
ret 0x3750
jmp 0x57febb
cmp dl, 0x2f
jmp 0x57ff36
jmp 0x57ffce
jmp 0x57fdd8
pushfd
lea esp, [esp + 4]
cmp dl, 0x39
jmp 0x57ff49
call 0x57ff20
les eax, [edi - 0x29]
mov dl, 0x41
invalid
call 0x57ffb1
pop ebx
invalid
cmp al, 0x5a
jmp 0x580281
push cx
lea esp, [esp + 2]
jmp 0x580118
jmp 0x58017c
pushal
mov word [esp + 5], bp
jmp 0x5801a3
push ecx
jmp 0x580039
jmp 0x58022b
cmp al, 0x39
jmp 0x57f97f
lea esp, [esp + 4]
cmp al, 0x30
jb 0x54a0e8
jmp 0x57f95b
jbe 0x54a0bc
ja 0x54a0e8
je 0x54a0bc
sub esp, 0x1e
lea esp, [esp + 2]
jmp 0x57f9d8
pushfd
jmp 0x58026b
lea esp, [esp + 4]
mov bl, byte [ecx + 1]
sub esp, 0xf
lea esp, [esp + 3]
jmp 0x57fa0a
lea esp, [esp + 0x1c]
cmp al, 0x2f
jne 0x54a0d2
je 0x54a0bc
jb 0x54a134
cmp bl, 0x5a
pushfd
lea esp, [esp + 4]
jmp 0x57fa16
lea esp, [esp + 0xc]
mov byte [ebp - 1], bl
cmp bl, 0x41
jmp 0x57f9ea
jbe 0x54a11e
ja 0x54a134
lea esp, [esp + 4]
jb 0x54a14a
jae 0x57fa5a
xchg byte [0xbd0ffc95], al
xor al, 0x27
dec esi
fnstcw word [eax]
jbe 0x54a11e
ja 0x54a14a
pop ds
lahf
punpckhdq mm3, qword [ecx + 0x7c6d7216]
dec edi
cmp bl, 0x7a
pushal
mov dword [esp + 0xe], esi
lea esp, [esp + 0x20]
jmp 0x57fa44
cmp dl, 0x41
call fcn.0057fa80
lea esp, [esp + 8]
cmp dl, 0x5a
jmp 0x57fae9
cmp dl, 0x39
call 0x57fb0b
mov eax, dword [eax]
xchg esi, eax
int1
add dh, al
aaa
mov ebp, 0x7ac7342d
or al, 0x9f
mov dword [esp], ebp
pop word [esp]
jmp 0x54a1d7
jbe 0x54a17e
ja 0x54a194
jmp 0x57fb1b
lea esp, [esp + 4]
cmp dl, 0x2b
jmp 0x57fbca
mov cl, byte [ecx + 3]
sub esp, 0x11
pop word [esp + 3]
lea esp, [esp + 3]
jmp 0x57fb9b
je 0x54a17e
cmp dl, 0x3d
jne 0x54a0d2
je 0x54a17e
lea esp, [esp + 0x14]
cmp cl, 0x5a
jmp 0x57fbab
sub esp, 0x13
lea esp, [esp + 3]
jmp 0x57fb6c
lea esp, [esp + 0xc]
cmp cl, 0x41
jb 0x57f4be
pushfd
jmp 0x57fb82
jbe 0x57f500
ja 0x57f4be
mov bh, 0x20
mov dh, 0xd1
and ah, ah
retf
je 0x54a17e
pushal
lea esp, [esp + 0x20]
cmp dl, 0x2f
jmp 0x57fb57
lea esp, [esp + 0x20]
jb 0x57f4ea
cmp cl, 0x7a
jmp 0x57fc64
lea esp, [esp + 0x24]
jb 0x57f54e
jae 0x57fc29
push ds
test byte [edx], bl
jge 0x57fb89
dec ebp
mov cl, 0xb0
mov bl, 0xaa
lds esi, [eax + eax*4 - 5]
das
jne 0x54a0d2
je 0x54a11e
push bx
lea esp, [esp + 2]
jmp 0x57fc3e
cmp cl, 0x39
push dx
lea esp, [esp + 2]
jbe 0x57f500
ja 0x57f54e
cmp cl, 0x2b
call 0x57fc47
pop ebx
lea esp, [esp + 4]
je 0x57f500
jne 0x57fc70
test eax, 0x30c1a630
xor byte [ecx + 0x37c4bd2d], 0x84
mov esp, 0x4081168f
jbe 0x57f500
ja 0x57f4ea
cmp cl, 0x2f
call 0x57fc79
add esp, dword [esi - 0x71]
add al, 0x24
lea esp, [esp + 2]
jmp 0x57fcb7
lea esp, [esp + 4]
jbe 0x54a11e
ja 0x54a1bc
cmp cl, 0x3d
jmp 0x57fd4e
je 0x57f500
cmc
pushfd
lea esp, [esp + 4]
jmp 0x57fca1
lea ebp, reloc.MSVCRT.dll_strncpy
call 0x57fcec
nop
push ss
test bl, ah
push ds
scasd eax, dword es:[edi]
add cl, byte [ebx + 0x388d7e1b]
scasb al, byte es:[edi]
mov ecx, 0x52d2fb98
push edx
mov edx, edi
push ebp
mov ebp, 0xae1ee252
jmp 0x57fd02
xor ebx, ebx
cmc
cmc
cmp cl, 0x3d
jmp 0x57fd36
setne bl
jmp 0x57fd7c
je 0x57f500
jne 0x54a0d2
mov dword [edi], ebx
pushal
lea esp, [esp + 0x40]
mov bl, byte [ebp - 1]
jmp 0x57f57a
inc ebx
inc ebx
pushal
jmp 0x57fd5a
jne 0x57f5b2
je 0x57fdac
test dword [ecx], ecx
cdq
clc
or ecx, edi
and eax, 0xaa5f38aa
sbb al, 0x4b
loop 0x57fdb5
insb byte es:[edi], dx
jg 0x57fdd7
cmp al, 0x2b
jne 0x57f564
sub ecx, dword [edi]
test edx, eax
idiv edi
call dword [edx - 0x73]
and al, 4
push edx
lea esp, [esp + 4]
jmp 0x57f57f
push 0x3f
jmp 0x57f5c8
push esp
and al, 1
lea esp, [esp + 4]
pop eax
jmp 0x57f5de
inc byte [ebx - 0x116b818]
idiv edi
inc dword [eax + reloc.MSVCRT.dll_strncpy]
add byte [eax], al
add cl, cl
mov word [esp + 1], sp
mov word [esp + 1], bx
jmp 0x57ff67
sub eax, 0x47
jmp 0x57f5de
ja 0x57f6e6
pushal
mov byte [esp + 0x1c], ch
lea esp, [esp + 0x20]
sub eax, 0x41
jmp 0x57f5de
cmp bl, 0x2f
call fcn.0057fe1d
pop esi
jmp 0x57f645
mov edi, dword [edi]
call fcn.0057fea5
lea esp, [esp + 4]
jb 0x57f6bb
jae 0x57fef0
lea esp, [esp + 4]
jne 0x57f6a5
je 0x57fef9
rol dword [edx - 0x30], 1
mov bh, 0x42
int1
cmp dword [edx], 0x15
test byte [ebp - 0x7cfbdb9c], cl
inc dword [edx]
call 0x57fec2
clc
cmp dl, 0x2b
call 0x57fece
push 0x3e
jmp 0x57f716
jne 0x57f6fc
push 0x3f
jmp 0x57f716
ja 0x57f84d
pushal
push eax
lea esp, [esp + 0x24]
jmp 0x58013b
lea esp, [esp + 4]
jne 0x57f62f
push 0x3e
jmp 0x57f618
mov edx, dword [ebp - 8]
jmp 0x57f72c
lea esp, [esp + 4]
cmp dl, 0x5a
movzx edx, dl
call fcn.0057fffc
movzx ecx, cl
sub esp, 0x11
lea esp, [esp + 1]
jmp 0x580064
lea esp, [esp + 0x10]
add ecx, 4
jmp 0x57f7d9
shl eax, 6
or eax, esi
shl eax, 0xc
jmp 0x580170
lea esp, [esp + 4]
cmp edi, 2
call fcn.0058014c
jmp 0x580194
movzx edx, dl
push ax
lea esp, [esp + 2]
add edx, 4
jmp 0x57f72c
mov esi, edi
neg esi
bswap esi
mov esi, dword [esp]
cmc
jmp 0x580122
cmp edi, 3
pushal
lea esp, [esp + 0x20]
jne 0x57f835
je 0x5801b9
inc ebp
salc
inc esp
and ebx, esi
insd dword es:[edi], dx
invalid
jns 0x5801ee
mov ebx, 0x8dd00992
and al, 4
jmp 0x57f809
mov ecx, dword [ebp + 8]
jmp 0x5801c0
or eax, ecx
jmp 0x57f835
mov edx, eax
shr edx, 0x10
lea esp, [esp + 0x20]
jmp 0x5801fa
mov edx, eax
jmp 0x580252
mov ch, 0x20
mov dh, 0xd1
and ch, ah
invalid
mov byte [ecx], dl
cmp edi, 2
jb 0x57f863
mov dh, ch
jmp 0x5801e4
cmp edi, 3
call 0x580234
pop word [si]
and al, 0x8d
and al, 2
jne 0x57f9a5
je 0x580263
xchg ebp, eax
or al, 0x82
in eax, 0x14
cmpsb byte [esi], byte es:[edi]
add eax, 0x9b680999
sub byte [eax + 0x5b], bh
shr edx, 8
push di
lea esp, [esp + 2]
mov byte [ecx + 1], dl
jmp 0x57f863
mov byte [ecx + 2], al
jmp 0x57f9a5
xor eax, eax
jmp 0x5802a8
movzx eax, al
push edi
pop word [esp]
lea esp, [esp + 2]
jmp 0x57fe06
pop edi
jmp 0x5802c7
lea esp, [esp + 4]
jmp 0x57f535
pop ebx
call fcn.005802b1
xor ecx, ecx
clc
jmp 0x58090d
call fcn.00580aa5
aad 0x52
shl byte [edi - 0x28aa1eae], 0x47
and dl, cl
insb byte es:[edi], dx
retf 0x9465
call fcn.0058097e
lea esp, [esp + 4]
cmp dword [ebp + 0xc], 3
pushal
push dword [esp + 0x1a]
lea esp, [esp + 0x21]
jmp 0x580967
pop edi
jmp 0x580ac5
call 0x5809e8
ror byte [edx + eax*8 - 0x5b], 0x54
xchg edx, eax
push esi
invalid
mov byte [edx + 3], cl
jmp 0x580341
lea esp, [esp + 4]
cmp dword [ebp + 0xc], 3
jmp 0x580666
jne 0x54a22e
mov ebx, dword [esp]
and eax, edx
not ebx
jmp 0x5806ac
push ax
call fcn.00580696
or eax, 0x996a0f9f
pop ss
invalid
lea ebx, [ebx*4]
pushal
mov esi, dword [esp]
mov dword [esp + 0x10], eax
popal
jmp 0x54a274
jae 0x54a2c7
mov dx, di
mov dx, ax
jmp 0x580721
lea edx, [ecx + 0x41]
jmp 0x54a2f0
lea edx, [ecx + 0x47]
jmp 0x54a2f0
lea esp, [esp + 0x10]
cmp ecx, 0x1a
jae 0x54a25e
jmp 0x580703
xor edx, edx
jmp 0x58076b
cmp ecx, eax
push eax
lea esp, [esp + 8]
setne dl
jmp 0x58077b
lea edx, [edx*4 + 0x2b]
jmp 0x54a2f0
lea esp, [esp + 0x18]
pop eax
sub esp, 0x13
mov byte [esp + 0x10], bh
lea esp, [esp + 3]
jmp 0x58073b
jae 0x54a32b
mov ch, ah
mov cl, 0x1d
mov cx, dx
jmp 0x5807e8
lea esp, [esp + 0x14]
mov byte [ecx], dl
cmp esi, 0x1a
jmp 0x5807a5
jae 0x54a357
xchg ch, cl
setl cl
jmp 0x580833
lea ecx, [esi + 0x41]
jmp 0x54a306
lea ecx, [esi + 0x47]
jmp 0x54a306
mov edx, dword [ebp + 8]
push ax
mov byte [esp], bh
push word [esp]
jmp 0x580a7a
cmp ebx, 0x34
jmp 0x580a0b
push edx
lea esp, [esp + 1]
lea esp, [esp + 4]
cmp edi, 0x1a
call fcn.005808c2
cmp edi, eax
jmp 0x58092b
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x54a3c8
mov byte [edx + 2], cl
jmp 0x5802ff
lea esp, [esp + 3]
jmp 0x58098b
jne 0x5802e9
cmp ebx, 0x1a
push cx
mov word [esp], sp
jmp 0x5809d4
lea esp, [esp + 0x20]
lea ecx, [ebx + 0x41]
jmp 0x5804e6
lea esp, [esp + 2]
jae 0x580882
lea ecx, [ebx*4]
pushal
jmp 0x5809bc
jae 0x58039e
lea ecx, [ebx + 0x47]
jmp 0x5804e6
lea esp, [esp + 4]
mov byte [edx + 1], cl
jb 0x54a383
sub esp, 1
jmp 0x5808fc
pop ebp
ret
pop esi
bswap ebp
pop ebx
lea ebp, reloc.MSVCRT.dll_strncpy
mov ebp, 0x18d106b
jmp 0x580aaf
cmp al, 0x39
ja 0x57f755
movzx eax, al
call fcn.00580afd
push 0x29fa46ad
call fcn.00559ba8
add ah, byte [esi - 0x3cbda424]
vpmaxsq zmm3 {k6}, zmm5, zmmword [ecx - 0x280]
loope 0x5dd07b
arpl word [eax], si
pop ebp
or ecx, dword fs:[eax]
push esp
cmp dword [eax + reloc.MSVCRT.dll_strncpy], esp
jge 0x5dd084
xchg dword [eax - 0x39], ebp
aad 0xf3
xlatb
call fcn.0055c710
xchg ebp, eax
add al, 0xb7
sahf
sub bl, ah
mov esp, 0x72541ad0
insb byte es:[edi], dx
add byte [eax], al
xchg dl, dh
stosb byte es:[edi], al
and al, 0xa3
daa
add dword [edx], esi
push 0x707ed54f
push ss
mov byte ds:[eax], bl
sbb dh, byte [eax]
jecxz 0x5dd0d0
dec esi
invalid
push 0xd7f3d416
call fcn.0055c710
mov ebp, 0xb0987f50
xchg edx, eax
iretd
cmp eax, 0x722f8f7c
stosb byte es:[edi], al
imul edi, dword [ebp - 0x72], 0x78ba3d1d
mov es, word [eax]
add byte [eax], al
add byte [ebx + ebx*2 + 0x47ea8ce9], bh
sbb dword [ecx], edx
mov dl, 0xaa
invalid