Function at 0x78c4ed
Capabilities:
Encrypt data using speck

Disassembly:
jae 0x837e70
movzx ecx, byte [eax]
stc
clc
shl esi, 8
shl edx, 8
cmp si, si
test bp, bp
cmc
or esi, ecx
jmp 0x8329df
mov dword [ebp - 0x18], 2
jmp 0x83d6d3
cmp edx, 0x1000000
jae 0x837e79
mov edx, dword [ebp - 4]
cmp cx, 0xc10
cmc
cmp dword [ebp + 8], edx
jmp 0x837e6a
jae 0x832df3
mov edx, eax
not ah
btr eax, ebx
xchg al, ah
mov eax, dword [ebp - 8]
cmp ax, 0x776c
test esi, ebp
lea eax, [eax + 0xe6c]
cmp dword [edi + 0x30], 0
jmp 0x789d78
jae 0x787a28
cmp eax, dword [ebp - 4]
jae 0x837e70
movzx ecx, byte [eax]
test si, 0x2cd7
cmp ax, si
cmc
shl esi, 8
cmp esp, 0x14e81e15
shl edx, 8
or esi, ecx
inc eax
mov dword [ebp + 8], eax
add ecx, 0x536e41a0
rcl eax, 0xb9
shl ecx, cl
movzx eax, word [edi]
clc
inc ch
sar cx, 0xbf
mov ecx, edx
cmp bp, dx
shr ecx, 0xb
cmp esp, edi
imul ecx, eax
test ecx, esi
cmp esi, ecx
jmp 0x9714a0
jmp 0x743908
jae 0x837e70
mov edi, dword [ebp + 8]
bt ebx, 0x75
movzx ebx, byte [edi]
shl esi, 8
clc
cmp al, cl
or esi, ebx
mov ebx, dword [ebp - 0x14]
cmp ebp, ebx
clc
shl edx, 8
jmp 0x8380de
cmp esi, eax
jae 0x9718bd
mov edx, eax
test bp, 0x158
add ecx, ecx
jmp 0x8320e1
mov eax, dword [ebp - 0xc]
shrd edi, esi, 0x1d
movzx edi, word [eax + ecx*2]
test di, 0x4d2f
stc
cmp edx, edi
cmp edx, 0x1000000
jmp 0x82f183
jae 0x837e70
movzx edi, byte [eax]
test esi, 0x5a787ed8
shl esi, 8
shl edx, 8
clc
or esi, edi
xchg edi, edi
dec edi
inc eax
shr edx, 1
inc edi
mov edi, esi
sub edi, edx
shr edi, 0x1f
dec edi
and edi, edx
cmc
stc
sub esi, edi
cmp ah, 0x67
stc
test bl, 0x2d
sub ebx, 1
jmp 0x9723b5
jae 0x78925a
cmp eax, dword [ebp - 4]
jae 0x837e70
pop edi
not esi
pop esi
mov bx, di
mov eax, 3
bswap ebx
pop ebx
jmp 0x78cfb8
jb 0x788e49
mov eax, 1
jmp 0x788452
jae 0x837e70
movzx ecx, byte [eax]
test dl, 0xde
cmp sp, bp
stc
shl esi, 8
jmp 0x828496
jae 0x96aa45
cmp eax, dword [ebp - 4]
jmp 0x96aa26
mov dword [ebp - 0xc], eax
jmp 0x8263da
inc ecx
clc
mov dword [ebp + 8], ecx
add cx, 0x650a
mov ecx, edx
shr ecx, 0xb
stc
cmc
jmp 0x96d6d0
jae 0x83dc1a
cmp eax, dword [ebp - 4]
jmp 0x83dbe8
cmp esi, eax
jmp 0x78741c
jmp 0x967675
push ebp
add ebp, 0x27540f04
sar edx, 0xfa
rol dl, cl
mov ebp, esp
shld dx, ax, 0xd8
xchg dl, dl
rol dh, cl
lea esp, [esp - 0x18]
clc
btc dx, di
adc dx, 0x1934
push ebx
bt bx, cx
push esi
btr edx, esp
and dx, 0x4f4d
bt si, 0x42
push edi
and dx, 0x711d
mov edi, ecx
sar dh, cl
cmp esi, 0x1d382307
xor si, 0x433b
mov ecx, dword [ebp + 8]
shrd edx, esi, 0x66
add si, 0x22c2
mov edx, dword [edi + 0x1c]
sbb esi, 0x3cdd5168
btr si, 0x45
mov esi, dword [edi + 0x20]
or bh, 0x55
bts ebx, esp
lea ecx, [ecx + eax]
and bx, di
shl bl, 0x5a
mov eax, dword [edi + 0x10]
mov dword [ebp - 4], ecx
sar cl, 0x36
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0xc], ecx
sal bh, cl
mov ecx, dword [edi + 8]
sal bx, cl
mov ebx, 1
shl ebx, cl
mov ecx, dword [ebp - 0xc]
cmp sp, bp
cmc
shl ecx, 4
jmp 0x78c68e
lea eax, [ecx + eax*2 + 0x55e]
mov dword [ebp - 0xc], eax
jmp 0x9723f1
mov dword [ebp - 8], eax
dec ebx
test cl, 0x8e
and ebx, dword [edi + 0x2c]
clc
stc
add ecx, ebx
movzx eax, word [eax + ecx*2]
test ax, bp
cmc
mov dword [ebp - 0x10], eax
test dx, 0x5588
cmc
clc
cmp edx, 0x1000000
jmp 0x844afa
mov esp, ebp
movzx ebp, sp
bswap bp
pop ebp
ret
jae 0x831ead
mov ecx, 1
jmp 0x788e49
inc eax
test edx, edi
cmc
cmp edx, esi
mov dword [ebp + 8], eax
mov eax, edx
shr eax, 0xb
jmp 0x82afb2
jae 0x82ecf8
cmp eax, dword [ebp - 4]
jmp 0x82a2b2
movzx ecx, word [eax + ecx*2 + 0x180]
cmp edx, 0x1000000
jmp 0x96a8e6
jne 0x8263ea
cmp dword [edi + 0x2c], 0
je 0x9670b0
mov ecx, dword [edi + 0x24]
test al, 0x34
cmc
test ecx, ecx
jne 0x826402
mov ecx, dword [edi + 0x28]
cmp ebx, esp
sar eax, 0
sal ebx, cl
mov ebx, dword [edi + 0x14]
mov ax, dx
test edi, 0x257b637a
sub ax, 0x2110
movzx ebx, byte [ebx + ecx - 1]
sal ax, cl
mov eax, dword [edi]
rcl cx, 0xb0
cmovbe cx, bp
mov ecx, 8
sub cl, al
btr ax, sp
xor al, ch
shr ebx, cl
mov cx, sp
mov ecx, dword [edi + 4]
neg ah
mov ah, bh
mov eax, 1
shl eax, cl
cmovl cx, bx
setns ch
jmp 0x96537f
jae 0x837e70
movzx edi, byte [eax]
shl esi, 8
shl edx, 8
stc
cmp edi, esi
or esi, edi
jmp 0x82543c
shl edx, 8
cmc
or esi, ecx
inc ecx
setl ch
inc eax
mov ecx, edx
cmp ebp, esi
test edx, ebp
shr ecx, 0xb
cmp bx, bp
test eax, ecx
imul ecx, dword [ebp - 0x10]
stc
cmp ecx, eax
cmp esi, ecx
jmp 0x967147
jae 0x8380e6
mov edi, dword [ebp - 4]
cmp bp, bp
cmc
test edi, ebp
cmp dword [ebp + 8], edi
jmp 0x788488
jmp 0x82ea07
jae 0x7892e5
mov ecx, dword [ebp - 0x18]
jmp 0x96dc6d
mov dword [ebp - 0x14], ebx
jmp 0x83b846
jae 0x83b0a2
mov edi, dword [ebp - 8]
bts dx, sp
shrd dx, si, 0xee
mov edx, eax
rol ah, 0x8c
shr ah, cl
mov eax, dword [ebp + 8]
test bx, sp
clc
mov dword [ebp - 0xc], 0
add edi, 0x664
jmp 0x74379f
jae 0x837e70
movzx ecx, byte [eax]
cmc
jmp 0x82ecd4
mov eax, dword [ebp + 8]
cmp ch, 0x85
cmc
cmp edx, 0x1000000
jmp 0x825d52
dec ebx
clc
mov dword [ebp - 0x14], ebx
clc
cmp edi, ecx
cmp edi, 0xe
jmp 0x96794b
mov dword [ebp - 0x10], 8
jmp 0x967675
imul eax, ecx
cmc
cmp esi, eax
jmp 0x82a1f1
mov dword [ebp - 0x14], 0
jmp 0x82ae8e
add ecx, ebx
clc
mov ebx, dword [ebp - 0xc]
jmp 0x96c89f
jb 0x97189f
sub edi, 0x40
mov dword [ebp + 8], eax
stc
clc
cmp edi, 4
jb 0x83b84c
mov ebx, edi
shr ebx, 1
jmp 0x82ae7e
mov edx, ecx
jmp 0x8317b6
sub edx, ecx
sub esi, ecx
bt di, ax
xadd edi, edi
mov edi, dword [ebp - 8]
mov dword [ebp - 0xc], 0xc
test ebx, 0x79905e8e
lea edi, [edi + 0xa68]
test ebx, ebx
stc
cmp edx, 0x1000000
jmp 0x7879f0
sub edx, ecx
test cl, 0x37
sub esi, ecx
shr ecx, 0x3a
inc cl
add cl, 0x26
lea edi, [edi + edi + 1]
mov ecx, dword [ebp - 0x10]
cmp esp, eax
cmp edi, ecx
jb 0x82ad6f
mov eax, dword [ebp - 0x14]
cmp bx, sp
cmc
sub eax, ecx
clc
cmp ah, 0xc3
cmc
add edi, eax
cmp dword [ebp - 0xc], 4
jmp 0x84407b
shl esi, 8
test di, ax
cmp edx, esp
shl edx, 8
cmp dl, 0xc2
cmp bl, bl
or esi, ecx
dec cl
mov cx, bp
inc eax
xadd ecx, ecx
mov dword [ebp + 8], eax
shr ch, cl
ror eax, cl
inc ah
movzx eax, word [ebx + edi*2]
shrd cx, dx, 0x7b
sar ecx, 0x6a
bsr ecx, eax
mov ecx, edx
test edi, 0x5fa85821
cmp ecx, 0x4d3b17f0
shr ecx, 0xb
cmc
imul ecx, eax
test dl, 0x45
cmp esi, ecx
jmp 0x830023
jae 0x82f1ae
mov eax, dword [ebp + 8]
cmc
stc
clc
cmp eax, dword [ebp - 4]
jae 0x837e70
movzx ebx, byte [eax]
shl esi, 8
shl edx, 8
or esi, ebx
inc eax
mov dword [ebp + 8], eax
ror al, cl
or eax, 0x2cb7541d
mov eax, edx
test esp, 0x2b4d4703
cmp dl, ch
shr eax, 0xb
test dh, bl
imul eax, edi
jmp 0x788523
add dword [ebp - 0xc], ebx
test bh, 0xfa
cmp ebp, 0x15f04164
jmp 0x9670b0
jae 0x82e9f4
mov edx, ecx
cmp sp, si
add edi, edi
jmp 0x829420
mov dword [ebp - 0x18], ecx
lea ecx, [eax + edi]
test si, 0x1b42
jmp 0x82e24c
lea ebx, [ebx + edi + 4]
jmp 0x82d4d9
mov ecx, dword [edi + 0x24]
rol bl, cl
mov ebx, dword [edi + 0x38]
cmp dh, dl
test esp, 0x7bef1fec
cmp ecx, ebx
jmp 0x96db99
jmp 0x96e8b2
dec eax
and eax, dword [edi + 0x2c]
cmp ebp, ebp
shl eax, cl
add ebx, eax
test ch, 9
cmc
jmp 0x8330de
xor eax, eax
cmc
mov edi, dword [edi + 0x14]
sub edi, ebx
add edi, ecx
movzx ecx, byte [edi + eax]
inc bx
clc
btc eax, 0x38
mov dword [ebp - 8], 0x100
sar edi, 0x78
btr ebx, edi
mov edi, 1
shrd bx, bx, 0x2e
rol bl, cl
mov edi, edi
test ax, 0x2cb9
ror ah, 0x92
seto al
mov ebx, dword [ebp - 8]
sub ax, sp
xadd ah, al
rol ax, cl
lea ecx, [ecx + ecx]
mov eax, ebx
clc
and eax, ecx
stc
jmp 0x830a93
inc eax
sar ch, cl
cmp di, bx
rol cx, cl
mov dword [ebp + 8], eax
mov ecx, edx
cmp eax, 0x38177300
shr ecx, 0xb
test ax, 0x5ec6
cmp ecx, edx
imul ecx, edi
cmp esi, ecx
jmp 0x96aa02
mov ecx, dword [ebp - 0xc]
jmp 0x83a58c
imul ebx, ebx, 0x600
jmp 0x82f1d4
sub edx, ecx
clc
cmp cl, ah
sub esi, ecx
cmp edx, 0x1000000
jmp 0x836d28
mov dword [ebp - 0x10], eax
jmp 0x78c35c
jmp 0x839f00
mov dword [ebp - 0x10], ecx
cmp edx, 0x1000000
jmp 0x83b11f
jae 0x83c1b3
mov eax, dword [ebp + 8]
cmp si, 0x4597
clc
cmp eax, dword [ebp - 4]
jmp 0x96eb91
shl edx, 8
or esi, ecx
jmp 0x83b221
jb 0x837e79
xor eax, eax
mov esi, ebp
mov esi, 0x2e84308f
pop edi
xchg si, bx
pop esi
pop ebx
mov esp, ebp
pop ebp
jmp 0x83d699
imul edi, ecx
test ah, ch
clc
cmp esi, edi
jae 0x83b927
mov edx, edi
cmp eax, 0x87e6d44
add eax, eax
jmp 0x96a8e1
jae 0x96764c
mov eax, 8
adc dh, ah
shl ebx, 4
mov edx, ecx
jmp 0x83baff
inc edi
test dx, bp
stc
mov dword [ebp + 8], edi
mov edi, edx
test esi, ebp
shr edi, 0xb
cmp ax, 0x4297
jmp 0x837e89
jae 0x82e818
mov edx, ecx
jmp 0x82e823
sub edx, ecx
test cx, 0xceb
sub esi, ecx
stc
lea edi, [edi + edi + 1]
stc
cmp ch, 0x1b
and dword [ebp - 8], eax
test edi, ebp
jmp 0x96e89c
jae 0x82e818
cmp ecx, 0x1000000
jmp 0x78924b
jae 0x7891df
cmp eax, ecx
jmp 0x7891c3
mov ecx, dword [ebp - 4]
clc
lea ebx, [ebx - 4]
cmp bx, sp
stc
cmp edx, 0x1000000
jmp 0x83a33c
sub edx, eax
test eax, edi
jmp 0x967988
mov ecx, dword [ebp - 8]
test dl, 0x16
xor di, 0x198f
sub edx, eax
test ah, cl
xadd di, di
sub esi, eax
btr edi, 0xa0
rcr al, cl
mov eax, dword [ebp - 0xc]
movzx edi, word [ecx + eax*2 + 0x198]
mov eax, dword [ebp + 8]
cmc
stc
mov dword [ebp - 0x18], 3
test edi, 0x49775c82
cmp edx, 0x1000000
jmp 0x7899e7
jae 0x78a911
mov ecx, dword [ebp + 8]
clc
cmp ecx, dword [ebp - 4]
jae 0x837e70
movzx ebx, byte [ecx]
cmc
test di, dx
shl esi, 8
shl edx, 8
jmp 0x83d2c4
inc eax
cmp di, 0x6545
cmc
test bp, 0x2879
mov dword [ebp + 8], eax
mov ah, 9
movsx ax, cl
or al, 0x54
mov eax, edx
cmc
shr eax, 0xb
imul eax, dword [ebp - 0x10]
jmp 0x78b8aa
jne 0x9723fb
mov eax, dword [ebp - 0x18]
cmc
jmp 0x743908
sub edx, edi
cmp bh, ah
cmp esi, 0xedf2e55
sub esi, edi
cmp esi, edx
stc
lea eax, [eax + eax + 1]
test ecx, edi
cmp esi, 0x67d471a0
sub ebx, 1
jmp 0x82a1c1
lea ebx, [ebx + edi + 0x104]
jmp 0x83c14e
mov dword [ebp - 0x14], eax
jmp 0x83652a
mov edi, dword [ebp - 0xc]
sub edx, ecx
cmp si, 0x6b4a
sub esi, ecx
and cl, 0xdf
mov ecx, dword [ebp - 8]
stc
movzx edi, word [ecx + edi*2 + 0x1b0]
cmp si, 0x439b
cmc
cmp edx, 0x1000000
jae 0x8329eb
cmp eax, dword [ebp - 4]
jmp 0x742d63
shl esi, 8
cmp bx, 0x1e2
shl edx, 8
cmp edi, edx
or esi, ecx
inc eax
rcl cx, 0x61
test ebp, edx
mov dword [ebp + 8], eax
movsx eax, bx
bts ecx, ebx
setnp al
movzx eax, word [edi + 2]
movsx ecx, di
ror ch, 0x48
mov ecx, edx
shr ecx, 0xb
test edx, 0x6a8d339a
test di, sp
cmp edi, esp
imul ecx, eax
cmp esi, ecx
jmp 0x837ef1
or esi, ebx
jmp 0x78a907
ret
jmp 0x82e83c
jae 0x837e70
shl ecx, 8
movsx dx, ah
mov edx, ecx
movzx ecx, byte [eax]
shl esi, 8
or esi, ecx
movsx ecx, bp
movzx ecx, di
inc eax
inc cx
movzx ecx, sp
cmovne ecx, ebx
mov dword [ebp + 8], eax
ror ch, cl
xor ecx, 0x3e86615b
mov ecx, edx
shr ecx, 0xb
imul ecx, edi
test edx, ebx
cmp ah, 0x8c
jmp 0x971fec
jae 0x83b84c
cmp edi, 4
jb 0x844098
mov edi, 3
shrd bx, bx, 0x3e
cmovb bx, dx
mov eax, dword [ebp - 8]
shl edi, 7
movzx ebx, bx
lea ebx, [edi + eax + 0x360]
mov eax, dword [ebp + 8]
mov edi, 1
jmp 0x967f57
jae 0x83b239
mov eax, dword [ebp + 8]
test dl, dh
cmc
cmp eax, dword [ebp - 4]
jmp 0x96d83c
sub edx, ecx
cmc
sub esi, ecx
test cx, 0x26e6
cmp edx, ebp
lea edi, [edi + edi + 1]
test esp, 0x528b19ec
clc
cmp edi, 0x40
jmp 0x82e257
jae 0x83c156
mov eax, dword [ebp - 0xc]
sbb edi, 0x651e466d
mov edi, dword [ebp - 8]
ror edx, 0x38
test esi, ebp
cmc
lea eax, [eax + 0xf]
seta dl
shl edx, cl
shl eax, 4
bt edx, esi
sbb dx, 0x73ac
adc edx, edi
lea eax, [eax + ebx]
movzx edi, word [edi + eax*2]
mov eax, dword [ebp + 8]
sal edx, 0xff
mov edx, ecx
cmc
cmp ecx, 0x1000000
jmp 0x78b204
mov ecx, dword [edi]
jmp 0x8321c8
cmp dword [edi + 0x34], 7
jmp 0x78d220
jae 0x844cac
mov edx, ecx
clc
cmp cl, ah
cmp si, 0x7f16
add edi, edi
jmp 0x96f8f7
sub edx, ecx
sub bx, cx
sub esi, ecx
lea ebx, [edi + 0x204]
sbb eax, 0x16ab489b
mov dword [ebp - 0x14], 0x10
clc
mov dword [ebp - 0x10], 0x100
xor ax, 0x5677
bt edi, 0x15
mov edi, 1
movsx eax, cx
jmp 0x82ad6f
jae 0x83a350
mov eax, edi
and ecx, esp
and eax, 1
and cl, 0xd2
rcr ecx, cl
movsx cx, dl
or eax, 2
clc
mov ecx, ebx
shl eax, cl
sal cx, 0xd9
xadd cx, cx
mov ecx, dword [ebp - 8]
test ebx, edi
stc
test bh, 0x4e
sub eax, edi
jmp 0x78c67f
sub esi, eax
sub ax, ax
btc ax, 0x53
shr eax, 0x4c
mov eax, dword [ebp - 8]
cmp ebp, 0x674b52fb
jmp 0x825d60
jmp 0x97189f
jae 0x96c531
cmp eax, dword [ebp - 4]
jmp 0x96c50e
jmp 0x83b942
jae 0x825445
mov eax, dword [ebp + 8]
cmc
cmp eax, dword [ebp - 4]
jmp 0x82688f
jae 0x96fdd2
mov edx, ecx
jmp 0x96d80c
jae 0x837e70
movzx ecx, byte [eax]
cmc
stc
shl esi, 8
clc
cmp si, 0x7892
cmc
shl edx, 8
clc
or esi, ecx
inc eax
mov dword [ebp + 8], eax
mov ecx, edx
stc
test sp, 0x77f7
clc
shr ecx, 0xb
cmp edi, 0x72b01b9
test dx, ax
imul ecx, edi
test cx, 0x31ed
stc
cmp esi, ecx
jmp 0x844cfa
jae 0x837e70
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
or esi, ecx
inc ecx
movzx ecx, dx
xchg cx, cx
inc eax
sbb cx, si
bsf cx, cx
mov dword [ebp + 8], eax
mov ecx, edx
cmp bp, bx
shr ecx, 0xb
imul ecx, edi
test eax, edi
cmp esi, ecx
jmp 0x8390bc
movzx ecx, word [ebx + ecx*2]
clc
jmp 0x8369fb
imul ecx, dword [ebp - 0x10]
test bl, al
stc
cmp esi, ecx
jae 0x839eee
mov edx, ecx
cmc
stc
cmp edx, ebp
add edi, edi
jmp 0x96fa61
jae 0x8284a1
cmp eax, dword [ebp - 4]
jmp 0x789657
jmp 0x82e823
jae 0x837e70
movzx ecx, byte [eax]
stc
cmp edx, ebp
shl esi, 8
cmc
jmp 0x837e28
jae 0x8325ff
mov eax, dword [edi + 0x28]
jmp 0x832602
jmp 0x83263a
cmp edi, 0x100
jmp 0x829fb5
sub esi, eax
test edx, ebx
cmp ah, 0xa7
lea ecx, [ecx + ecx + 1]
cmp ecx, 0x100
jmp 0x7892df
jae 0x837e70
movzx ecx, byte [eax]
jmp 0x83c191
jmp 0x844cc3
not eax
jmp 0x8369e8
mov edi, dword [ebp - 0xc]
sub edx, ecx
stc
test bp, 0x236f
sub esi, ecx
shl cx, cl
mov ecx, dword [ebp - 8]
stc
movzx edi, word [ecx + edi*2 + 0x1c8]
cmp edx, 0x1000000
jmp 0x967f7f
jae 0x833c35
shl ebx, 4
mov dl, 0xd5
bswap edx
jmp 0x82e80c
movzx ecx, word [ebx + edi*2]
test ebp, 0x13f2381a
mov dword [ebp - 0x10], ecx
cmc
cmp bp, 0x324
cmp edx, 0x1000000
jmp 0x96d7c6
sub edx, eax
clc
stc
jmp 0x96e8a7
cmp esi, ecx
jmp 0x83a317
jne 0x83a35b
mov ecx, dword [ebp - 8]
shl bx, 0xe0
sub ebx, esi
add bl, 0xda
lea ecx, [ecx + 0x644]
mov bx, 0x59da
inc bl
mov ebx, 4
test edi, eax
mov dword [ebp + 8], eax
rcr eax, 0xf7
sar ax, cl
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], ebx
and cx, 0x4123
sub cx, sp
mov eax, 1
adc cx, di
mov edi, edi
mov ecx, dword [ebp - 0xc]
movzx ecx, word [ecx + eax*2]
clc
cmp edx, 0x1000000
jmp 0x828d9c