Function at 0x1ecaf7d
Capabilities:
Encrypt data using speck

Disassembly:
cmp esi, ecx
jmp 0x1ecde4a
mov dword [ebp - 0x10], eax
jmp 0x1ebf767
dec ebx
stc
jmp 0x1ecfa01
sub esi, ecx
xor ecx, edi
shr cl, 0xd5
lea edi, [edi + edi + 1]
movzx cx, cl
rol ch, 0x75
mov ecx, dword [ebp - 0x10]
clc
test al, 0x33
cmp edi, ecx
jmp 0x1edd750
imul ebx, ebx, 0x600
cmp bl, ch
add dword [ebp - 0xc], ebx
stc
cmp dword [edi + 0x34], 7
jmp 0x1ecc642
xor eax, eax
clc
cmp edi, 0x38f57a61
mov edi, dword [edi + 0x14]
jmp 0x1ebb979
lea eax, [ecx + eax*2 + 0x55e]
jmp 0x1db54f1
or esi, ecx
not ecx
setnp ch
inc eax
mov dword [ebp + 8], eax
bt ax, 0x24
inc ch
movzx eax, word [edi + 2]
cmc
dec ecx
jmp 0x1ecec4d
mov dword [ebp + 8], ecx
bt cx, sp
mov ecx, edx
shr ecx, 0xb
cmp cl, 0x16
cmp edi, ebx
stc
imul ecx, dword [ebp - 0x10]
test si, 0xd7e
cmp bx, dx
cmc
cmp esi, ecx
jmp 0x1ecfd33
lea ebx, [ebx + edi + 0x104]
mov dword [ebp - 0x14], eax
jmp 0xf88542
mov eax, dword [ebp - 0xc]
bts di, si
movzx edi, word [eax + ecx*2]
cmp ah, cl
cmp edx, 0x1000000
jae 0x1dc204b
mov eax, dword [ebp + 8]
jmp 0x1ed37a1
sub edx, ecx
test si, di
sub esi, ecx
test esp, esi
stc
cmp edx, 0x1000000
jmp 0x1dc4d43
mov eax, 3
seto bh
bswap bx
xchg bh, bl
pop ebx
mov esp, ebp
mov ebp, esi
pop ebp
jmp 0x1dc2475
jmp 0x1eca16a
jae 0x1ec8648
movzx ecx, byte [eax]
shl esi, 8
cmc
cmp ecx, 0x453412d2
shl edx, 8
clc
test di, bp
jmp 0xf89784
jae 0x1ec4913
cmp eax, dword [ebp - 4]
jmp 0x1ec48da
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
jmp 0x1dbbaf4
jmp 0x1d7df20
sub edx, ecx
sub esi, ecx
cmp esp, ebp
lea edi, [edi + edi + 1]
stc
and dword [ebp - 8], eax
cmc
cmp edi, 0x100
jmp 0x1ec8864
sub edx, ecx
cmp ebp, 0x9a66ae
test si, di
sub esi, ecx
test si, 0x3f8d
lea edi, [edi + edi + 1]
cmp edi, 0x40
jmp 0x1edc612
mov dword [ebp - 0x18], 2
jmp 0x1ec7fc3
mov dword [ebp - 0xc], eax
jmp 0x1edb000
mov dword [ebp - 8], eax
jmp 0xf88a33
dec eax
and eax, dword [edi + 0x2c]
shl eax, cl
stc
test ecx, edx
add ebx, eax
jmp 0xf89070
jae 0x1ec9f22
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
xadd dh, dl
cmovge edx, edi
lea eax, [eax + 0xf]
shld dx, bx, 0xcf
bts edx, esp
shl eax, 4
or edx, ebx
lea eax, [eax + ebx]
movzx edi, word [edi + eax*2]
mov eax, dword [ebp + 8]
cmp ah, dl
bsr dx, si
sar dx, cl
mov edx, ecx
cmp ecx, 0x1000000
jmp 0x1dbfed4
inc edi
clc
test edi, ebx
mov dword [ebp + 8], edi
bsf di, sp
mov edi, edx
cmp si, 0x3a96
cmp ebx, ebx
shr edi, 0xb
cmp ebx, esp
test edx, edi
imul edi, ecx
clc
test esp, 0x3d5c4a50
cmp edi, ebx
cmp esi, edi
jmp 0x1ed3b85
sub edx, eax
cmp edi, esi
jmp 0x1ecff35
sub edx, ecx
sub esi, ecx
cwde
rcl bx, cl
btr ax, 0xba
lea ebx, [edi + 0x204]
btc ax, dx
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x10], pe_nt_image_headers32
bt eax, edx
sub edi, 0x5e717b84
mov edi, 1
stc
mov eax, dword [ebp + 8]
cmc
jmp 0x1ee2636
jmp 0x1ecff3b
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
jmp 0x1eccfc0
mov dword [ebp - 0x10], 8
jmp 0x1ed001a
jae 0x1ecff8f
cmp eax, dword [ebp - 4]
jmp 0x1ed3a41
jae 0x1ed0c22
cmp eax, ecx
jmp 0x1ed0c07
jae 0x1dbc5fc
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jae 0x1ec8648
movzx edi, byte [eax]
shl esi, 8
shl edx, 8
cmc
stc
cmp ah, 0x1a
or esi, edi
inc eax
mov dword [ebp + 8], eax
shrd eax, edx, 0x8e
cbw
shr ah, 0x46
mov eax, edx
jmp 0x1edda70
jae 0x1ec0ab9
cmp edi, 4
jmp 0x1dc2d8a
inc eax
bswap cx
sub ecx, 0x61246af8
setl cl
mov dword [ebp + 8], eax
shr al, cl
movzx eax, word [edi]
xchg ch, cl
dec ecx
mov ecx, edx
cmp dh, 0x76
test dx, 0x6c4e
shr ecx, 0xb
test al, 0x64
imul ecx, eax
cmp ebp, 0x13f4321f
test bp, 0x6a4b
cmc
cmp esi, ecx
jmp 0x1ecdf90
jae 0x1dbff0a
cmp eax, dword [ebp - 4]
jae 0x1ec8648
shl ecx, 8
cmp esi, eax
mov edx, ecx
movzx ecx, byte [eax]
clc
cmc
shl esi, 8
or esi, ecx
movzx cx, cl
inc eax
rcr cx, 0x9d
rcr ch, cl
mov dword [ebp + 8], eax
dec cx
xor ecx, eax
rcl cl, 0xbe
mov ecx, edx
shr ecx, 0xb
clc
jmp 0x1dc6033
mov edi, dword [ebp - 0xc]
sub edx, ecx
sub esi, ecx
movzx ecx, cx
rol cl, cl
rcr ch, cl
mov ecx, dword [ebp - 8]
cmp bh, 0x59
clc
jmp 0x1dc2ae8
inc eax
jmp 0x1ecec1a
jae 0x1dbf64e
cmp eax, dword [ebp - 4]
jmp 0x1ed62ad
inc eax
mov dword [ebp + 8], eax
cmp ah, bl
bt ax, 0xb3
mov eax, edx
shr eax, 0xb
cmc
test dh, 0xc3
imul eax, edi
cmp cl, 0x58
cmp esi, eax
jmp 0x1ed50b8
ret
mov ecx, dword [edi + 8]
bt bx, dx
mov ebx, 1
cmp sp, 0xe73
cmp ebx, esp
cmc
shl ebx, cl
sbb cx, 0x314
xchg ch, cl
neg cx
mov ecx, dword [ebp - 0xc]
shl ecx, 4
jmp 0x1db5dba
movzx edi, word [ecx + edi*2 + 0x1c8]
cmp edx, 0x1000000
jmp 0x1dae160
jb 0x1dc2d96
mov edi, 3
lahf
mov eax, dword [ebp - 8]
rol bl, 0x22
rcr bl, 0x51
sal ebx, 0x26
shl edi, 7
lea ebx, [edi + eax + 0x360]
cwde
movzx eax, si
mov eax, dword [ebp + 8]
movzx edi, si
mov edi, 1
jmp 0x1ebc472
jmp 0x1ec862e
mov ecx, dword [ebp - 4]
lea ebx, [ebx - 4]
cmp edx, ebp
cmp edx, 0x1000000
jmp 0x1dbbec0
jae 0xf89796
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jmp 0x1dadd5f
jae 0x1ec8648
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
or esi, ecx
setle ch
inc eax
adc ch, 0x1e
rcl ch, 0x5c
movzx cx, bl
mov dword [ebp + 8], eax
test dh, 0x95
mov ecx, edx
shr ecx, 0xb
imul ecx, edi
cmp esi, ecx
jmp 0x1db70f9
imul ecx, edi
jmp 0xf88055
jae 0x1ec8648
movzx ecx, byte [eax]
jmp 0x1edd7bf
shr eax, 0xb
cmp bp, sp
imul eax, dword [ebp - 0x10]
test ah, 0x65
cmp esi, eax
jmp 0x1ec53d1
sub edi, ebx
xor ebx, edx
xor bx, 0x4637
lea edi, [edi + ecx]
movzx ecx, byte [edi + eax]
bswap bx
mov dword [ebp - 8], pe_nt_image_headers32
mov edi, 1
mov edi, edi
mov ebx, dword [ebp - 8]
sar ax, cl
lea ecx, [ecx + ecx]
dec ah
lahf
mov eax, ebx
jmp 0x1ebffe8
or esi, ebx
inc ecx
jmp 0xf89eb2
jae 0x1ec8648
pop edi
mov ebx, edi
pop esi
jmp 0x1daca89
shr ecx, 0xb
cmc
cmp al, 0xd1
clc
imul ecx, eax
cmp eax, esi
cmp esi, ecx
jae 0x1db9747
mov eax, 8
sar dh, cl
shl dh, 0x32
xchg edx, edx
shl ebx, 4
movzx edx, di
mov edx, ecx
jmp 0xf8a132
jmp 0x1dba71b
mov dword [ebp - 0x14], ebx
jmp 0x1ec0ab3
jmp 0x1db49fa
cmp edi, 0xe
jae 0x1dc3db8
mov eax, edi
sar ecx, cl
adc cx, sp
and eax, 1
or eax, 2
mov ecx, ebx
cmc
shl eax, cl
shl ch, 0x70
mov ecx, dword [ebp - 8]
stc
sub eax, edi
jmp 0xf89718
inc eax
xchg ch, cl
add cl, 0x4d
sal cx, cl
mov ecx, edx
test al, bh
shr ecx, 0xb
clc
cmc
imul ecx, dword [ebp - 0x10]
cmp edi, esi
test ebp, 0x40a711cc
cmc
cmp esi, ecx
jmp 0x1edad36
cmp ecx, ebx
jae 0xf89631
mov eax, dword [edi + 0x28]
jmp 0x1ee004d
jmp 0x1db9775
and eax, ecx
test si, sp
mov dword [ebp - 0x18], ecx
movzx ecx, dx
inc ch
lea ecx, [eax + edi]
add ecx, ebx
bts bx, ax
and ebx, eax
mov ebx, dword [ebp - 0xc]
movzx ecx, word [ebx + ecx*2]
mov dword [ebp - 0x10], ecx
cmp dl, 0xe8
clc
cmp bp, ax
cmp edx, 0x1000000
jae 0xf89eb9
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 4]
jae 0x1ec8648
movzx ebx, byte [ecx]
shl esi, 8
stc
cmc
shl edx, 8
jmp 0x1ebc113
mov ecx, dword [ebp - 0xc]
test bx, 0x7e45
sub edx, eax
cmc
jmp 0x1ee1f16
jne 0x1ed33a8
mov eax, dword [ebp - 0x18]
cmp edx, 0x171d427f
jmp 0x1ec862e
jae 0x1dc5c57
cmp eax, dword [ebp - 4]
jmp 0x1dc5c32
mov esp, ebp
mov ebp, 0x2a722aa7
pop ebp
jmp 0x1ede163
jae 0x1ebc121
cmp eax, dword [ebp - 4]
jmp 0x1ebc11b
mov ecx, dword [edi + 0x24]
sar ebx, cl
ror bx, 0x38
mov ebx, dword [edi + 0x38]
clc
jmp 0x1ebf02b
jb 0x1d7df20
mov eax, 1
jmp 0x1dc3d81
jae 0x1ec8648
movzx ecx, byte [eax]
test edi, ebx
stc
cmc
shl esi, 8
test di, 0x7b98
clc
cmc
shl edx, 8
cmc
test sp, ax
or esi, ecx
movsx ecx, cx
bswap ecx
xchg cx, cx
inc eax
and ecx, ebp
btr cx, sp
mov dword [ebp + 8], eax
sar cl, cl
shrd cx, bp, 0xff
mov ecx, edx
cmc
cmp esi, 0x5deb3884
clc
shr ecx, 0xb
imul ecx, edi
test dh, ch
cmc
cmp esi, ecx
jmp 0x1ed377c
add eax, eax
jmp 0x1ec79df
jae 0x1ec04cb
mov edx, eax
mov ax, sp
neg ax
mov eax, dword [ebp - 8]
stc
cmc
jmp 0x1eca18b
or esi, ecx
jmp 0x1dc1294
cmp edx, 0x1000000
jmp 0x1dc12b8
sub edx, edi
sub esi, edi
clc
lea eax, [eax + eax + 1]
clc
sub ebx, 1
jmp 0x1ebc98c
jmp 0x1ec79a3
cmp edx, 0x1000000
jae 0x1ec864c
mov edx, dword [ebp - 4]
clc
stc
cmp dword [ebp + 8], edx
jb 0x1ec864c
xor eax, eax
not ebx
pop edi
bswap si
pop esi
pop ebx
jmp 0x1ec2dde
jae 0x1ec4415
mov ecx, dword [ebp - 0x18]
jmp 0x1ebb99a
mov edi, dword [ebp - 0xc]
test dh, 8
sub edx, ecx
stc
clc
sub esi, ecx
mov ecx, dword [ebp - 8]
test ecx, 0x375a6607
movzx edi, word [ecx + edi*2 + 0x1b0]
test eax, esp
cmp edx, 0x1000000
jmp 0x1dbbb1f
sub edx, ecx
not di
sub esi, ecx
mov edi, dword [ebp - 8]
test bx, si
cmc
mov dword [ebp - 0xc], 0xc
cmp ebp, 0x6c1c3b20
add edi, 0xa68
clc
stc
jmp 0x1ec79a3
lea eax, [eax + 0xe6c]
test esi, ebx
cmp dword [edi + 0x30], 0
mov dword [ebp - 0xc], eax
jne 0x1ed7448
cmp dword [edi + 0x2c], 0
jmp 0x1ed7442
add ecx, ebx
movzx eax, word [eax + ecx*2]
cmp ax, di
clc
jmp 0x1ed2b86
push ebp
mov dx, di
or dx, 0x3530
mov ebp, esp
xadd edx, edx
movsx edx, di
sub esp, 0x18
rcl dl, cl
push ebx
xor ebx, ebp
push esi
push edi
shrd edx, ebx, 0x66
shld edi, ecx, 0xd7
btc bx, cx
mov edi, ecx
shl ch, 0x17
stc
mov ecx, dword [ebp + 8]
setge bh
bt edx, 0xd3
rcl bh, 0x49
mov edx, dword [edi + 0x1c]
sub esi, 0x45be6927
xadd si, bx
bswap ebx
mov esi, dword [edi + 0x20]
shr bx, cl
or bx, dx
sbb bh, 0x21
lea ecx, [ecx + eax]
shr al, 0xd6
xor bl, 0x5d
mov eax, dword [edi + 0x10]
shrd ebx, esi, 0x16
sbb ebx, edi
shl bh, 0x17
mov dword [ebp - 4], ecx
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0xc], ecx
cmp ecx, esp
jmp 0x1dc24aa
sub edx, ecx
test esi, esi
jmp 0xf88e96
jae 0x1ecb10f
mov edx, ecx
clc
test si, 0x54df
stc
add edi, edi
jmp 0xf88ea8
jae 0x1ec361f
mov ecx, 1
jmp 0x1db2835
cmp edx, 0x1000000
jae 0x1ebeab9
cmp eax, dword [ebp - 4]
jae 0x1ec8648
movzx ecx, byte [eax]
shl esi, 8
cmp edi, 0x30216253
test esi, edi
shl edx, 8
or esi, ecx
jmp 0x1ebeab0
dec ebx
test edx, ebx
mov dword [ebp - 0x14], ebx
jmp 0x1ebe968
jae 0x1eca163
cmp ecx, 0x1000000
jmp 0x1ec349b
jae 0x1ec8648
movzx ecx, byte [eax]
cmp bl, cl
shl esi, 8
cmp cx, sp
shl edx, 8
clc
test edx, 0x769215aa
or esi, ecx
inc eax
mov dword [ebp + 8], eax
rcl ax, 0x6f
movzx eax, word [ebx + edi*2]
not ecx
sar ecx, cl
mov ecx, edx
shr ecx, 0xb
test bp, 0x22
stc
imul ecx, eax
test di, 0x195b
stc
cmp esi, ecx
jmp 0x1ecb95c
jae 0x1daba3f
shl ebx, 4
xchg edx, edx
bswap edx
movsx edx, ax
mov edx, ecx
jmp 0x1db2807
mov dword [ebp + 8], eax
movsx eax, bp
mov eax, edx
clc
jmp 0x1dc6f9a
mov ecx, edx
test sp, sp
stc
jmp 0x1ebc416
and ebx, dword [edi + 0x2c]
test esi, 0x1d1e6948
jmp 0x1ecaf60
jae 0x1db3aa6
mov edx, ecx
test ch, 0x46
cmp edi, 0x71c22ba9
add edi, edi
jmp 0x1edbd4e
sub esi, eax
lea ecx, [ecx + ecx + 1]
cmp ecx, 0x100
jmp 0x1ec440f
or esi, ecx
xchg cl, cl
inc eax
sal cx, 0x5f
or ch, bh
cmp bx, bp
mov dword [ebp + 8], eax
neg cl
mov ecx, edx
cmc
clc
test eax, 0x7ebf2b93
shr ecx, 0xb
stc
imul ecx, edi
stc
cmp bx, 0x3154
cmp esi, ecx
jae 0x1dc04c9
mov edx, ecx
jmp 0x1eca16a
jmp 0x1db9775
jae 0x1ed2e83
mov edi, dword [ebp - 8]
not edx
mov edx, eax
mov eax, dword [ebp + 8]
cmp bx, di
cmp edx, 0x5d55280b
mov dword [ebp - 0xc], 0
add edi, 0x664
jmp 0x1db4f6d
jae 0x1ec8648
mov edi, dword [ebp + 8]
inc bx
movzx ebx, byte [edi]
test sp, bp
cmc
shl esi, 8
or esi, ebx
sbb bh, 0xa2
mov ebx, dword [ebp - 0x14]
shl edx, 8
jmp 0x1db7810
jae 0x1ec8648
movzx edi, byte [eax]
clc
shl esi, 8
shl edx, 8
or esi, edi
inc eax
cmp bh, dl
adc edi, 0x11e341ab
shr edx, 1
mov edi, esi
stc
test esp, 0x35714d22
cmc
sub edi, edx
shr edi, 0x1f
jmp 0x1edb2cf
jmp 0x1db3ab1
mov dword [ebp - 0x10], eax
cmc
cmp al, bl
cmp edx, 0x1000000
jae 0x1ecec20
mov eax, dword [ebp + 8]
cmc
stc
cmp eax, dword [ebp - 4]
jmp 0x1dc6229
sub cl, al
test esp, eax
shr ebx, cl
movsx eax, bx
mov ecx, dword [edi + 4]
btr ax, 0x59
mov eax, 1
clc
shl eax, cl
mov ecx, dword [edi]
jmp 0x1db5fa3
mov ecx, dword [ebp - 8]
test ax, si
dec edi
sub edx, eax
sub esi, eax
mov eax, dword [ebp - 0xc]
or edi, ebx
bt di, 0xd5
movzx edi, word [ecx + eax*2 + 0x198]
test edi, 0x383942f6
bsr eax, edi
mov eax, dword [ebp + 8]
test edi, edx
cmc
mov dword [ebp - 0x18], 3
cmp edx, 0x1000000
jmp 0x1ec23fd
jne 0x1dc3dc0
mov ecx, dword [ebp - 8]
lea ecx, [ecx + 0x644]
sub bl, 0x4c
mov ebx, 4
mov dword [ebp + 8], eax
xor al, 0xd3
lahf
mov dword [ebp - 0xc], ecx
inc al
mov eax, ebx
sbb eax, ecx
mov dword [ebp - 0x14], ebx
add ecx, edx
mov eax, 1
shl cl, 0x86
mov edi, edi
rcl cl, 7
xor ecx, 0x35f75d56
sub cl, dh
mov ecx, dword [ebp - 0xc]
movzx ecx, word [ecx + eax*2]
cmc
clc
cmp edx, 0x1000000
jae 0x1db781b
mov edi, dword [ebp - 4]
clc
cmp dword [ebp + 8], edi
jmp 0x1ed0bc3
jae 0x1eca163
mov edx, ecx
jmp 0x1dad542
cmp eax, dword [ebp - 4]
jmp 0x1ee0370
jae 0x1ec8648
movzx ecx, byte [eax]
cmc
shl esi, 8
clc
cmp bh, 0xc7
shl edx, 8
jmp 0x1ecff7c
jae 0x1ec79d5
mov edx, edi
jmp 0x1ec4e50
jae 0x1db7851
mov edx, eax
cmp bh, 0x3e
test bx, 0x39ea
add ecx, ecx
jmp 0x1dba2e8
jae 0x1ec8648
movzx ecx, byte [eax]
shl esi, 8
test edi, edx
cmc
cmp dh, 0x88
shl edx, 8
clc
cmp edi, 0x526d1b11
or esi, ecx
mov ch, 0xab
jmp 0x1dbf63c
je 0xf8907c
mov ecx, dword [edi + 0x24]
test ecx, ecx
jne 0x1ed745a
mov ecx, dword [edi + 0x28]
clc
rcr ah, 0xa5
mov ebx, dword [edi + 0x14]
movzx ebx, byte [ebx + ecx - 1]
mov eax, dword [edi]
shld ecx, edi, 0xea
mov ecx, 8
cmc
jmp 0x1ed2d2b
jae 0x1db49e4
mov edx, ecx
cmp ax, sp
test bp, 0x64ab
add edi, edi
jmp 0x1ebde80
jmp 0x1ed3393
dec edi
cmp si, 0x3b98
clc
and edi, edx
test si, di
sub esi, edi
test dx, si
cmp si, bx
sub ebx, 1
jmp 0x1ed3368
not eax
jmp 0x1ed18ad
jb 0x1dba71b
sub edi, 0x40
stc
cmc
mov dword [ebp + 8], eax
cmp edi, 4
jmp 0x1edf60a
jb 0x1db977b
mov eax, dword [ebp - 0x14]
sub eax, ecx
cmp dl, 0x24
lea edi, [edi + eax]
cmp dword [ebp - 0xc], 4
jmp 0x1dbdfcd
shl esi, 8
shl edx, 8
jmp 0x1ec71c7
shr eax, 0xb
cmc
imul eax, ecx
test dl, 0xcf
cmp esi, eax
jmp 0x1ed093e
ret
jb 0x1ec0ab9
mov ebx, edi
cmc
shr ebx, 1
jmp 0x1ecd8bc
jmp 0xf8963a
jae 0x1ec8648
movzx ebx, byte [eax]
cmp esi, 0x62561bcc
clc
test edi, edx
shl esi, 8
shl edx, 8
or esi, ebx
jmp 0x1dc2040
sub esi, eax
ror ax, cl
movsx eax, bp
stc
mov eax, dword [ebp - 8]
test ebp, 0x5e9163e4
movzx ecx, word [eax + ecx*2 + 0x180]
cmp edx, esi
test bp, 0x6bb5
cmp edx, 0x1000000
jmp 0x1dbc5cd
cmp edx, 0x1000000
jae 0x1ecdedf
cmp eax, dword [ebp - 4]
jmp 0x1ecdeba