Function at 0x5784f5
Capabilities:
Encrypt data using speck

Disassembly:
call fcn.0057794d
inc ebx
inc ecx
dec esp
dec esp
and byte [ebx + 0x79], dh
insd dword es:[edi], dx
bound ebp, qword [edi + 0x6c]
and byte [ebp + 0x75], ch
jae 0x576a88
and byte [esi + 0x6f], ch
je 0x576a39
js 0x576a7f
and byte fs:[edx], dh
and byte ss:[ebx + 0x68], ah
popal
jb 0x576a89
arpl word [ebp + 0x72], si
jae 0x576a2e
call fcn.0057794d
pop edi
inc ebx
dec esp
dec ebx
inc esi
push edx
inc ebp
push ecx
das
pop edi
pop eax
dec ecx
dec esi
inc esi
push edx
inc ebp
push ecx
and byte [esi + 0x6f], ch
je 0x576a69
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
ja 0x576ab4
and byte fs:[edi + 0x69], dh
je 0x576abd
and byte [edx + 0x43], dl
inc esi
inc ecx
push ebx
push esp
das
push edx
inc ebx
push ebx
dec esp
dec edi
push edi
add al, ch
in al, 0xe
add byte [eax], al
pop edi
inc ebx
dec esp
dec ebx
inc esi
push edx
inc ebp
push ecx
das
pop edi
pop eax
dec ecx
dec esi
inc esi
push edx
inc ebp
push ecx
and byte [ebx + 0x70], dh
arpl word gs:[ecx + 0x66], bp
imul esp, dword [ebp + 0x64], 0x74697720
imul esp, dword [esi + 0x69], 0x77206465
imul esi, dword [eax + ebp*2 + 0x6f], 0x5f207475
push 0x2074756f
pop edi
outsd dx, dword [esi]
jne 0x576b00
and byte [edi + 0x43], bl
inc ebx
dec esp
dec ebx
dec ebp
dec edi
inc esp
inc ebp
add al, ch
mov dl, 0xe
add byte [eax], al
inc esp
imul esi, dword [esi + 0x69], 0x62206564
jns 0x576ac5
jp 0x576b0c
jb 0x576b18
add al, ch
sahf
push cs
add byte [eax], al
call fcn.0057794d
inc esp
jae 0x576b27
imul ebp, dword [esi + 0x61], 0x6e6f6974
outsb dx, byte [esi]
popal
je 0x576b21
outsd dx, dword [esi]
outsb dx, byte [esi]
and byte [edx + 0x65], dh
imul esi, dword [bp + di + 0x74], 0x63207265
popal
outsb dx, byte [esi]
outsb dx, byte [esi]
outsd dx, dword [esi]
je 0x576aeb
js 0x576b31
and byte fs:[ecx + esi], ah
inc esi
inc esi
add al, ch
jno 0x576ae8
call fcn.0057794d
add byte [eax], al
inc ebp
js 0x576b4f
arpl word gs:[ebp + 0x64], si
and byte [ecx + 0x6e], ah
and byte [ecx + 0x73], ah
jae 0x576b51
popal
jae 0x576b5e
insd dword es:[edi], dx
insd dword es:[edi], dx
bound ebp, qword [ecx + edi*2 + 0x20]
arpl word gs:[eax + 0x6f], si
jb 0x576b1b
outsb dx, byte gs:[esi]
and byte fs:[edi + 0x66], ch
and byte [ecx + ebp*2 + 0x6e], ch
and byte [ecx + ebp*2 + 0x6e], ch
add al, ch
inc ecx
push cs
add byte [eax], al
call fcn.0057794d
inc ebp
js 0x576b7f
arpl word gs:[ebp + 0x64], si
and byte [ecx + 0x6e], ah
and byte [ecx + 0x73], ah
jae 0x576b81
popal
jae 0x576b8e
insd dword es:[edi], dx
insd dword es:[edi], dx
bound ebp, qword [ecx + edi*2 + 0x20]
arpl word gs:[eax + eax - 0x18], si
add al, ch
call fcn.0057794d
and byte [esi], cl
add byte [eax], al
inc ebp
js 0x576ba0
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x6e], ah
and byte [ecx + 0x73], ah
jae 0x576ba2
insd dword es:[edi], dx
bound ebp, qword [ecx + edi*2 + 0x20]
imul ebp, dword [esi + 0x73], 0x63757274
je 0x576bb4
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, ch
cli
or eax, 0x78450000
jo 0x576bbc
add byte [eax], al
inc ebp
js 0x576bc6
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
bound ebp, qword [ecx + 0x6e]
popal
jb 0x576bdd
and byte [edi + 0x70], ch
jb 0x576bcb
je 0x576bdb
jb 0x576b8e
outsd dx, dword [esi]
jb 0x576b91
and ch, byte [ecx]
and al, byte [eax]
call fcn.0057794d
inc ebp
js 0x576bed
arpl word gs:[ebp + 0x64], si
and byte [ecx + 0x20], ah
je 0x576be6
and byte fs:[ecx + 0x20], ah
arpl word [edi + 0x6e], bp
jae 0x576bfe
popal
outsb dx, byte [esi]
je 0x576bae
outsb dx, byte [esi]
popal
insd dword es:[edi], dx
add al, ch
mov ch, 0xd
add byte [eax], al
inc ebp
js 0x576c0b
arpl word gs:[ebp + 0x64], si
and byte [ecx + 0x20], ah
arpl word [edi + 0x6e], bp
and byte [ebx + 0x6f], ah
outsb dx, byte [esi]
jae 0x576c1c
popal
outsb dx, byte [esi]
je 0x576bd8
and byte [ebp + 0x6e], dh
outsb dx, byte [esi]
popal
jb 0x576c2b
and byte [edi + 0x70], ch
jb 0x576c19
jo 0x576c1b
jb 0x576c19
je 0x576c29
jb 0x576be8
and byte [edi + 0x72], ch
and byte [edx], ah
sub byte [edx], ah
add al, ch
test byte [0x78450000], cl
call fcn.0057794d
inc ebp
js 0x576c3c
or eax, 0x78450000
jo 0x576c32
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
inc esp
inc ecx
push esp
and byte [ebx + 0x79], dh
jae 0x576c53
insd dword es:[edi], dx
bound ebp, qword [edi + 0x6c]
insb byte es:[edi], dx
add al, ch
imul ecx, dword [0x78450000], 0x74636570
and byte fs:[ecx + 0x6e], ah
jo 0x576c4d
arpl word [ebp + 0x64], si
and byte [ecx + 0x6e], ah
popal
outsb dx, byte [esi]
and byte [ebp + 0x78], ah
jo 0x576c66
jae 0x576c6a
imul ebp, dword [edi + 0x6e], 0x72657420
insd dword es:[edi], dx
add al, ch
dec eax
or eax, 0x78450000
jo 0x576c6e
arpl word [ebp + 0x64], si
and byte fs:[ecx + 0x6e], ah
and byte [ecx + 0x6e], ah
and byte [ecx + 0x6e], ch
jae 0x576c89
jb 0x576c8c
arpl word [ecx + ebp*2 + 0x6f], si
imul ebp, dword [edi + 0x6e], 0x20726f20
jbe 0x576c83
outsb dx, byte [esi]
and byte [edi + 0x72], ch
and byte [esi + 0x61], dh
jb 0x576c8d
popal
bound ebp, qword [ebp]
call fcn.0057794d
inc ebp
js 0x576ca1
or eax, 0x78450000
jo 0x576c97
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ecx + 0x6c], sp
popal
insb byte es:[edi], dx
and byte [ebx + 0x79], dh
insd dword es:[edi], dx
bound ebp, qword [edi + 0x6c]
add al, ch
add cl, byte [0x78450000]
jo 0x576cb4
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
insd dword es:[edi], dx
insd dword es:[edi], dx
outsd dx, dword [esi]
jb 0x576cd5
and byte [esi + 0x61], dh
jb 0x576cca
popal
bound ebp, qword [ebp + 0x20]
popal
je 0x576ccf
jb 0x576c8c
and al, byte [eax + 0x22]
add al, ch
fmul dword [eax + eax]
add byte [ebp + 0x78], al
jo 0x576cde
and al, byte [eax]
call fcn.0057794d
inc ebp
js 0x576ce8
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
jae 0x576cf7
bound esi, qword [edx + 0x6f]
jb 0x576cf4
jne 0x576cfb
imul ebp, dword [esi + 0x65], 0x6d616e20
and byte gs:[esi + 0x61], ch
popal
insd dword es:[edi], dx
add al, ch
mov eax, 0x4500000c
js 0x576d08
jo 0x576cfe
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
jae 0x576d17
jne 0x576d05
bound esi, qword [edx + 0x6f]
jb 0x576d14
jne 0x576d1b
imul ebp, dword [esi + 0x65], 0x20726f20
outsd dx, dword [esi]
bound ebp, qword [edx + 0x65]
arpl word [eax + 0x6e], si
popal
and byte [esi + 0x61], ch
insd dword es:[edi], dx
add al, ch
mov cs, word [eax + eax]
add byte [ebp + 0x78], al
jo 0x576d28
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
je 0x576d31
jb 0x576d3b
imul ebp, dword [esi + 0x61], 0x676e6974
outsb dx, byte [esi]
popal
je 0x576d3c
outsb dx, byte [esi]
and byte [bx + di + 0x75], dh
and byte [ecx + 0x75], dh
outsd dx, dword [esi]
je 0x576d40
add al, ch
insb byte es:[edi], dx
or al, 0
add byte [ebp + 0x78], al
jo 0x576d4a
arpl word [ebp + 0x64], si
and byte fs:[ecx + 0x20], ah
and byte [ecx + 0x20], ah
jne 0x576d5c
imul esi, dword [ecx + 0x75], 0x626f2065
push 0x65
bound ebp, qword [edx + 0x65]
arpl word [eax + 0x6e], si
popal
insd dword es:[edi], dx
add al, ch
add al, ch
dec ecx
or al, 0
add byte [ebp + 0x78], al
jo 0x576d6d
js 0x576d77
arpl word gs:[ebp + 0x64], si
arpl word [ebp + 0x64], si
and byte [ecx + 0x20], ah
jbe 0x576d72
jb 0x576d7c
popal
bound ebp, qword [ebp]
add al, ch
xor byte [eax + eax], cl
add byte [ebp + 0x78], al
jo 0x576d86
add byte [eax], al
arpl word [ebp + 0x64], si
and byte [edi + 0x72], ch
and ah, byte [ebx]
and al, byte [eax]
call fcn.0057794d
popal
and byte [edi + 0x72], ch
and byte [ecx + 0x73], ah
jae 0x576ddf
insd dword es:[edi], dx
insb byte es:[edi], dx
jns 0x576d9f
jne 0x576e06
and byte [eax + 0x61], dh
and byte fs:[ecx + 0x20], ah
and byte fs:[ecx + 0x20], ah
call fcn.0057794d
call fcn.0057794d
dec ebp
insd dword es:[edi], dx
call fcn.0057794d
dec edi
jb 0x57758e
imul ebp, dword [bp + 0x20], 0x65637865
jae 0x577551
mov byte [0xf9bd15], 0
mov eax, dword [0xf6a776]
mov dword [0xf9bd0c], eax
mov eax, dword [0xf9bd0c]
mov dword [0xf6a776], eax
mov word [0xf99c9c], 0
mov dword [0xf9bd16], 0
mov dword [0xf9bd10], 0
mov byte [0xf9bd14], 0
call fcn.00579546
mov dl, 2
call fcn.0057b038
push dword [0xf5b756]
pop dword [0xf9bd04]
push dword [0xf6a776]
pop dword [0xf9bd08]
mov byte [0xf9bd03], 0
call fcn.00579553
jb 0x57897e
mov byte [0xf9bd03], 1
cmp al, 0x54
je 0x57855f
xor edx, edx
push dword [0xf5b756]
pop dword [0xf9bcb4]
call fcn.0057b128
rcr dl, 1
push dword [0xf5b75a]
pop dword [0xf9bcb8]
cmp al, 0
jne 0x5785ba
call fcn.005789a0
or edx, 0x80000000
call fcn.0057b7ba
call fcn.00579553
cmp al, 0x54
jne 0x5785dd
call fcn.005789e4
jmp 0x57855f
cmp al, 0x48
jb 0x5785dd
cmp al, 0x4b
ja 0x5785dd
call fcn.005789a0
cmp byte [0xf9bd15], 0
je 0x577722
call fcn.00579553
cmp al, 0x54
je 0x57855f
cmp al, 0x1d
je 0x57861b
cmp al, 0x20
je 0x578694
cmp al, 0x3e
je 0x5786f5
cmp al, 0x3f
je 0x57880f
call fcn.00578a84
je 0x578822
cmp al, 0x1c
jne 0x576d44
call fcn.00579856
call fcn.00578b08
jmp 0x578539
mov byte [0xf9bd14], bl
call fcn.005789c7
call fcn.00579553
cmp al, 0x54
je 0x57855f
cmp al, 0x1d
mov dl, byte [0xf9bd14]
jne 0x57864d
mov dl, bl
cmp dl, byte [0xf9bd14]
jb 0x57775e
jmp 0x578652
call fcn.00579856
cmp dl, 2
jne 0x57865e
call fcn.00578a61
jmp 0x578663
call fcn.00578a6f
mov ecx, 1
call fcn.0057b271
jne 0x57867d
push ebx
call fcn.00578a7d
mov ecx, ebx
pop ebx
call fcn.0057b07a
call fcn.00578a31
call fcn.0057b0fd
jne 0x57855f
call fcn.00579553
jmp 0x578633
mov byte [0xf9bd14], 0
call fcn.005789e4
call fcn.0057b1dc
inc ecx
xor edx, edx
cmp edx, dword [0xf7cafe]
je 0x577170
mov esi, 0xfbbeed
mov edi, edx
shl edi, 8
add edi, 0xf7cb02
push ecx
repe cmpsb byte [esi], byte es:[edi]
pop ecx
je 0x5786cd
inc edx
jmp 0x5786a8
mov esi, dword [edx*4 + 0xf7ec02]
add esi, 0xf7ed02
mov ecx, dword [edx*4 + 0xf7ec82]
jecxz 0x5786eb
lodsb al, byte [esi]
call fcn.00578a4c
loop 0x5786e3
call fcn.0057b0da
jmp 0x57855f
mov byte [0xf9bd14], 2
cmp bl, 4
je 0x5787f2
cmp bl, 3
je 0x5787c3
cmp bl, 2
je 0x578777
cmp bl, 1
je 0x57873b
call fcn.005789c7
call fcn.0057b0da
mov dword [0xf9bd16], 0
mov dword [0xf9bd10], 1
jmp 0x57855f
call fcn.005789c7
xor ebx, ebx
call fcn.0057b289
je 0x578753
call fcn.00578a7d
call fcn.0057b0da
cmp ebx, 0x1f0
ja 0x57751d
shl ebx, 2
mov dword [0xf9bd16], ebx
mov dword [0xf9bd10], 0
jmp 0x57855f
cmp dword [0xf9bd10], 0
jne 0x5775f5
or edx, 0x40000000
call fcn.005789c7
mov ebx, 1
call fcn.0057b289
je 0x5787a5
call fcn.00578a7d
call fcn.0057b0da
shl ebx, 2
add dword [0xf9bd16], ebx
cmp dword [0xf9bd16], 0x7c0
jbe 0x57855f
jmp 0x57751d
call fcn.005789c7
mov ebx, 0x1f0
call fcn.0057b289
je 0x5787de
call fcn.00578a7d
call fcn.0057b0da
shl ebx, 2
cmp dword [0xf9bd16], ebx
jbe 0x57855f
jmp 0x5774e7
call fcn.005789c7
call fcn.0057b0da
xor ebx, ebx
mov ecx, 1
mov dl, 2
call fcn.00578a31
jmp 0x57855f
mov dl, bl
call fcn.00579553
call fcn.00578a84
je 0x578824
jmp 0x576b28
mov dl, 0xf
mov byte [0xf9bd14], 2
call fcn.005789c7
mov ch, bl
test bl, 0x80
je 0x578839
mov ch, 3
mov cl, dl
test bl, 0x40
je 0x578843
or cl, 0x20
shl ecx, 0x12
test bl, 0x80
jne 0x5788f9
cmp bl, 0x15
jne 0x5788a1
xor ecx, 0x8c00000
call fcn.0057b09a
push ecx
call fcn.0057b1bd
jb 0x576bc4
cmp cl, 0x1a
ja 0x5769ff
lea edi, [ecx + 0xfbbfec]
pop ecx
mov dl, 0
call fcn.00578aab
or ecx, ebx
mov al, 0x5f
stosb byte es:[edi], al
mov al, 0x52
stosb byte es:[edi], al
mov al, 0x45
stosb byte es:[edi], al
mov al, 0x54
stosb byte es:[edi], al
mov al, 0
stosb byte es:[edi], al
mov dl, 0x80
call fcn.00578aab
shl ebx, 9
or ecx, ebx
jmp 0x57891a
cmp bl, 0x16
jne 0x5788ae
xor ecx, 0x4400000
jmp 0x57891a
cmp bl, 0x17
je 0x5788ce
call fcn.00578a6f
cmp ebx, 0x1ff
ja 0x576aaa
shl ebx, 9
or ecx, ebx
call fcn.0057b08a
call fcn.00579553
cmp al, 7
je 0x5788de
call fcn.00579856
jmp 0x5788e4
or ecx, 0x400000
call fcn.00578a6f
cmp ebx, 0x1ff
ja 0x5777a3
or ecx, ebx
jmp 0x57891a
or ecx, 0x400000
and bl, 7
mov cl, bl
call fcn.00578a6f
cmp ebx, 0x1ff
ja 0x576aaa
shl ebx, 9
or ecx, ebx
call fcn.00579553
cmp al, 0x41
je 0x57892c
cmp al, 0x54
je 0x57896b
jmp 0x576ad7
test ebx, 9
je 0x578942
mov eax, ecx
shr eax, 0x1a
cmp eax, 2
jbe 0x577441
mov eax, ebx
and eax, 0x38
shl eax, 0x14
or ecx, eax
xor ecx, eax
and ebx, 7
shl ebx, 0x17
or ecx, ebx
call fcn.0057b0fd
jne 0x57896b
call fcn.00579553
cmp al, 0x41
je 0x57892c
jmp 0x576b07
mov ebx, ecx
mov ecx, 1
mov dl, 2
call fcn.00578a31
jmp 0x57855f
cmp byte [0xf9bd03], 0
je 0x57898c
call fcn.00578b08
inc byte [0xf9bd15]
cmp byte [0xf9bd15], 2
jne 0x578506
ret