Function at 0x1022fb93
Capabilities:
Encrypt data using speck

Disassembly:
jae 0x1024b00a
cmp eax, dword [ebp - 4]
jmp 0x10212494
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 3
cmp edx, 0x1000000
jmp 0x10231238
dec ebx
clc
mov dword [ebp - 0x14], ebx
cmp edi, 0xe
jmp 0x1021e2bc
jmp 0x102df236
jae 0x10276fc2
shl ecx, 8
mov edx, ecx
movzx ecx, byte [eax]
shl esi, 8
or esi, ecx
inc eax
add ecx, 0x6cc0700
mov dword [ebp + 8], eax
jmp 0x1024b00a
imul ebx, ebx, 0x600
test bx, dx
add dword [ebp - 0xc], ebx
jmp 0x10244867
mov dword [ebp + 8], edi
mov edi, edx
cmp di, 0x5944
shr edi, 0xb
test cl, 0xd3
cmp si, cx
imul edi, ecx
stc
test cx, 0x3934
cmp dl, 0xe5
cmp esi, edi
jae 0x102780fa
mov edx, edi
add eax, eax
jmp 0x10220f80
mov dword [ebp - 0xc], eax
jne 0x10213ac1
cmp dword [edi + 0x2c], 0
je 0x10244867
mov ecx, dword [edi + 0x24]
test ecx, ecx
jmp 0x10230c6a
jae 0x10276fc2
movzx edi, byte [eax]
test bp, 0xe90
shl esi, 8
cmp bp, di
cmc
shl edx, 8
cmp cl, 0x9f
test edx, 0x49973fcf
or esi, edi
mov di, 0x3e8d
jmp 0x10219886
sub edx, ecx
sub esi, ecx
mov edi, dword [ebp - 8]
cmc
clc
mov dword [ebp - 0xc], 0xc
jmp 0x10237ca3
jae 0x10231ca7
mov eax, dword [ebp + 8]
cmp edi, 0x1b530257
jmp 0x1023fa3a
mov esp, ebp
pop ebp
jmp 0x1021e1eb
cmp edx, 0x1000000
jmp 0x1021820b
jae 0x1024dc53
cmp eax, dword [ebp - 4]
jmp 0x102771a3
jb 0x1022fadd
mov ebx, edi
test cx, 0x4e6a
shr ebx, 1
jmp 0x1021072a
jae 0x102130a4
mov edi, dword [ebp - 4]
cmp bx, 0x2933
cmp dword [ebp + 8], edi
jae 0x10276fc2
mov edi, dword [ebp + 8]
rol ebx, cl
movsx ebx, dx
movzx ebx, byte [edi]
test ecx, 0x4e323000
cmp sp, bp
shl esi, 8
cmp ch, 0x44
cmp ah, bh
or esi, ebx
shr bl, 0x73
add bh, 0x40
btc ebx, 0x14
mov ebx, dword [ebp - 0x14]
clc
cmp di, 0x7d71
shl edx, 8
jmp 0x10233bbf
sub edx, eax
sub esi, eax
cmp ax, di
sal al, 0x14
mov eax, dword [ebp - 8]
cmp edx, esp
stc
movzx ecx, word [eax + ecx*2 + 0x180]
cmp edx, 0x1000000
jmp 0x102155e3
inc eax
shr edx, 1
cmp edx, esp
mov edi, esi
jmp 0x1023e300
sub edx, ecx
jmp 0x1024b5c5
sub edx, ecx
sub esi, ecx
rcr bl, cl
adc bl, 0x17
lea ebx, [edi + 0x204]
xor ax, 0x1ff5
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x10], 0x100
cbw
mov edi, 1
rcl ah, cl
mov eax, dword [ebp + 8]
test ecx, edi
cmc
cmp edx, 0x1000000
jmp 0x10216656
inc eax
test ebp, esi
clc
mov dword [ebp + 8], eax
rcl eax, 0xe3
not al
mov eax, edx
clc
shr eax, 0xb
test bh, bl
imul eax, dword [ebp - 0x10]
jmp 0x10234c9f
jb 0x10219d9c
mov eax, dword [ebp - 0x14]
cmc
sub eax, ecx
cmp dx, sp
lea edi, [edi + eax]
test bp, sp
clc
cmp dword [ebp - 0xc], 4
jmp 0x1024d26f
jae 0x10276fc2
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
stc
or esi, ecx
inc eax
mov dword [ebp + 8], eax
adc ch, al
btc ax, sp
movzx eax, word [edi + 2]
bt cx, bx
rol cx, cl
mov ecx, edx
stc
cmp ah, dh
shr ecx, 0xb
cmc
imul ecx, eax
cmp esi, ecx
jmp 0x1023dc4a
mov edi, dword [ebp - 0xc]
sub edx, ecx
test ah, al
sub esi, ecx
movsx ecx, si
stc
bts cx, ax
mov ecx, dword [ebp - 8]
cmc
movzx edi, word [ecx + edi*2 + 0x1c8]
cmp edx, 0x1000000
jmp 0x1024422c
mov eax, 1
shld ecx, ebx, 0x3c
bt ecx, ebx
cmp cx, 0x648b
mov edi, edi
shld cx, dx, 0x94
shl cx, cl
jmp 0x1022c265
jmp 0x102de381
sub edx, ecx
cmp bl, 0x1a
sub esi, ecx
test ebp, 0x80919d3
stc
lea edi, [edi + edi + 1]
cmp sp, ax
test si, 0x485c
cmp edi, 0x40
jb 0x10234116
lea edi, [edi - 0x40]
clc
test ch, ah
mov dword [ebp + 8], eax
cmp edi, 4
jmp 0x10217332
jae 0x10219fa5
mov eax, dword [ebp + 8]
jmp 0x102df27b
inc eax
test esi, 0x355c493e
cmc
mov dword [ebp + 8], eax
cwde
mov eax, edx
shr eax, 0xb
test edx, ebp
imul eax, edi
cmp esi, eax
jmp 0x1024c589
ret
jae 0x10242d0c
mov eax, edi
and eax, 1
btc cx, dx
or eax, 2
or cx, 0x4edd
xor cl, 0x84
mov ecx, ebx
test di, 0x4ff
stc
shl eax, cl
btc cx, 0x60
sal ecx, 0x30
dec ch
mov ecx, dword [ebp - 8]
sub eax, edi
jmp 0x10229c10
not eax
jmp 0x1021d00f
dec edi
cmp edi, 0x1d070b81
test cx, 0x37ca
and edi, edx
cmp dh, 0xf0
test eax, edi
sub esi, edi
sub ebx, 1
jmp 0x10277aa0
jmp 0x1027810f
jae 0x10276fc2
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
cmp ebp, 0x368015c3
stc
cmp si, sp
or esi, ecx
inc eax
sal ch, cl
mov dword [ebp + 8], eax
mov ecx, edx
shr ecx, 0xb
clc
test esp, 0xf0102d3
imul ecx, edi
cmp sp, cx
test ax, 0x4537
cmp di, 0x4167
cmp esi, ecx
jmp 0x1023e7a3
ret
lea eax, [ecx + eax*2 + 0x55e]
jmp 0x1023d7ca
dec eax
and eax, dword [edi + 0x2c]
shl eax, cl
cmc
lea ebx, [ebx + eax]
jmp 0x102124ed
cmp edx, 0x1000000
jae 0x1021b94f
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jmp 0x1021b933
mov ecx, dword [ebp - 0xc]
cmc
cmp esi, 0x37547275
movzx ecx, word [ecx + eax*2]
jmp 0x1021658b
jae 0x10276fc2
movzx ecx, byte [eax]
test esp, 0x6fc24682
cmp bh, cl
shl esi, 8
cmp bp, ax
stc
test dx, sp
shl edx, 8
stc
cmp cl, 0xdc
or esi, ecx
inc eax
movzx ecx, di
rcr ch, cl
mov dword [ebp + 8], eax
mov ecx, edx
shr ecx, 0xb
cmc
imul ecx, edi
test cl, 0x1b
cmp esi, ecx
jae 0x10215588
mov edx, ecx
jmp 0x1024b648
mov ecx, dword [ebp - 0xc]
cmc
jmp 0x1021827d
jae 0x10243501
mov ecx, dword [ebp - 0x18]
jmp 0x102373a4
jae 0x1022e13c
cmp eax, dword [ebp - 4]
jae 0x10276fc2
movzx ecx, byte [eax]
shl esi, 8
cmp dl, al
clc
test di, sp
shl edx, 8
or esi, ecx
inc eax
movsx ecx, bp
stc
ror cx, 0xb0
mov dword [ebp + 8], eax
mov cx, 0x8dd
shr ch, cl
mov ecx, edx
clc
cmp esp, 0x61c07a5d
shr ecx, 0xb
stc
test ax, si
cmc
imul ecx, edi
test bp, dx
test si, 0x45d7
cmp esi, ecx
jae 0x1021c0f7
mov edx, ecx
jmp 0x1022e781
inc ecx
mov dword [ebp + 8], ecx
add ch, dl
mov ecx, edx
jmp 0x102362d6
jmp 0x1021558c
mov ecx, dword [edi + 0x24]
mov ebx, dword [edi + 0x38]
cmp ch, 0xa0
cmp ecx, ebx
jmp 0x102793c6
xor eax, eax
test sp, si
jmp 0x1023736d
sub edx, ecx
sub esi, ecx
jmp 0x1022a40c
jne 0x1022c265
mov eax, dword [ebp - 0x18]
test ch, 0x3a
test di, sp
cmp edx, 0x1000000
jae 0x10276fc9
mov edx, dword [ebp - 4]
cmp dx, di
test di, 0x44a4
cmp dword [ebp + 8], edx
jmp 0x10276fbc
push ebp
add ebp, esi
mov ebp, esp
sub esp, 0x18
push ebx
rcl dl, cl
shr ebx, 0x19
push esi
push edi
shld edx, esp, 0xcd
mov edi, ecx
shrd bx, cx, 0x70
bts edx, edi
inc si
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x1c]
cmp bp, bx
mov esi, eax
mov esi, dword [edi + 0x20]
sal bl, cl
add ecx, eax
inc ah
mov ebx, 0x2a3965b6
mov eax, dword [edi + 0x10]
bts ebx, edx
mov ebx, esi
rcr bh, cl
mov dword [ebp - 4], ecx
mov ecx, dword [edi + 0x34]
btc ebx, edx
shl bh, cl
shl bx, 0x11
mov dword [ebp - 0xc], ecx
rcr ecx, 0x71
shl cx, cl
rcr ecx, cl
mov ecx, dword [edi + 8]
adc ebx, eax
mov ebx, 1
test eax, esp
shl ebx, cl
sbb ch, bh
or cl, 0xcd
adc cl, 0x6d
mov ecx, dword [ebp - 0xc]
cmp dx, di
test cx, di
shl ecx, 4
mov dword [ebp - 8], eax
jmp 0x10276b26
and eax, ecx
stc
test bl, 0x52
test sp, si
mov dword [ebp - 0x18], ecx
lea ecx, [eax + edi]
add ecx, ebx
mov ebx, dword [ebp - 0xc]
cmc
movzx ecx, word [ebx + ecx*2]
cmp ebx, edi
mov dword [ebp - 0x10], ecx
cmp edx, 0x1000000
jmp 0x1023015c
jae 0x1022e77a
mov ecx, dword [ebp + 8]
cmp si, ax
clc
cmp ecx, dword [ebp - 4]
jmp 0x1023140b
jne 0x10230c76
mov ecx, dword [edi + 0x28]
rcl ah, 0x66
mov ebx, dword [edi + 0x14]
xadd eax, eax
shr eax, cl
movzx ebx, byte [ebx + ecx - 1]
mov al, ch
clc
xchg ch, cl
mov eax, dword [edi]
cmc
sar cx, 0xa7
and ecx, edx
mov ecx, 8
cmc
test eax, 0x491b2e18
sub cl, al
movsx eax, di
xchg ah, al
shr ebx, cl
mov ecx, dword [edi + 4]
rcl eax, 0x75
mov eax, 1
cmc
clc
shl eax, cl
movzx ecx, cx
mov ecx, dword [edi]
jmp 0x10229c1c
jae 0x102214e5
cmp eax, dword [ebp - 4]
jmp 0x102214c4
jae 0x10276fc2
movzx ebx, byte [ecx]
test ebx, 0x459b165d
test edi, eax
shl esi, 8
cmp esp, ebx
shl edx, 8
clc
test esi, 0x7027553c
cmc
or esi, ebx
jmp 0x1022e774
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
jmp 0x10219d95
jae 0x10276fc2
movzx ecx, byte [eax]
cmc
shl esi, 8
shl edx, 8
cmc
or esi, ecx
xchg cl, cl
inc cl
movsx ecx, cx
inc eax
mov dword [ebp + 8], eax
rol ch, 0x63
bt ecx, eax
sar ah, cl
movzx eax, word [edi]
rol ecx, 0xa
movzx ecx, cx
stc
mov ecx, edx
test bp, 0x542a
clc
cmp ebx, esi
shr ecx, 0xb
cmp ecx, ebx
test ecx, 0x5d3d7b32
imul ecx, eax
test di, 0x1915
cmp esi, ecx
jmp 0x10242da5
sub edx, ecx
cmp edi, 0x6354247b
sub esi, ecx
mov ecx, dword [ebp - 8]
clc
jmp 0x1024919c
inc eax
mov dword [ebp + 8], eax
rcr ah, cl
mov eax, edx
cmp si, 0x37e8
cmp esp, ebx
shr eax, 0xb
test si, 0x7946
cmc
imul eax, ecx
cmp esi, eax
jmp 0x102447d1
inc edi
jmp 0x102130a1
jb 0x10233be2
mov edi, 3
add bh, bl
cmp ebp, ebx
dec ebx
mov eax, dword [ebp - 8]
shl edi, 7
movsx ebx, ax
lea ebx, [edi + eax + 0x360]
mov eax, dword [ebp + 8]
xchg edi, edi
mov edi, 1
jmp 0x10234116
add edi, edi
jmp 0x1021d3cc
and ebx, dword [edi + 0x2c]
add ecx, ebx
cmp edx, esp
clc
movzx eax, word [eax + ecx*2]
test ch, 0xcc
cmp bx, di
mov dword [ebp - 0x10], eax
stc
clc
cmp edx, 0x1000000
jmp 0x1021d428
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
stc
cmc
clc
cmp edx, 0x1000000
jmp 0x102474ac
shl edx, 8
stc
cmp dh, 0x8a
or esi, ecx
dec cx
movsx cx, dl
movsx ecx, dx
inc eax
or cx, bp
mov ecx, edx
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
cmp cx, 0x54a0
jmp 0x1024b609
cmp esi, eax
jae 0x1022d4d8
mov edx, eax
mov eax, dword [ebp - 8]
add eax, 0xe6c
cmp dword [edi + 0x30], 0
jmp 0x10213aae
jmp 0x10219d95
lea ebx, [ebx + edi + 0x104]
jmp 0x1023155d
mov edi, dword [ebp - 0xc]
test cl, 0xbb
clc
jmp 0x102318bb
mov dword [ebp - 0x14], ebx
jmp 0x1022fad7
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
cmp ebp, edi
test di, dx
cmp esi, ecx
jae 0x102de376
mov edx, ecx
add edi, edi
jmp 0x10220959
mov edi, dword [edi + 0x14]
sub edi, ebx
rol ebx, cl
not bx
lea edi, [edi + ecx]
adc cx, sp
add ecx, 0x35d5086f
movzx ecx, byte [edi + eax]
bswap edi
mov dword [ebp - 8], 0x100
sub bl, 0xcc
shrd ebx, ecx, 0xbc
mov edi, 1
clc
bt eax, edi
rcl eax, cl
mov edi, edi
mov ebx, dword [ebp - 8]
movzx eax, bx
shld ax, bp, 0xd6
ror ah, cl
add ecx, ecx
xor eax, esp
adc ah, 0x3a
cbw
mov eax, ebx
jmp 0x10230122
add edi, 0xa68
cmc
cmp edx, 0x1000000
jae 0x10231876
cmp eax, dword [ebp - 4]
jmp 0x10231850
shl esi, 8
cmp edx, esi
test bx, 0x596d
shl edx, 8
or esi, ebx
jmp 0x1021dcd1
mov dword [ebp - 0xc], eax
jmp 0x1021c7a3
mov dword [ebp - 0x14], 0
jmp 0x1027a57d
jae 0x10219d72
mov eax, 8
btr dx, dx
xor edx, 0x6b9403cd
bt edx, ecx
shl ebx, 4
mov edx, ecx
jmp 0x102351e3
sub edi, edx
clc
stc
shr edi, 0x1f
jmp 0x10220a3d
jae 0x1023618e
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
lea eax, [eax + 0xf]
shl eax, 4
add eax, ebx
adc dx, 0x74dc
movzx edi, word [edi + eax*2]
rdtsc
mov eax, dword [ebp + 8]
clc
mov edx, ecx
stc
test dh, 0xfe
cmp ecx, 0x1000000
jmp 0x1020f32f
cmp eax, dword [ebp - 4]
jmp 0x102473ae
jmp 0x1023736d
jae 0x10276fc2
movzx ecx, byte [eax]
shl esi, 8
stc
jmp 0x10234c64
mov ecx, dword [ebp - 4]
sub ebx, 4
cmp si, si
cmp edx, 0x1000000
jae 0x10219887
cmp eax, ecx
jmp 0x102146ab
jae 0x1022efca
shl ebx, 4
cdq
movzx dx, cl
mov edx, ecx
jmp 0x1024cc2c
jb 0x102df236
mov eax, 1
jmp 0x1022fae6
mov ebx, 4
stc
test bh, 0x15
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], ecx
movzx ecx, dx
rcl ecx, cl
mov dword [ebp - 0x14], ebx
add ax, sp
neg ax
jmp 0x1021c7a3
jae 0x1022d056
cmp eax, dword [ebp - 4]
jmp 0x1022d029
jae 0x10244f4b
mov edi, dword [ebp - 8]
rcr dh, 0xc7
xor dl, ah
mov edx, eax
or eax, edi
sbb ax, bp
shl ax, cl
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], 0
add edi, 0x664
jmp 0x10247524
cmp dword [edi + 0x34], 7
jae 0x1022ec22
mov ecx, 1
jmp 0x10211e52
jae 0x10276fc2
movzx ecx, byte [eax]
cmc
clc
shl esi, 8
stc
clc
test al, 0x80
shl edx, 8
stc
or esi, ecx
jmp 0x10219f99
mov ecx, dword [ebp - 8]
btc di, 0x7d
sub edx, eax
shrd edi, eax, 0x93
sub esi, eax
mov eax, dword [ebp - 0xc]
and edi, 0x52df1ce5
movzx edi, word [ecx + eax*2 + 0x198]
jmp 0x1020fcd3
sub edx, eax
cmp si, cx
cmp si, 0x52b0
sub esi, eax
lea ecx, [ecx + ecx + 1]
clc
cmp ecx, 0x100
jmp 0x102434fb
jae 0x1021d3b2
mov edx, ecx
jmp 0x10233cae
jmp 0x10237caa
jae 0x10276fc2
movzx edi, byte [eax]
test dx, ax
clc
shl esi, 8
shl edx, 8
cmc
clc
test cl, al
or esi, edi
jmp 0x10231ca1
jae 0x10234c7b
cmp eax, dword [ebp - 4]
jmp 0x1023ff9f
mov dword [ebp - 0x18], 2
jmp 0x10246cc0
jae 0x1021dcdd
mov eax, dword [ebp + 8]
jmp 0x1024cc22
jae 0x10276fc2
movzx ebx, byte [eax]
cmp cl, 0x4b
jmp 0x1023ce7e
movzx edi, word [ecx + edi*2 + 0x1b0]
cmp bx, 0x6ae1
cmp ax, bp
cmp edx, 0x1000000
jmp 0x1022e10a
mov ecx, edx
cmp bp, cx
shr ecx, 0xb
clc
test ebx, 0x32e17437
cmp bp, dx
imul ecx, edi
cmp ebx, edx
cmp esi, ecx
jae 0x10215588
cmp ecx, 0x1000000
jae 0x1024b03e
cmp eax, dword [ebp - 4]
jae 0x10276fc2
pop edi
not si
cbw
pop esi
setl ah
bswap eax
mov eax, 3
not bx
pop ebx
jmp 0x10215b52
sub esi, ecx
rcr cl, 3
add ch, 0x52
lea edi, [edi + edi + 1]
rcl ch, 0x10
add cx, sp
bts ecx, eax
mov ecx, dword [ebp - 0x10]
cmc
cmp sp, 0x5137
cmp edi, ecx
jmp 0x1021a092
cmp esi, ecx
jmp 0x10246c20
jmp 0x1021558c
jae 0x10246ac1
mov edx, eax
test ax, ax
add ecx, ecx
jmp 0x10246ad2
cmp eax, dword [ebp - 4]
jmp 0x1024903c
lea ebx, [ebx + edi + 4]
jmp 0x1023dba0
jae 0x1022fadd
cmp edi, 4
jmp 0x10233bd2
jae 0x102198dd
mov edx, ecx
jmp 0x102dfe72
inc eax
test bl, 0xfe
mov dword [ebp + 8], eax
add ax, 0x4285
sbb cx, sp
movzx eax, word [ebx + edi*2]
sal ch, cl
mov ecx, edx
shr ecx, 0xb
stc
test ax, di
imul ecx, eax
test esp, ecx
cmc
cmp esi, ecx
jmp 0x1024dc35
dec ebx
jmp 0x10233e15
jb 0x10276fc9
xor eax, eax
mov edi, 0x4e103d21
pop edi
pop esi
mov ebx, 0x46c6044a
cmovg bx, dx
pop ebx
mov esp, ebp
mov bp, si
bswap bp
movsx ebp, bp
pop ebp
jmp 0x10221c1d
jae 0x10276fc2
movzx ecx, byte [eax]
shl esi, 8
cmc
cmp ecx, 0x6dfe39ec
shl edx, 8
cmc
or esi, ecx
dec ch
jmp 0x1024dc45
jne 0x10242d15
mov ecx, dword [ebp - 8]
sar bx, 0xfd
movzx ebx, di
lea ecx, [ecx + 0x644]
jmp 0x102441ad
sub edx, edi
stc
test ax, 0x308c
sub esi, edi
cmp ch, 0x62
lea eax, [eax + eax + 1]
cmp dx, 0x4c55
sub ebx, 1
jmp 0x102362cb
jae 0x1022ef41
mov eax, dword [edi + 0x28]
jmp 0x1023fe90
mov dword [ebp - 0x10], 8
jmp 0x10234cd7
sub edx, ecx
sub esi, ecx
cmc
lea edi, [edi + edi + 1]
test cl, ch
and dword [ebp - 8], eax
cmc
test edi, eax
clc
cmp edi, 0x100
jmp 0x1022e084
mov eax, dword [ebp - 0xc]
movzx edi, word [eax + ecx*2]
clc
stc
cmp di, 0x4d58
cmp edx, 0x1000000
jmp 0x1024850c
cmp eax, dword [ebp - 4]
jmp 0x10244eee
add edi, edi
jmp 0x102e1110
jmp 0x1024b5da