Function at 0xf6301e
Capabilities:
Encrypt data using speck

Disassembly:
imul eax, dword [ebp - 0x10]
cmp sp, cx
jmp 0xf69eb8
sub edx, ecx
sub esi, ecx
lea edi, [edi + edi + 1]
mov ecx, dword [ebp - 0x10]
stc
clc
cmp edi, ecx
jb 0x158fd23
mov eax, dword [ebp - 0x14]
test ebx, ebp
test al, 0xa5
sub eax, ecx
cmc
lea edi, [edi + eax]
cmp edi, 0x296a7da6
cmp ebx, ecx
cmp dword [ebp - 0xc], 4
jmp 0x15af564
jae 0x158ac9f
mov eax, dword [ebp + 8]
jmp 0x158e513
mov dword [ebp - 0x18], 3
cmp ebx, 0x689d69d5
cmp edx, 0x1000000
jmp 0xf73a8b
mov dword [ebp - 0x10], ecx
test esp, 0x5ba00820
cmc
clc
cmp edx, 0x1000000
jae 0xefcc33
mov ecx, dword [ebp + 8]
clc
cmp sp, dx
test bx, 0xfc3
cmp ecx, dword [ebp - 4]
jmp 0x15b41a9
sub edx, ecx
jmp 0x15a2f18
je 0x15a7430
mov ecx, dword [edi + 0x24]
test ecx, ecx
jmp 0x15a73ba
jmp 0x15ac094
jae 0x159ab4c
mov edx, ecx
jmp 0x15b4bc7
jae 0x158ad03
movzx ecx, byte [eax]
shl esi, 8
cmc
shl edx, 8
stc
test di, 0x66a2
or esi, ecx
bswap ecx
inc eax
neg cl
mov dword [ebp + 8], eax
and cx, 0x474f
setge cl
mov ecx, edx
cmp ebp, 0x6c5d3627
test esp, 0x2139eb
clc
shr ecx, 0xb
imul ecx, edi
cmp esi, ecx
jmp 0x15aae6f
inc ecx
cmp cl, 3
mov dword [ebp + 8], ecx
adc ecx, 0x617407ae
shrd ecx, eax, 0x79
test di, bp
mov ecx, edx
shr ecx, 0xb
cmp bh, 0xf
jmp 0x15bcf4c
push ebp
bswap dx
mov ebp, esp
bswap edx
bt dx, 0x6a
sub esp, 0x18
rcr dl, cl
push ebx
xadd bl, bl
sub bx, di
push esi
rcl esi, 0xd2
ror ebx, 0xf2
push edi
cmc
bt ebx, ebx
bts ebx, ebx
mov edi, ecx
mov ebx, edi
rol esi, 0x66
mov ecx, dword [ebp + 8]
bsf edx, edi
mov edx, dword [edi + 0x1c]
dec esi
mov esi, dword [edi + 0x20]
mov bl, 0xd1
xadd ebx, ebx
shl ebx, 0xa4
add ecx, eax
btc ebx, 0xaa
sal eax, 0
mov eax, dword [edi + 0x10]
test bp, 0x308c
cmp al, 0x10
mov dword [ebp - 4], ecx
shr ecx, cl
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0xc], ecx
bsr ecx, eax
mov ecx, dword [edi + 8]
cmovg bx, si
not bx
mov ebx, 1
shl ebx, cl
adc cl, 0xd0
shl cx, cl
mov ecx, dword [ebp - 0xc]
shl ecx, 4
jmp 0x15c088a
sub esi, ecx
mov ecx, dword [ebp - 8]
clc
cmp dl, 0x1b
movzx edi, word [ecx + edi*2 + 0x1c8]
cmp edx, 0x1000000
jmp 0x15ac85a
ret
jae 0x15b58c7
cmp eax, dword [ebp - 4]
jmp 0x15934d8
cmp esi, ecx
jmp 0xf727cc
mov dword [ebp - 0x14], eax
jmp 0x1597701
jae 0x15b2885
mov eax, edi
shrd cx, bp, 0xac
xchg ecx, ecx
and eax, 1
bt ecx, 0xd6
shld cx, bx, 0xed
shl ecx, cl
or eax, 2
mov ch, 0xc
xor cx, 0x50c8
mov ecx, ebx
clc
stc
cmp bp, cx
shl eax, cl
xor cl, 0xef
test ax, bx
mov cl, 0x51
mov ecx, dword [ebp - 8]
test cl, ah
cmc
clc
sub eax, edi
jmp 0x15a4d94
sub edx, ecx
sub esi, ecx
lea edi, [edi + edi + 1]
and dword [ebp - 8], eax
cmp edi, 0x100
jmp 0x15af8a2
cmp esi, eax
jae 0x15b1805
mov edx, eax
mov eax, dword [ebp - 8]
add eax, 0xe6c
cmp dword [edi + 0x30], 0
jmp 0x158f4d3
mov dword [ebp + 8], eax
rcr al, 0x80
stc
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], ebx
bts ax, dx
movzx cx, dh
mov eax, 1
adc ecx, esp
bt ecx, ebx
btc cx, di
mov edi, edi
rcr cl, 0xaf
mov ecx, dword [ebp - 0xc]
cmp eax, esp
stc
movzx ecx, word [ecx + eax*2]
cmp edi, ecx
stc
cmp edx, 0x1000000
jmp 0x15b33bf
shl esi, 8
jmp 0x158c70a
jae 0x158ec4f
mov ecx, 1
jmp 0x15b4f83
jmp 0x158fd1c
shr edi, 0x1f
jmp 0x1590581
cmp ecx, 0x1000000
jmp 0xf64c52
jmp 0xf69f6d
shl esi, 8
or esi, ebx
add bl, 5
rcl bl, 0x27
mov ebx, dword [ebp - 0x14]
shl edx, 8
jmp 0x15b109a
jb 0x15ac094
lea edi, [edi - 0x40]
test edx, edx
clc
mov dword [ebp + 8], eax
test bp, dx
cmp edi, 4
jb 0x158ace2
mov ebx, edi
shr ebx, 1
jmp 0x15a746c
jae 0x159c6c3
mov eax, dword [edi + 0x28]
jmp 0x159c6c7
jae 0xef6b5b
shl ebx, 4
movsx dx, ah
movzx edx, bp
mov edx, ecx
jmp 0x15c3418
jae 0xef49b7
mov edx, ecx
add edi, edi
jmp 0x15a4123
or esi, ecx
inc eax
sbb ecx, eax
mov dword [ebp + 8], eax
sar ch, cl
and ch, 0x9b
mov ecx, edx
shr ecx, 0xb
imul ecx, edi
cmp si, cx
cmc
cmp esi, ecx
jmp 0xefb52e
mov esp, ebp
bswap bp
pop ebp
jmp 0x15976a9
jae 0xefb61c
cmp eax, dword [ebp - 4]
jmp 0xefb5f4
jae 0x15c2159
cmp eax, ecx
jmp 0x15c2131
imul ecx, eax
jmp 0x15be3f2
or esi, edi
inc eax
clc
cmc
test sp, dx
mov dword [ebp + 8], eax
btr eax, 0xf
and ah, dl
mov eax, edx
shr eax, 0xb
clc
imul eax, ecx
cmp esi, eax
jmp 0x15c3457
mov dword [ebp - 0x14], ebx
jne 0xf69f80
mov eax, dword [ebp - 0x18]
test esi, 0x563f1a3b
cmp edx, 0x1000000
jae 0x158ad08
mov edx, dword [ebp - 4]
cmp dword [ebp + 8], edx
jb 0x158ad08
sub eax, eax
cmovge edi, edx
pop edi
pop esi
xchg bl, bl
movzx ebx, bp
pop ebx
jmp 0xf7320b
jae 0x158ad03
movzx ecx, byte [eax]
shl esi, 8
test esp, esp
shl edx, 8
cmp dx, si
or esi, ecx
xchg cl, cl
inc ecx
mov ch, 0x7e
inc eax
rcl cx, 0xcb
mov dword [ebp + 8], eax
sar ecx, cl
mov ecx, edx
test bp, dx
shr ecx, 0xb
imul ecx, edi
cmp esi, ecx
jae 0x15c2922
mov edx, ecx
jmp 0x1591b7b
mov ecx, dword [ebp - 8]
bts edi, ebp
inc edi
sub edx, eax
sub esi, eax
mov eax, dword [ebp - 0xc]
sub di, di
movzx edi, word [ecx + eax*2 + 0x198]
test dx, 0x534b
jmp 0x15bc4fc
shl edx, 8
cmc
or esi, ebx
jmp 0xefcc1f
and eax, ecx
mov dword [ebp - 0x18], ecx
lea ecx, [eax + edi]
add ecx, ebx
not bl
mov ebx, dword [ebp - 0xc]
movzx ecx, word [ebx + ecx*2]
clc
jmp 0xef63e0
mov dword [ebp - 0xc], eax
jmp 0xf70af6
cmp eax, dword [ebp - 4]
jmp 0x189ff8a
mov ecx, dword [edi + 0x24]
jmp 0x18a139f
mov dword [ebp - 0xc], eax
jmp 0x1597033
sub edx, ecx
stc
sub esi, ecx
lea ebx, [edi + 0x204]
sal edi, 0xa4
mov dword [ebp - 0x14], 0x10
shr eax, 9
mov dword [ebp - 0x10], 0x100
mov edi, 1
shr ah, cl
mov eax, dword [ebp + 8]
cmp si, 0x4ca5
test di, 0x3e37
cmp edx, 0x1000000
jmp 0x15ad74e
dec edi
clc
test esi, 0x5a9808a9
and edi, edx
test bh, bh
clc
cmp di, si
sub esi, edi
clc
sub ebx, 1
jmp 0x15c24d9
jmp 0x15a74ee
jmp 0x159ab55
sub edx, ecx
sub esi, ecx
clc
test di, 0x474e
cmp ecx, 0x5fd32251
lea edi, [edi + edi + 1]
clc
stc
cmp esi, 0x7e87ce2
cmp edi, 0x40
jmp 0xf71d3b
jae 0x158ad03
shl ecx, 8
bts dx, ax
mov edx, ecx
add ecx, esi
sbb ch, ch
jmp 0x18a144c
imul ecx, eax
stc
cmp esi, ecx
jmp 0xf729e7
jb 0x159a059
mov eax, 1
jmp 0x158aceb
jae 0x15a3e6e
cmp eax, dword [ebp - 4]
jae 0x158ad03
movzx ecx, byte [eax]
cmp dh, dh
shl esi, 8
shl edx, 8
jmp 0x15a3e6b
jae 0xf68a85
mov edx, ecx
add edi, edi
jmp 0x15a3c05
jne 0xef823c
cmp dword [edi + 0x2c], 0
jmp 0xef8236
ret
mov dword [ebp - 0x10], eax
jmp 0xf6d172
mov eax, dword [ebp - 0xc]
ror di, 0x6a
movzx edi, word [eax + ecx*2]
cmp edx, 0x1000000
jae 0x15a351f
mov eax, dword [ebp + 8]
clc
cmp eax, dword [ebp - 4]
jae 0x158ad03
movzx ebx, byte [eax]
test esp, 0x5d995723
shl esi, 8
shl edx, 8
stc
cmp si, 0x5a6b
or esi, ebx
jmp 0x15a3510
shr ecx, 0xb
cmc
jmp 0x158a6b3
sub edx, ecx
sbb di, sp
mov edi, ebp
sub esi, ecx
mov edi, dword [ebp - 8]
mov dword [ebp - 0xc], 0xc
add edi, 0xa68
cmp edx, 0x1000000
jmp 0x15ad047
jae 0x15b6319
mov eax, dword [ebp + 8]
cmc
clc
cmp eax, dword [ebp - 4]
jmp 0x15baa94
xor eax, eax
test ebx, esp
mov edi, dword [edi + 0x14]
test sp, 0x7f09
test si, si
sub edi, ebx
xor bx, bp
cmc
lea edi, [edi + ecx]
and ecx, esp
bts cx, si
movzx ecx, byte [edi + eax]
or bl, 0x49
sal di, 0x63
mov dword [ebp - 8], 0x100
mov edi, 1
mov ebx, 0x70581e53
seta bl
shl bh, 0x12
mov edi, edi
rol eax, 0xda
clc
mov ebx, dword [ebp - 8]
sbb eax, 0x73a46fec
sal eax, 2
add ecx, ecx
movsx ax, dl
mov eax, ebx
stc
jmp 0x158d7ec
sub esi, ecx
stc
cmp edx, 0x1000000
jmp 0x15c2ba5
inc eax
mov dword [ebp + 8], eax
btr ax, 0xf9
sal ah, 0x82
xadd al, al
mov eax, edx
cmp cx, sp
stc
shr eax, 0xb
cmc
imul eax, edi
cmp esi, eax
jmp 0x15bab8f
not eax
jmp 0xf68a8d
or esi, ecx
inc eax
mov ecx, edx
stc
test bp, sp
cmc
shr ecx, 0xb
test ebp, esi
test esp, 0xc6c25bf
imul ecx, dword [ebp - 0x10]
cmp esi, ecx
jmp 0x15bb3b8
jmp 0x15923e4
jmp 0xef49bf
jae 0x15af993
cmp eax, dword [ebp - 4]
jmp 0x15af98d
lea eax, [ecx + eax*2 + 0x55e]
jmp 0x158def9
jae 0x158ad03
movzx ecx, byte [eax]
test ecx, 0x1610ef
cmp esi, 0xee6409d
cmc
shl esi, 8
cmp ebx, esi
shl edx, 8
stc
test bp, 0xad
or esi, ecx
inc eax
not cl
bt cx, 0x94
mov dword [ebp + 8], eax
rcl ah, cl
and ch, 0xe
movzx eax, word [ebx + edi*2]
mov ecx, edx
cmp sp, di
shr ecx, 0xb
cmp cl, cl
jmp 0x1593616
jne 0x15a73cd
mov ecx, dword [edi + 0x28]
test edx, 0x56fd2068
stc
xadd bl, bl
mov ebx, dword [edi + 0x14]
movzx ebx, byte [ebx + ecx - 1]
clc
sal ecx, 0x6d
inc ax
mov eax, dword [edi]
xadd ecx, ecx
mov ecx, 8
sub cl, al
shl eax, 0x92
not ah
bswap ax
shr ebx, cl
mov ecx, dword [edi + 4]
mov eax, 1
shl eax, cl
xchg cx, cx
mov ecx, dword [edi]
dec eax
cmp ecx, edi
test ebp, ebp
and eax, dword [edi + 0x2c]
cmp ebx, 0x60212811
shl eax, cl
cmp bp, 0x2248
lea ebx, [ebx + eax]
imul ebx, ebx, 0x600
test bp, cx
test sp, 0x4f36
add dword [ebp - 0xc], ebx
test esi, 0xff10bab
cmp dword [edi + 0x34], 7
jmp 0xf6ad3e
dec ebx
test edx, 0x2b513af9
cmp eax, 0x651f2c1a
mov dword [ebp - 0x14], ebx
cmp dl, 0xe9
clc
cmp edi, 0xe
jmp 0xf68963
lea ecx, [ecx + ecx + 1]
cmp ecx, 0x100
jmp 0x1594e27
jae 0x158fcfd
mov eax, 8
shl ebx, 4
mov edx, 0x2fe5516a
movzx edx, dx
mov edx, ecx
jmp 0x15b87d2
mov dword [ebp - 0x18], 2
jmp 0x159ab65
jae 0x15ba2cf
mov eax, dword [ebp - 0xc]
or di, 0x6b49
mov edi, dword [ebp - 8]
and edx, esp
btr edx, esi
add eax, 0xf
rol dx, 0x5f
inc dh
mov dx, 0x2b5
shl eax, 4
movsx edx, bp
btr dx, cx
or edx, 0x6eae006c
lea eax, [eax + ebx]
sub dl, al
movzx dx, ch
btr edx, 0xb9
movzx edi, word [edi + eax*2]
cwde
bts eax, edi
inc dl
mov eax, dword [ebp + 8]
rcr edx, cl
bt dx, di
sar edx, 0x76
mov edx, ecx
jmp 0xf6fc72
movzx ecx, word [ebx + edi*2]
cmc
clc
test bx, di
mov dword [ebp - 0x10], ecx
test dh, 0x78
cmc
cmp edx, 0x1000000
jmp 0x1594fd7
jae 0x158ad03
movzx ecx, byte [eax]
test dh, 0x61
stc
test edi, edx
shl esi, 8
clc
shl edx, 8
cmp dl, cl
or esi, ecx
setbe ch
inc eax
mov dword [ebp + 8], eax
xadd cx, ax
movzx eax, word [edi]
shld ecx, ecx, 0x97
sal cx, cl
setnp ch
mov ecx, edx
shr ecx, 0xb
stc
imul ecx, eax
jmp 0xf68292
jae 0xf72a80
cmp eax, dword [ebp - 4]
jmp 0x15b325d
jae 0x15ac714
cmp eax, dword [ebp - 4]
jmp 0x15ac6ef
jae 0x15a4eab
cmp eax, dword [ebp - 4]
jmp 0x15a4e75
jae 0x158ace2
cmp edi, 4
jb 0x15af57b
mov edi, 3
bts ebx, eax
mov eax, dword [ebp - 8]
rcr bh, 4
rol bl, 0xa5
xadd bh, bh
shl edi, 7
movsx ebx, bp
bswap bx
lea ebx, [edi + eax + 0x360]
mov eax, dword [ebp + 8]
bswap edi
mov di, bx
mov edi, 1
jmp 0xef8be2
jae 0x1594e2d
mov ecx, dword [ebp - 0x18]
jmp 0x159c709
jae 0x158ad03
pop edi
cmovnp ebx, ebx
cbw
pop esi
mov eax, 3
cmovb ebx, edx
movzx bx, al
pop ebx
mov esp, ebp
pop ebp
jmp 0xf64a59
inc edi
mov dword [ebp + 8], edi
mov edi, edx
test sp, 0x5eba
shr edi, 0xb
cmp dl, 0x54
imul edi, ecx
cmp si, ax
cmc
cmp esi, edi
jmp 0x189f47f
cmp edx, 0x1000000
jmp 0xf73d6b
mov dword [ebp - 0x10], 8
jmp 0x15b3258
mov ecx, dword [ebp - 0xc]
test esp, edi
sub edx, eax
cmp ebp, edi
sub esi, eax
shr ax, cl
shl al, 0x9c
mov eax, dword [ebp - 8]
movzx ecx, word [eax + ecx*2 + 0x180]
test ax, bx
clc
cmp edx, 0x1000000
jmp 0xef4c56
dec ebx
clc
and ebx, dword [edi + 0x2c]
lea ecx, [ecx + ebx]
movzx eax, word [eax + ecx*2]
clc
test esp, ebp
mov dword [ebp - 0x10], eax
cmp esi, esi
cmp edx, 0x1000000
jmp 0x159c688
mov ecx, dword [ebp - 4]
clc
cmp ax, bp
lea ebx, [ebx - 4]
stc
jmp 0x15b1374
jmp 0x158fd1c
jae 0x158ad03
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
jmp 0xf72a73
jae 0x15b109e
mov edi, dword [ebp - 4]
cmp di, 0x118f
test di, dx
cmp dword [ebp + 8], edi
jae 0x158ad03
mov edi, dword [ebp + 8]
movzx bx, ah
rcl bl, 0xb8
movzx ebx, byte [edi]
clc
jmp 0xf70c4c
sub edx, eax
sub esi, eax
jmp 0x15a74ea
jae 0x158ad03
movzx ebx, byte [ecx]
cmc
jmp 0xf6ad1d
jmp 0x159ab55
jmp 0x159a059
shl esi, 8
test edx, 0x59f90c41
clc
or esi, ecx
movsx ecx, di
dec cx
inc eax
shrd cx, bx, 0x88
xadd cl, cl
shl cl, cl
mov dword [ebp + 8], eax
rol cx, cl
mov ecx, edx
test si, bx
shr ecx, 0xb
cmc
imul ecx, edi
clc
cmp ebx, ecx
cmp esi, ecx
jmp 0x18a1329
mov eax, edx
stc
cmc
shr eax, 0xb
cmp al, 0x3a
jmp 0xef3707
lea ebx, [ebx + edi + 0x104]
jmp 0xf688a5
inc eax
mov dword [ebp + 8], eax
rcl eax, cl
jmp 0x15b6319
sub edx, edi
stc
sub esi, edi
cmc
clc
lea eax, [eax + eax + 1]
sub ebx, 1
jmp 0x158acd9
mov edi, dword [ebp - 0xc]
sub edx, ecx
test eax, esi
sub esi, ecx
mov ecx, dword [ebp - 8]
movzx edi, word [ecx + edi*2 + 0x1b0]
cmp edx, 0x1000000
jae 0x158b2b1
cmp eax, dword [ebp - 4]
jmp 0x158b28b
jae 0x158ad03
movzx ecx, byte [eax]
clc
stc
shl esi, 8
clc
test sp, dx
shl edx, 8
stc
or esi, ecx
jmp 0x15b93c2
jae 0x15b357a
mov edx, eax
test edx, ebx
add ecx, ecx
jmp 0x159071e
jae 0x15923c8
mov edx, ecx
cmp bh, bh
test ch, 0x3f
add edi, edi
jmp 0x15a3e8b
mov eax, dword [ebp + 8]
jmp 0xef5386
imul ecx, dword [ebp - 0x10]
cmp cx, sp
cmp esi, ecx
jmp 0x1595d1e
cmp esi, ecx
jmp 0x15a7c90
mov dword [ebp - 8], eax
jmp 0x15b1db1
jae 0x158ad03
movzx edi, byte [eax]
shl esi, 8
shl edx, 8
test dx, 0x6e2c
or esi, edi
movsx edi, bp
inc eax
shld edi, eax, 0xac
sbb edi, 0x260428d4
ror di, 0xf2
shr edx, 1
adc edi, eax
mov edi, esi
sub edi, edx
jmp 0xf6eb24
jne 0x15b1374
mov ecx, dword [ebp - 8]
cmovne ebx, ecx
or ebx, esi
ror ebx, cl
lea ecx, [ecx + 0x644]
ror bh, 0xda
mov ebx, 4
jmp 0xf69f58
mov edi, dword [ebp - 0xc]
test al, dh
cmp esp, 0x251f2824
sub edx, ecx
jmp 0xf64915
jae 0x15c2bd3
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jae 0x158ad03
movzx ecx, byte [eax]
test edi, ecx
cmc
shl esi, 8
shl edx, 8
or esi, ecx
not ecx
inc eax
mov dword [ebp + 8], eax
btc cx, 0xb3
sar eax, 0xca
movzx eax, word [edi + 2]
sar ch, 0xcb
mov ecx, edx
cmp ax, bp
jmp 0x159a72a
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
jmp 0x15b1714
jae 0x158b6a3
mov edi, dword [ebp - 8]
sub edx, edi
mov edx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], 0
add edi, 0x664
jmp 0x15a9cf2
jae 0x15b951d
mov edx, edi
clc
cmp bp, 0x3ba4
cmc
add eax, eax
jmp 0x15b9528
jae 0x158ad03
movzx edi, byte [eax]
stc
cmp sp, dx
shl esi, 8
stc
test di, 0x40b
shl edx, 8
jmp 0x158ac8e
jae 0x159ab4c
cmp ecx, 0x1000000
jmp 0x15a4a42
mov ebx, dword [edi + 0x38]
cmp ecx, ebx
jmp 0xf71e0c
movzx ecx, byte [eax]
jmp 0x15b58a4