Function at 0x80b46e
Capabilities:
Encrypt data using speck

Disassembly:
ror ebx, 4
cmp dl, cl
jbe 0x8d077c
xor bl, dl
jmp 0x8516a4
or dword [edi + 0x548], 4
mov eax, dword [esp]
push eax
jmp 0x86fe6b
and ecx, ebx
add ebx, ebx
or ecx, ecx
je 0x84096e
mov dword [edi + 0x4cc], 0x35b41475
dec dword [edi + 0x4cc]
push dword [edi + 0x4cc]
not dword [esp]
pop dword [edi + 0x4cc]
dec dword [edi + 0x4cc]
dec dword [edi + 0x4cc]
jmp 0x840964
push ebp
mov ebp, esp
add ebp, 4
add ebp, 4
xchg dword [esp], ebp
pop esp
dec edx
sub edx, 0x671c2244
sub ecx, edx
sub esp, 4
mov dword [esp], esi
mov esi, 0xff
and ebx, esi
mov esi, dword [esp]
push edx
mov edx, esp
add edx, 4
jmp 0x8c14ee
push eax
mov eax, 0x4ad9185f
add ebx, eax
jmp 0x8aaca7
and ecx, ebp
pop ebp
sub esp, 4
mov dword [esp], ebx
mov ebx, 0x438
add ebx, edi
sub esp, 4
mov dword [esp], ecx
sub dword [esp], 0x52557c4e
pop dword [ebx]
add dword [ebx], 0x52557c4e
pop ebx
push dword [esi + 5]
push dword [esp]
mov ebx, dword [esp]
add esp, 4
add esp, 4
push eax
mov edx, 0x51a22e0b
sub edx, 0x2417059
xor edx, 0x620110ad
mov ecx, 0x7d11101f
inc ecx
or ecx, 0x1a552af5
sub ecx, 0x4948201f
jmp 0x886ace
add dword [esp + 4], edx
pop edx
mov ecx, dword [esp]
add esp, 4
sub ecx, 0x66c660df
push dword [edi + 0x70]
popfd
jmp 0x8c1092
sub edx, esp
push dword [esi]
push dword [esp]
pop esi
push edx
mov edx, esp
add edx, 4
add edx, 4
xchg dword [esp], edx
jmp 0x8b3d3f
mov dword [esp], ebp
mov ebp, 0x28de0888
xor esi, ebp
mov ebp, dword [esp]
add esp, 4
add esi, 0x1104392b
sub esi, 0x68a81303
add esi, eax
add esi, 0x68a81303
mov edx, 0xefc6daa
not edx
inc edx
jmp 0x8be4a2
mov ebp, 8
add esi, ebp
pop ebp
xor esi, dword [esp]
xor dword [esp], esi
jmp 0x8acdef
add esp, 4
push dword [esi - 4]
mov ecx, dword [esp]
push esi
mov esi, esp
push ecx
mov ecx, 0x48da72c7
dec ecx
neg ecx
xor ecx, 0x61b93fd7
xor ecx, 0x94b1e86
add ecx, 0x510b6e35
sub ecx, 0x30e31a9c
jmp 0x8c577c
cmp al, 0x1e
jne 0x86fe69
push dword [edi + 0x70]
or dword [edi + 0x548], 0x20
jmp 0x86fe6b
mov edx, 0
add edx, ecx
push ebx
mov ebx, 0
jmp 0x843135
xor bl, byte [eax]
pop eax
push eax
mov dl, 0x8d
xor dl, 0x6b
shl dl, 2
jmp 0x8e08a6
imul ebx, ebx, 0xe
jmp 0x87e612
sub ecx, 0x7f2de107
sub edx, ecx
jmp 0x81f936
sub dword [esp + 4], edx
pop edx
sub dword [esp], ecx
jmp 0x835c46
sub ecx, esp
mov eax, edx
xor edx, 0x56b3239d
add eax, 0xb3e6fbff
add eax, edi
mov dl, byte [eax]
pop eax
jmp 0x8d98d1
mov eax, 0xffffff7f
mov edx, eax
mov esi, edx
and ebx, esi
mov esi, dword [esp]
add esp, 4
jmp 0x874b23
cmp al, 2
jne 0x883619
push dword [esi]
push dword [esp]
mov eax, dword [esp]
add esp, 4
jmp 0x814cf7
xchg dword [esp], edx
pop esp
sub esp, 4
mov dword [esp], eax
mov ebp, 0x7b1d7922
mov edx, 0x7b1d7d72
mov eax, edx
jmp 0x8a3387
mov ebx, dword [esp]
push eax
mov eax, esp
add eax, 4
add eax, 4
xchg dword [esp], eax
jmp 0x86ddec
mov edx, 0x1af64da2
jmp 0x81f378
pop ebx
shl ebx, 7
add ebx, 0x136937d4
sub ebx, 0x7be07738
push ebp
mov ebp, 0x37f9d1fc
xor ebx, ebp
pop ebp
mov ebp, ebx
pop ebx
sub ebp, ecx
sub ecx, 0x4e33377e
add ebp, 0xf152f064
mov ecx, ebp
jmp 0x87d77e
mov esi, 0x217d07c0
xor eax, esi
pop esi
sub esp, 4
mov dword [esp], ecx
mov ecx, 6
and eax, ecx
mov ecx, dword [esp]
push ecx
mov ecx, esp
add ecx, 4
add ecx, 4
xchg dword [esp], ecx
pop esp
jmp 0x856507
add ebp, 4
sub ebp, 4
jmp 0x83d840
or dword [edi + 0x548], 4
or dword [edi + 0x548], 8
push 0
jmp 0x86fe6b
shl ebx, 2
push dword [edi + 0x4ac]
sub dword [esp], 0x60922266
pop eax
push ebx
jmp 0x8815da
imul eax, ecx
pushfd
pop dword [edi + 0x70]
push edi
mov edi, eax
jmp 0x86b7f3
cmp al, 0x20
je 0x8310e5
cmp al, 0x21
je 0x8310e5
cmp al, 0x22
je 0x8310e5
cmp al, 0x23
jne 0x88e2be
and dword [edi + 0x548], 0xfffffff3
cmp al, 0x20
jne 0x88efc4
or dword [edi + 0x548], 0
jmp 0x7fc5ee
add edx, 4
jmp 0x8471c1
cmp eax, 0xf0000000
jb 0x8afede
cmp eax, 0xf0000070
ja 0x8afede
mov ebx, dword [edi + 0x628]
sub ebx, 0xf0000000
sub eax, 0xf0000000
add eax, dword [edi + 0x4c8]
add eax, ebx
mov ebx, 0x70
add ebx, dword [edi + 0x4c8]
cmp eax, ebx
jb 0x8afeeb
sub eax, 0x70
jmp 0x8afeeb
add dword [esp], 0x1af64da2
pop ecx
sub ecx, 0x2bd56a5a
not ecx
add ecx, 0x5e7b83d7
and ebx, ecx
mov edx, ebx
mov ebp, edx
mov eax, ebp
push eax
add dword [esp], 0x105625e
pop ecx
sub ecx, 0x105625e
push ebp
jmp 0x8cac5b
cmp al, 8
je 0x836d3b
cmp al, 9
je 0x836d3b
cmp al, 0xa
je 0x836d3b
cmp al, 0xb
jne 0x87f7a6
or dword [edi + 0x548], 0x10
and dword [edi + 0x548], 0xfffffff3
cmp al, 8
jne 0x869b09
or dword [edi + 0x548], 0
jmp 0x83f371
push 0x1a7074b1
mov ebp, dword [esp]
add esp, 4
jmp 0x8ddca1
push edi
mov edi, 0x15d369b2
sub edi, 0x571e1bdd
and edi, 0x69466ce2
xor edi, 0x5bc613cb
neg edi
xor edi, 0x8c3da0f5
jmp 0x8b5d6c
push ebp
push dword [esp + 4]
pop ebp
jmp 0x8da6da
or dword [edi + 0x548], 4
mov eax, dword [esp]
or bl, bl
je 0x83f3ad
mov ebx, dword [edi + 0x628]
sub ebx, 0xf0000000
pushfd
sub eax, 0xf0000000
popfd
add eax, dword [edi + 0x4c8]
add eax, ebx
mov ebx, 0x70
add ebx, dword [edi + 0x4c8]
cmp eax, ebx
jb 0x83f3ad
sub eax, 0x70
push eax
jmp 0x86fe6b
push edi
mov edi, esp
add edi, 4
add edi, 4
xchg dword [esp], edi
mov esp, dword [esp]
mov ecx, 0x75af12cf
push 0
push edx
jmp 0x828505
pop eax
jmp 0x831530
add dword [edi + 0x4cc], 0x35b41477
push dword [esi + 0xb]
mov ebx, dword [esp]
jmp 0x83fc3d
add ebx, edx
mov al, byte [ebx]
pop ebx
pop edx
pop ecx
push ecx
mov ecx, 0x434
jmp 0x8aced9
mov dword [esp], edx
mov dh, 0x69
add bl, 0xd2
sub bl, dh
sub bl, 0xd2
mov edx, dword [esp]
add esp, 4
push eax
mov eax, 0x203d7b5a
add eax, 0xdfc28972
add eax, edi
push edx
mov ebp, 0x3683762c
xor ebp, 0x13b22a2c
sub ebp, 0x25315c00
mov edx, ebp
add edx, eax
xor dword [edx], ecx
pop edx
pop eax
test ebx, 0x80
je 0x819fd2
push esi
jmp 0x8219bf
xchg dword [esp], edx
pop esp
sub esp, 4
mov dword [esp], eax
mov eax, 0x76b568ad
push eax
pop ebx
jmp 0x8495d7
mov eax, dword [esp]
add esp, 4
push esi
mov esi, esp
mov ebp, 0x1cf94b14
jmp 0x84c76b
sub ebp, 0x1cf94b10
add esi, ebp
sub ebp, 0x1b3b010a
add ebp, 0xe2e39c1
push ebp
jmp 0x814421
not edx
shl edx, 1
sub edx, 0xe4684e6c
jmp 0x8dfa1f
xor bl, 0x89
mov ch, bl
pop ebx
add bl, 8
add bl, ch
sub bl, 8
pop cx
sub esp, 4
mov dword [esp], ecx
mov ecx, 1
jmp 0x87d771
sub ah, 7
mov bl, ah
jmp 0x8d78e2
xor ebp, 0x39082559
sub ebp, 0x7bba7981
push ecx
mov ecx, 0xbd8de730
sub ebp, ecx
pop ecx
mov ecx, ebp
pop ebp
jmp 0x89f960
shr eax, 1
cmp al, 1
jne 0x821c38
push ecx
jmp 0x83c282
add al, byte [edx]
pop edx
sub esp, 4
mov dword [esp], ecx
sub esp, 4
mov dword [esp], edx
mov dh, al
mov cl, dh
pop edx
mov bl, cl
pop ecx
and bl, 0x80
pushfd
sub esp, 2
mov word [esp], dx
push ebx
push eax
jmp 0x8c184d
inc edi
sub edi, 0x3f40306a
push edi
xor dword [esp], 0x5bd35ef3
pop ebx
xor ebx, 0x5bd35ef3
pop edi
add ebx, ecx
xor al, byte [ebx]
pop ebx
pop ecx
push edx
mov dh, 0x49
not dh
push eax
mov al, 0xae
add dh, al
pop eax
dec dh
or dh, 0x66
shr dh, 4
sub dh, 0x4e
sub al, 0xca
add al, dh
add al, 0xca
mov edx, dword [esp]
add esp, 4
sub esp, 4
mov dword [esp], edx
push eax
mov eax, 0x799c613c
push ebp
mov ebp, 0x799c6508
xor eax, ebp
pop ebp
mov edx, eax
pop eax
add edx, edi
jmp 0x863743
push 0x4fc2
mov dword [esp], esi
jmp 0x82aca1
cmp al, 9
jne 0x83f36a
or dword [edi + 0x548], 2
jmp 0x83f371
push edx
jmp 0x86ddda
mov edx, 0
add edx, esi
jmp 0x8a8613
pop esp
shl eax, 2
push 0x7d2
mov dword [esp], eax
mov eax, 0x4d8
add eax, edi
mov esi, dword [eax]
push dword [esp]
pop eax
add esp, 4
add esi, 0x64c7660b
push edx
mov edx, 0x2d403e65
add esi, edx
pop edx
add esi, ebx
sub esi, 0x2d403e65
jmp 0x8dff36
push 0
pushfd
mov eax, 0x46498080
popfd
push dword [esi]
push dword [esp]
mov ecx, dword [esp]
add esp, 4
add esp, 4
mov ebx, 0x2e9b15c9
jmp 0x8982e6
cmp al, 2
je 0x870195
cmp al, 3
jne 0x897b30
or dword [edi + 0x548], 1
and dword [edi + 0x548], 0xfffffff3
or dword [edi + 0x548], 4
or bl, bl
je 0x8afeee
mov eax, dword [esp]
cmp eax, 0xf0000080
jb 0x832a91
cmp eax, 0xf000008a
ja 0x832a91
lea ebx, [edi + 0xe4]
sub eax, 0xf0000080
add eax, ebx
jmp 0x8afeeb
imul ebx, ebx, 0xe
sub dword [edi + 0x5dc], ebx
jmp 0x87e618
mov eax, 0x69de192f
sub eax, ebx
pop ebx
jmp 0x883611
add ecx, edi
jmp 0x8b5072
sub eax, 0x7cdd7996
sub eax, ecx
add eax, 0x7cdd7996
pop ecx
or eax, eax
jne 0x7fc2d7
push ebx
pushfd
sub ebx, 0x5403d2e
sub esp, 4
mov dword [esp], edx
mov edx, 0x6f3369c3
sub ebx, edx
pop edx
add ebx, eax
add ebx, 0x6f3369c3
add ebx, 0x5403d2e
popfd
push eax
mov eax, 0x721a265b
mov dword [edi + 0x548], 0x721a265f
push ecx
mov ecx, 0x548
jmp 0x87b11d
add dword [edi + 0x5dc], ebx
pushfd
push esi
jmp 0x8b3311
cmp al, 0xc
je 0x87f7c6
cmp al, 0xd
je 0x87f7c6
cmp al, 0xe
je 0x87f7c6
cmp al, 0xf
jne 0x8dd086
and dword [edi + 0x548], 0xfffffff3
cmp al, 0xc
jne 0x8d87da
or dword [edi + 0x548], 0
jmp 0x89b304
mov ebx, 0x60922266
add eax, ebx
jmp 0x824dc9
add esi, eax
mov eax, dword [esp]
add esp, 4
push dword [esp]
push dword [esp]
pop esi
add esp, 4
add esp, 4
push 0xd50
mov dword [esp], edx
push esp
pop edx
push eax
mov eax, 0x154f60b3
xor eax, 0x154f60b7
add edx, eax
jmp 0x8405f7
add ecx, 0x2a696b1b
jmp 0x81efc7
sub esi, ecx
add ecx, eax
push dword [esi]
xor dword [esp], 0x28de0888
pop esi
sub esp, 4
jmp 0x811dfe
xor ebx, 0x4cf81ab1
sub ebx, 0x12590129
jmp 0x8a2bec
cmp al, 0x18
je 0x88e2d6
cmp al, 0x19
je 0x88e2d6
cmp al, 0x1a
jne 0x816243
and dword [edi + 0x548], 0xfffffff3
cmp al, 0x18
jne 0x8ad9a5
or dword [edi + 0x548], 0
jmp 0x82d932
cmp al, 0x21
jne 0x7fc5e7
or dword [edi + 0x548], 2
jmp 0x7fc5ee
or dword [edi + 0x548], 4
or dword [edi + 0x548], 1
mov eax, dword [edi + 0x334]
push eax
jmp 0x86fe6b
pop ecx
push dword [esi - 4]
sub esp, 4
mov dword [esp], edx
jmp 0x8c479e
cmp al, 4
je 0x897b50
cmp al, 5
je 0x897b50
cmp al, 6
je 0x897b50
cmp al, 7
jne 0x836d1b
and dword [edi + 0x548], 0xfffffff3
cmp al, 4
jne 0x8d1e33
or dword [edi + 0x548], 0
jmp 0x8933d0
sub ebx, 0x5b1834ca
jmp 0x88dea9
sub ebx, 0x49721248
dec ebx
or ebx, 0xf9b3ced
xor ebx, 0xc6ca32ea
mov eax, 0x3e5e1507
add eax, 0x6cf210c5
shl eax, 4
inc eax
xor eax, 0xa21319ef
add ebx, eax
sub eax, esi
jmp 0x897b9c
or dword [edi + 0x548], 4
or dword [edi + 0x548], 1
mov eax, dword [esp]
or bl, bl
je 0x89b345
mov ebx, dword [edi + 0x628]
sub ebx, 0xf0000000
sub eax, 0xf0000000
add eax, dword [edi + 0x4c8]
add eax, ebx
mov ebx, 0x70
add ebx, dword [edi + 0x4c8]
cmp eax, ebx
jb 0x89b345
sub eax, 0x70
mov eax, dword [eax]
mov dword [esp], eax
lea eax, [edi + 0x334]
push eax
jmp 0x86fe6b
mov bl, dl
mov ah, bl
pop ebx
add dl, 0xb9
xor dl, 0xf6
xor bl, ah
pop eax
push 0x3c46
jmp 0x84329a
add ecx, edi
mov eax, dword [ecx]
pop ecx
jmp 0x8b0a0f
xor dword [esp + 4], ecx
pop ecx
pop eax
jmp 0x8679a2
push ecx
mov ecx, 0x97390631
xor ebx, ecx
pop ecx
jmp 0x7fe23a
xor eax, ebp
add eax, edi
xor dword [eax], ebx
pop eax
push eax
mov eax, esp
add eax, 4
sub eax, 4
xchg dword [esp], eax
pop esp
mov dword [esp], ebp
mov ebp, 0x5dac202e
xor ebp, 0x5dac20d1
jmp 0x80da7b
and al, dh
pop dx
popfd
push 0x3d28
jmp 0x8de21a
mov dword [edx], edi
mov edx, dword [esp]
add esp, 4
mov edi, dword [esp]
add esp, 4
sub esp, 4
mov dword [esp], eax
push ebx
mov ebx, 0x69de192b
jmp 0x876e68
mov edx, 2
add esi, edx
pop edx
jmp 0x883619
push ebp
jmp 0x83938d
pop eax
add ebx, esi
sub ebx, 0x4ad9185f
pop esi
popfd
push 0x3b0c
mov dword [esp], esi
push ecx
jmp 0x8aa90d
xor esi, dword [esp]
pop esp
push dword [edi + 0x438]
sub esp, 4
mov dword [esp], edi
mov edi, 0x38e952fc
xor dword [esp + 4], edi
pop edi
mov ebx, dword [esp]
jmp 0x8c3dbe
add ecx, edi
push ebx
push edi
mov edi, 0x1f5c7101
and edi, 0x13c93f2e
xor edi, 0x2c080169
jmp 0x865411
cmp al, 0x19
jne 0x82d92b
or dword [edi + 0x548], 2
jmp 0x82d932
cmp al, 0x50
jne 0x8ae393
or dword [edi + 0x548], 0x80
pop eax
or al, al
jne 0x8cf355
push 0
jmp 0x86fe6b
pushfd
sub eax, 0x80000000
popfd
add eax, dword [edi + 0x364]
mov dword [esp], eax
lea eax, [edi + 0x334]
push eax
jmp 0x86fe6b
push edx
mov edx, 0x372f6316
shr edx, 2
jmp 0x84ff6c
push dword [esp]
jmp 0x8cd62c
mov esi, 0xffffffff
jmp 0x80ca63
pop esp
jmp esi
xor dword [ecx], eax
pop ecx
push dword [esp]
pop eax
add esp, 4
push ecx
push 1
pop ecx
add ecx, esi
push edx
jmp 0x81864f
mov ecx, edi
pop edi
sub ecx, 0x3cd4959
sub ecx, 0x490d459e
add ecx, esi
add ecx, 0x490d459e
add ecx, 0x3cd4959
mov eax, dword [ecx]
jmp 0x8952d2
mov eax, 0x4cc
add eax, edi
jmp 0x8189ea
xor edx, 0xe007ab7d
sub esi, edx
add edx, 0x1a380fa2
jmp 0x810442
imul ax, cx
pushfd
pop dword [edi + 0x70]
push ecx
mov ecx, esp
add ecx, 4
sub ecx, 2
xchg dword [esp], ecx
pop esp
mov word [esp], ax
pop word [esi]
push edx
push esp
pop edx
add edx, 4
sub edx, 4
xchg dword [esp], edx
pop esp
mov dword [esp], edx
jmp 0x8a95f8
add edx, 4
jmp 0x8237ef
mov ah, 0xcc
xor ah, 0x4a
jmp 0x8537ef
add esp, 4
xor ebx, 0x38e952fc
jmp 0x82fc33
mov edx, 0x66c660df
jmp 0x80fc5c
add esi, ecx
pop ecx
add esi, 4
xchg dword [esp], esi
pop esp
push dword [edi + 0x70]
popfd
jmp 0x830938
mov ebp, esp
jmp 0x82cdaf
pop edx
add esp, 4
shr eax, 3
or al, al
je 0x883619
lea esi, [esp + 0x10]
push dword [edi + 0x548]
push ecx
mov ecx, 0x217d07c0
jmp 0x8a1a72
cmp al, 1
jne 0x870185
or dword [edi + 0x548], 1
and dword [edi + 0x548], 0xfffffff3
or dword [edi + 0x548], 4
lea eax, [edi + 0x334]
push eax
jmp 0x86fe6b
sub bl, 9
sub bl, dl
push cx
push ebx
mov bl, 0x13
shl bl, 7
jmp 0x851694
sub eax, 0x80000000
add eax, dword [edi + 0x364]
mov dword [esp], eax
mov eax, dword [esp]
push eax
jmp 0x86fe6b
cmp al, 5
jne 0x8933c9
or dword [edi + 0x548], 2
jmp 0x8933d0
pop eax
mov dh, bl
pop ebx
jmp 0x8a7bb8
cmp al, 0xd
jne 0x89b2fd
or dword [edi + 0x548], 2
jmp 0x89b304
push 0x21f3
mov dword [esp], esi
mov esi, 4
push esi
mov eax, dword [esp]
add esp, 4
pop esi
mov ecx, 0x45be6c44
push ebx
push 0x1f9813da
jmp 0x828e02
pop dword [esp]
pop esp
mov dword [esp], eax
jmp 0x8b8697
cmp al, 0x10
je 0x8dd096
cmp al, 0x11
jne 0x8310c5
or bl, bl
je 0x8d094e
mov eax, dword [esp]
cmp eax, 0xf0000000
jb 0x8d0940
cmp eax, 0xf0000070
ja 0x8d0940
mov ebx, dword [edi + 0x628]
sub ebx, 0xf0000000
sub eax, 0xf0000000
add eax, dword [edi + 0x4c8]
add eax, ebx
mov ebx, 0x70
add ebx, dword [edi + 0x4c8]
cmp eax, ebx
jb 0x8d094b
sub eax, 0x70
jmp 0x8d094b
and ebp, 0x45c44ba6
jmp 0x854ec1
mov dword [esp], eax
mov al, byte [esi + 4]
xor al, byte [edi + 0x434]
add al, 0xae
add al, byte [edi + 0x434]
test al, 0x80
je 0x8de24e
push ebx
and al, 0x7f
mov ebx, dword [esp + 8]
sub ebx, dword [edi + 0x56c]
add ebx, dword [edi + 0x4ec]
mov dword [esp + 8], ebx
pop ebx
cmp al, 0x30
jne 0x8ae381
or dword [edi + 0x548], 0x40
jmp 0x8ae393
and eax, edx
jmp 0x8b11d7
mov ecx, 0x60c14beb
neg ecx
dec ecx
dec ecx
add ecx, 0xc588b1f8
jmp 0x889a45
push eax
mov al, 0xa
add al, 0x6c
xor dl, al
pop eax
push ebx
jmp 0x89eeb1