Function at 0x1d3a886
Capabilities:
Encrypt data using speck

Disassembly:
mov dword [ebp - 0x14], ebx
jne 0x116a530
mov eax, dword [ebp - 0x18]
cmc
cmp ax, bp
cmp edx, 0x1000000
jmp 0x1c87beb
jb 0x1d1aaaa
mov eax, dword [ebp - 0x14]
stc
sub eax, ecx
stc
clc
lea edi, [edi + eax]
stc
cmc
cmp bp, 0x15f4
cmp dword [ebp - 0xc], 4
jmp 0x1d39145
jmp 0x1928679
jae 0x1c85972
movzx ebx, byte [ecx]
cmp eax, edi
test edx, edx
shl esi, 8
cmc
jmp 0x1d12b41
sub edx, ecx
cmp sp, si
test ebp, ecx
test esp, 0x20704fec
sub esi, ecx
movzx ecx, cx
btc cx, 0xf2
xor cx, si
lea edi, [edi + edi + 1]
mov ecx, dword [ebp - 0x10]
cmp edi, ecx
jmp 0x11678e0
jae 0x11bdc01
mov edx, eax
cmp ch, 0xe8
add ecx, ecx
jmp 0x1c83e21
sub edx, ecx
cmp ebp, 0x50751507
sub esi, ecx
stc
jmp 0x11ba285
mov ecx, dword [ebp - 8]
movzx edi, word [ecx + edi*2 + 0x1c8]
clc
cmp edx, 0x1000000
jmp 0x1d387c1
mov dword [ebp - 0x14], ebx
mov eax, 1
sbb ch, dh
mov edi, edi
mov ecx, dword [ebp - 0xc]
cmc
movzx ecx, word [ecx + eax*2]
test bp, 0x2e49
clc
stc
cmp edx, 0x1000000
jae 0x1d38289
mov edi, dword [ebp - 4]
cmp eax, 0x77d046cf
cmp dword [ebp + 8], edi
jae 0x1c85972
mov edi, dword [ebp + 8]
btc ebx, eax
adc bx, di
shl bh, cl
movzx ebx, byte [edi]
clc
shl esi, 8
clc
or esi, ebx
sar ebx, cl
add ebx, edi
rcr bh, 0x77
mov ebx, dword [ebp - 0x14]
shl edx, 8
jmp 0x1d38281
jae 0x1c85972
movzx ecx, byte [eax]
test edx, 0xaad6397
shl esi, 8
test bx, 0x5c36
shl edx, 8
or esi, ecx
jmp 0x1d31104
jae 0x1c85972
movzx ecx, byte [eax]
cmp dh, dl
clc
shl esi, 8
cmc
cmp cl, 0x1a
shl edx, 8
or esi, ecx
movzx cx, dh
jmp 0x1d37fe0
lea edi, [edi + edi + 1]
and dword [ebp - 8], eax
cmp eax, ebp
cmp bl, 0x71
cmp edi, 0x100
jae 0x1c83e2d
mov ecx, dword [ebp - 0x18]
jmp 0x1d42665
ret
mov ecx, dword [ebp - 0xc]
jmp 0x11be3c5
mov edi, dword [ebp - 0xc]
test ebp, ecx
sub edx, ecx
stc
sub esi, ecx
mov ecx, dword [ebp - 8]
test al, al
movzx edi, word [ecx + edi*2 + 0x1b0]
cmp eax, eax
cmp edx, 0x1000000
jmp 0x1d436dc
jae 0x1d0cee9
mov eax, dword [ebp + 8]
test ax, bp
cmp di, 0x3ad0
cmp eax, dword [ebp - 4]
jae 0x1c85972
movzx ebx, byte [eax]
cmp edx, esi
shl esi, 8
cmc
shl edx, 8
clc
stc
or esi, ebx
jmp 0x1d0cee2
mov edi, dword [ebp - 0xc]
test si, cx
sub edx, ecx
cmp si, 0x536a
test dh, 0xf3
sub esi, ecx
jmp 0x116a49e
mov dword [ebp - 0x14], eax
jmp 0x1d31c26
sub edx, eax
stc
test ebp, esi
sub esi, eax
cmp dh, ch
jmp 0x1c83e18
dec eax
and eax, dword [edi + 0x2c]
test di, cx
clc
cmc
shl eax, cl
lea ebx, [ebx + eax]
cmp si, 0x6a7
imul ebx, ebx, 0x600
cmp cl, 0x4a
add dword [ebp - 0xc], ebx
cmp esp, ebx
test bp, 0x7c6f
stc
cmp dword [edi + 0x34], 7
jae 0x1d0b0bf
mov ecx, 1
jmp 0x1d32f41
jae 0x1c85972
movzx ecx, byte [eax]
stc
cmc
cmp ah, dl
shl esi, 8
shl edx, 8
stc
cmc
or esi, ecx
inc ecx
dec cl
xchg cx, cx
inc eax
mov dword [ebp + 8], eax
or ecx, 0x21116204
movzx eax, word [edi + 2]
mov ecx, edx
test dx, bx
shr ecx, 0xb
cmp esi, eax
stc
imul ecx, eax
cmp esi, ecx
jae 0x1d1aa83
mov eax, 8
cmovae edx, ebp
movsx edx, ax
add dh, ah
shl ebx, 4
mov dx, 0x73b8
bswap edx
movzx edx, si
mov edx, ecx
jmp 0x1d28895
jae 0x1d06bae
cmp ecx, 0x1000000
jmp 0x1d34973
sub edx, eax
stc
cmp cx, 0x6dba
jmp 0x192ac31
jae 0x11bb51f
mov edx, eax
shr ax, cl
test esi, eax
mov eax, dword [ebp - 8]
stc
add eax, 0xe6c
test esi, 0x91a3f4a
cmp dword [edi + 0x30], 0
jmp 0x1928459
mov dword [ebp - 0xc], eax
jmp 0x1d13e8b
jne 0x19285f5
mov ecx, dword [edi + 0x28]
add eax, esp
bt eax, 0xd3
mov ax, di
mov ebx, dword [edi + 0x14]
dec ax
adc eax, edi
rcr ax, 0x49
movzx ebx, byte [ebx + ecx - 1]
mov eax, dword [edi]
rol ecx, cl
clc
rcl cx, cl
mov ecx, 8
sub cl, al
btr ax, si
clc
bt eax, 0xd4
shr ebx, cl
mov ecx, dword [edi + 4]
mov eax, 1
jmp 0x1d2b045
sub edx, edi
sub esi, edi
cmc
test bx, 0x57d2
lea eax, [eax + eax + 1]
stc
sub ebx, 1
jmp 0x115f7b5
sub esi, eax
ror al, 0x8b
xor ax, cx
mov eax, dword [ebp - 8]
cmp si, 0x74de
test si, si
movzx ecx, word [eax + ecx*2 + 0x180]
clc
cmp eax, 0x4dc46a3a
cmp edx, 0x1000000
jmp 0x1d0a7d3
jmp 0x1d06bb8
jae 0x1d4640d
mov eax, dword [edi + 0x28]
jmp 0x1d3654a
lea ecx, [ecx + ecx + 1]
cmp bp, 0x4e94
cmp ecx, 0x100
jb 0x1d2e759
mov eax, 1
jmp 0x115f7c5
mov dword [ebp - 0x14], ebx
test eax, ebp
test sp, 0x3c5c
cmp edi, 0xe
jmp 0x1d1d02c
jae 0x1d06bae
mov edx, ecx
jmp 0x1c8210e
or esi, ecx
setle ch
movzx ecx, bx
not ch
inc eax
adc ch, 0x9e
neg ch
mov dword [ebp + 8], eax
sar al, cl
movzx eax, word [edi]
mov ecx, edx
test si, di
shr ecx, 0xb
clc
imul ecx, eax
jmp 0x1d41171
jb 0x1c85977
sub eax, eax
cmovbe esi, ecx
pop edi
mov ebx, 0x453d2a3e
setle bh
not esi
pop esi
sets bh
pop ebx
jmp 0x1d08d2d
sub edx, ecx
test edx, esp
jmp 0x1d09ff9
jae 0x1c85977
mov edx, dword [ebp - 4]
clc
test edi, esi
cmp dword [ebp + 8], edx
jmp 0x1c8596c
jae 0x1c85972
movzx ecx, byte [eax]
test si, 0x32c1
shl esi, 8
shl edx, 8
jmp 0x1c8452b
jmp 0x1d0a063
sub edx, ecx
sar edi, 0x5d
shr edi, 0xd1
sub esi, ecx
mov edi, dword [ebp - 8]
cmc
cmp dl, 0xd3
mov dword [ebp - 0xc], 0xc
cmp esp, 0x25cb66b5
jmp 0x1d0ebc2
mov esp, ebp
movzx ebp, ax
cmovl ebp, eax
pop ebp
jmp 0x11ba885
sub esi, ecx
cmp edx, 0x1000000
jmp 0x1d2569f
sub edx, ecx
cmc
sub esi, ecx
cmp eax, 0x28f1714
clc
lea edi, [edi + edi + 1]
cmc
test edx, esi
clc
cmp edi, 0x40
jmp 0x1d1d429
jae 0x1d1a609
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jmp 0x1d2d09e
jb 0x115f7be
mov ebx, edi
clc
cmc
test ebx, 0x65c319b5
shr ebx, 1
jmp 0x1d325e3
mov ecx, dword [edi + 0x24]
mov ebx, dword [edi + 0x38]
cmp ecx, ebx
jmp 0x1c83ce9
mov dword [ebp - 0xc], 0
add edi, 0x664
jmp 0x1d12b04
jae 0x1c86182
shl ebx, 4
cdq
mov edx, ecx
jmp 0x1d38070
shl edx, 8
or esi, ecx
inc eax
mov ecx, edx
cmc
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
cmp esi, ecx
jmp 0x1d3241b
jmp 0x11ba289
inc eax
mov dword [ebp + 8], eax
cmovb eax, eax
mov eax, edx
shr eax, 0xb
test esp, ebp
imul eax, edi
cmp esi, eax
jmp 0x11697aa
jne 0x1d3f2a6
mov ecx, dword [ebp - 8]
sbb bx, si
bsr ebx, ecx
add ecx, 0x644
adc bx, sp
mov ebx, 4
test bp, 0x5380
cmp ebx, esp
mov dword [ebp + 8], eax
bswap ax
mov dword [ebp - 0xc], ecx
jmp 0x116a524
add edi, 0xa68
test dx, si
clc
cmp edx, 0x1000000
jae 0x1c84540
cmp eax, dword [ebp - 4]
jmp 0x1c8962f
mov esp, ebp
mov bp, sp
not ebp
pop ebp
ret
mov dword [ebp - 0x18], 2
jmp 0x1d3ae02
shl edx, 8
or esi, ebx
jmp 0x1d1d05d
jae 0x1c85972
movzx ecx, byte [eax]
shl esi, 8
test ecx, 0x696e3148
cmp ebx, 0x4854201c
shl edx, 8
cmp cx, 0x1a11
jmp 0x1d31121
jne 0x1d47ae1
cmp dword [edi + 0x2c], 0
jmp 0x1d47adb
mov ecx, dword [ebp - 8]
sub edx, eax
sub esi, eax
stc
rol ah, cl
mov eax, dword [ebp - 0xc]
xor di, cx
movzx edi, word [ecx + eax*2 + 0x198]
mov eax, dword [ebp + 8]
clc
cmp di, bx
mov dword [ebp - 0x18], 3
cmp si, bp
stc
clc
cmp edx, 0x1000000
jmp 0x1d3658e
dec edi
and edi, edx
cmp edi, ebx
cmp ebp, 0x1efd7aac
sub esi, edi
sub ebx, 1
jmp 0x1d0d381
jae 0x1d0be9e
cmp eax, dword [ebp - 4]
jmp 0x1d257c9
lea eax, [ecx + eax*2 + 0x55e]
mov dword [ebp - 0xc], eax
jmp 0x1d3ae12
inc eax
test esp, 0x789e506f
mov dword [ebp + 8], eax
neg al
sub eax, edi
and ax, bp
mov eax, edx
shr eax, 0xb
cmc
imul eax, ecx
cmp edi, ebp
cmp edi, 0x797b2729
cmp esi, eax
jmp 0x1d1e56f
sub edx, ecx
cmovnp eax, esp
sub esi, ecx
lea ebx, [edi + 0x204]
bsf di, bp
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x10], 0x100
mov edi, 1
btr eax, ebp
mov eax, dword [ebp + 8]
cmc
test esp, ebx
cmp edx, 0x1000000
jmp 0x1d46060
jae 0x1d3f296
mov eax, edi
bswap ecx
and eax, 1
rcl cl, cl
sar cl, cl
cmp cl, 0x49
or eax, 2
rcl ch, 0xb9
sbb ch, bl
test bh, ch
mov ecx, ebx
cmp sp, dx
shl eax, cl
xchg cl, cl
mov ecx, dword [ebp - 8]
sub eax, edi
jmp 0x1d19c32
inc ecx
cmp di, bp
mov dword [ebp + 8], ecx
bts cx, di
mov ecx, edx
cmp di, 0x113d
stc
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
cmc
test cx, 0x6336
cmp esi, ecx
jmp 0x1d2baa6
jb 0x1d38e2c
sub edi, 0x40
mov dword [ebp + 8], eax
cmp edi, 4
jmp 0x1d0ace3
jae 0x11bd13f
mov eax, dword [ebp - 0xc]
rcr edx, 0x3a
mov edi, dword [ebp - 8]
mov edx, esi
xor dh, 0x16
lea eax, [eax + 0xf]
shld dx, sp, 0x73
shl eax, 4
mov dx, 0xb37
add eax, ebx
movzx edi, word [edi + eax*2]
add dx, si
mov eax, dword [ebp + 8]
mov edx, ecx
jmp 0x1d23e14
jae 0x1d170bd
mov edi, dword [ebp - 8]
movsx edx, di
rcl dx, cl
mov edx, eax
shrd eax, ecx, 0xbe
mov eax, dword [ebp + 8]
jmp 0x1d0bade
jae 0x1d364fd
cmp eax, ecx
jmp 0x1d39025
jb 0x1d229e0
mov edi, 3
sal eax, cl
mov eax, dword [ebp - 8]
and bx, di
jmp 0x1d2afbc
shr ecx, 0xb
test sp, 0x15ce
clc
test edx, ebp
imul ecx, edi
cmp di, sp
clc
test si, cx
cmp esi, ecx
jmp 0x1d1e12f
cmp ecx, 0x1000000
jmp 0x1d3fd53
jae 0x11be289
mov eax, dword [ebp + 8]
cmc
cmp eax, dword [ebp - 4]
jmp 0x11be262
mov dword [ebp - 0x10], 8
jmp 0x1d44782
jae 0x1c85972
movzx ecx, byte [eax]
cmc
shl esi, 8
test sp, dx
jmp 0x1d0be98
jmp 0x1d38e2c
lea ebx, [ebx + edi + 0x104]
jmp 0x11bdb05
shl edi, 7
sete bl
movsx bx, dl
lea ebx, [edi + eax + 0x360]
mov eax, dword [ebp + 8]
bswap edi
mov di, si
mov di, 0x6366
mov edi, 1
jmp 0x1d261d4
shl eax, cl
dec ch
mov ecx, dword [edi]
jmp 0x11bdccb
jmp 0x1d06bb8
jae 0x116a391
mov edx, ecx
add edi, edi
not eax
jmp 0x1d0c996
cmp edx, 0x1000000
jmp 0x1d19917
jae 0x1c85972
movzx edi, byte [eax]
cmp dh, 0xc9
cmc
shl esi, 8
clc
test ax, 0x12b3
cmp ebp, ecx
shl edx, 8
clc
test sp, 0x478e
cmp ebp, 0x49d947d4
or esi, edi
jmp 0x1d1a5f8
mov eax, dword [ebp - 0xc]
movzx edi, word [eax + ecx*2]
cmp edx, 0x1000000
jmp 0x11bd196
inc eax
mov dword [ebp + 8], eax
shld cx, ax, 0x9c
sbb ecx, 0x211543d4
mov ecx, edx
cmp edi, 0x5ae16706
jmp 0x1d23dc6
or esi, ecx
sete cl
bswap cx
inc eax
mov dword [ebp + 8], eax
mov ecx, edx
test cx, 0x25c4
clc
test ax, bp
shr ecx, 0xb
cmc
imul ecx, edi
cmp esi, ecx
jmp 0x1d3bc55
jae 0x1c85972
movzx ecx, byte [eax]
stc
cmp ax, bp
shl esi, 8
shl edx, 8
cmp esi, 0x3d3e34cf
clc
or esi, ecx
mov ecx, ebx
xchg cl, cl
inc eax
or ecx, 0x1d5160bf
mov dword [ebp + 8], eax
neg ecx
test edi, ecx
mov ecx, edx
shr ecx, 0xb
stc
imul ecx, edi
test bx, ax
clc
cmp esi, ecx
jmp 0x1c844c8
mov dword [ebp - 0x10], eax
jmp 0x1d45137
jae 0x1d0a050
mov edx, ecx
cmc
test dl, ch
cmp ebx, ebp
add edi, edi
jmp 0x1c89add
dec ebx
test bl, 0xf0
jmp 0x1c83e78
jmp 0x1d2e759
jae 0x1d34982
cmp eax, dword [ebp - 4]
jae 0x1c85972
pop edi
setl bl
cbw
pop esi
cwde
jmp 0x1d38fe7
test ecx, ecx
jmp 0x19285e3
or esi, edi
not di
inc eax
shr edx, 1
cmp bl, 0xce
mov edi, esi
test esp, 0xc2e0d00
sub edi, edx
shr edi, 0x1f
jmp 0x1d197b6
jmp 0x1d46415
jae 0x1d31113
cmp eax, dword [ebp - 4]
jmp 0x116b00a
inc eax
mov dword [ebp + 8], eax
bsr cx, bp
clc
sub ecx, edi
movzx eax, word [ebx + edi*2]
and ch, dh
shrd ecx, edi, 0
mov ecx, edx
test ebp, eax
shr ecx, 0xb
cmp esp, 0x7c040698
clc
cmp sp, cx
imul ecx, eax
clc
cmp ebp, 0x7fa12947
cmp esi, ecx
jae 0x1169086
mov edx, ecx
add edi, edi
jmp 0x1d38fdd
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
jmp 0x1d2570b
inc edi
mov dword [ebp + 8], edi
btc edi, 0x5a
mov edi, edx
test edi, 0x1a8c7790
cmp cx, sp
cmp bx, 0x5c8e
shr edi, 0xb
imul edi, ecx
cmc
test cl, 0x7e
cmp esi, edi
jmp 0x1d42ba0
jae 0x1d31800
cmp eax, dword [ebp - 4]
jmp 0x1d317d2
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
jmp 0x1d2bbeb
jmp 0x11690a4
mov eax, 3
pop ebx
jmp 0x1d102d4
jae 0x1c85972
movzx edi, byte [eax]
cmp edi, ebp
clc
shl esi, 8
test ch, 0xea
cmp ecx, esp
shl edx, 8
jmp 0x1d364f7
jae 0x115f7be
cmp edi, 4
jmp 0x1d229d3
push ebp
bts ebp, edi
mov ebp, esp
mov edx, 0x76da6417
xor edx, ecx
sub dx, dx
sub esp, 0x18
btc edx, edi
or dx, di
sal edx, cl
push ebx
push esi
xadd bx, bx
push edi
mov edi, ecx
xor bx, cx
mov dx, 0x6089
rcr cl, cl
mov ecx, dword [ebp + 8]
shl dh, 0x9f
mov esi, edi
mov edx, dword [edi + 0x1c]
test ebx, esi
bt si, bp
mov esi, dword [edi + 0x20]
xor bx, 0x5879
sal bh, cl
btc ebx, ebx
lea ecx, [ecx + eax]
adc bx, bp
btr eax, 0x46
bt eax, 0xd3
mov eax, dword [edi + 0x10]
bts bx, di
cmc
rcr bh, 0xdc
mov dword [ebp - 4], ecx
shr ecx, 0x75
clc
xadd ch, bl
mov ecx, dword [edi + 0x34]
and bx, sp
shr bh, cl
rol bx, cl
mov dword [ebp - 0xc], ecx
movsx bx, al
bsr ebx, esi
mov ecx, dword [edi + 8]
mov ebx, 1
cmc
shl ebx, cl
shl cl, 0x43
shr cx, cl
bts cx, bx
mov ecx, dword [ebp - 0xc]
test eax, edi
cmp esp, ebx
shl ecx, 4
mov dword [ebp - 8], eax
dec ebx
and ebx, dword [edi + 0x2c]
test esi, 0x67493020
add ecx, ebx
cmp ax, sp
movzx eax, word [eax + ecx*2]
jmp 0x1d49597
jmp 0x1d0ebcc
jmp 0x116a527
mov dword [ebp - 8], 0x100
sal bl, 0x6e
bsf di, di
mov edi, 1
mov edi, edi
cmc
mov ebx, dword [ebp - 8]
bts eax, ebp
lea ecx, [ecx + ecx]
neg ah
or ah, 0xb1
mov eax, ebx
and eax, ecx
mov dword [ebp - 0x18], ecx
lea ecx, [eax + edi]
stc
test al, 0x2d
add ecx, ebx
sal ebx, cl
sal bh, 0xc
mov ebx, dword [ebp - 0xc]
test ebp, edi
movzx ecx, word [ebx + ecx*2]
mov dword [ebp - 0x10], ecx
test sp, bx
stc
cmp bx, 0xcbb
cmp edx, 0x1000000
jae 0x1d1d068
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 4]
jmp 0x1168dda
jae 0x11bd8ed
mov edx, ecx
jmp 0x1d2b95f
mov ecx, dword [ebp - 4]
cmp bp, di
cmp edx, 0xe3d0007
sub ebx, 4
stc
cmp edx, 0x1000000
jmp 0x1d209e7
jae 0x1d3fd9c
cmp eax, dword [ebp - 4]
jae 0x1c85972
shl ecx, 8
sub edx, esp
mov edx, ecx
shl cl, cl
rol ch, cl
bts ecx, esp
movzx ecx, byte [eax]
shl esi, 8
cmp edx, ebx
cmp si, 0x2d6
or esi, ecx
movsx cx, bl
cmovbe cx, di
inc eax
cmp si, cx
rcr ch, cl
sub ecx, 0x3d76abf
mov dword [ebp + 8], eax
rcr ecx, cl
movzx ecx, cx
cmc
mov ecx, edx
stc
test sp, si
shr ecx, 0xb
imul ecx, edi
cmc
clc
cmp esi, ecx
jmp 0x11be311
cmp esi, ecx
jmp 0x1d0bc1e
jmp 0x1d3b442
jae 0x192866a
mov edx, edi
cmp ecx, 0x70342574
test dx, dx
test ecx, 0x28771d4
add eax, eax
jmp 0x1168d97
jae 0x1d3112d
cmp eax, dword [ebp - 4]
jmp 0x1d12b90
jmp 0x1d1aaa2
jmp 0x1d1aaa2
jae 0x1d37feb
cmp eax, dword [ebp - 4]
jmp 0x11b9d8f
sub eax, eax
test ah, 0x59
cmc
cmp ecx, esi
mov edi, dword [edi + 0x14]
sub edi, ebx
bts ebx, edi
neg bx
cmp esi, 0x319a0cc2
add edi, ecx
movzx ecx, byte [edi + eax]
jmp 0x1d3b42c
jae 0x1c85972
movzx ecx, byte [eax]
clc
cmp ax, bp
shl esi, 8
clc
stc
shl edx, 8
or esi, ecx
inc eax
cmc
clc
mov dword [ebp + 8], eax
mov eax, edx
test di, dx
shr eax, 0xb
clc
imul eax, dword [ebp - 0x10]
cmp esi, eax
jmp 0x1927661
je 0x11bdcf2
mov ecx, dword [edi + 0x24]
test si, 0x4609
jmp 0x1d35a93
mov dword [ebp - 0x10], eax
cmc
cmp dh, 0x3e
cmp edx, 0x1000000
jae 0x1d4647c
mov eax, dword [ebp + 8]
test ebx, 0x7a16510f
cmp eax, dword [ebp - 4]
jmp 0x1d4645f