Function at 0x70125290
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push edx
mov edx, ecx
mov edi, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov word [ebp - 0xe], di
lea ebx, [edi + 1]
mov word [ecx + 4], bx
mov ecx, dword [ecx]
cmp bx, word [ecx + 0x753bc]
jb 0x701252bb
mov word [edx + 4], 0
movzx edi, byte [eax]
lea ebx, [edi + 5]
cmp bl, 1
jbe 0x701256e4
mov edi, dword [ecx + 0x753b4]
mov esi, dword [ecx + 0x106484]
cmp edi, 2
jne 0x70125304
cmp esi, 0x118ffff
ja 0x70125539
cmp byte [eax + 3], 0x17
jne 0x70125545
cmp byte [eax + 5], 0x40
jbe 0x70125545
mov byte [eax + 5], 0x40
jmp 0x70125545
test edi, 0x1000020
je 0x7012545b
cmp esi, 0x1170301
jbe 0x70125326
cmp byte [edx + 6], 1
je 0x70125359
cmp esi, 0x11fffff
ja 0x70125359
mov cl, byte [eax + 3]
cmp cl, 0x17
jne 0x7012533a
cmp byte [eax + 5], 0x80
jbe 0x70125359
mov byte [eax + 5], pe_nt_image_headers32
jmp 0x70125359
cmp cl, 0x14
jne 0x70125359
mov cl, byte [eax + 5]
cmp cl, 0xc0
jne 0x70125350
mov byte [eax + 3], 0
mov byte [eax], 0xfe
jmp 0x70125359
cmp cl, 0xd0
jne 0x70125359
mov byte [eax + 3], 0
cmp esi, 0x117ffff
jbe 0x70125374
mov bl, byte [edx + 6]
xor ebx, 1
cmp esi, 0x11fffff
setbe cl
and cl, bl
je 0x7012538f
mov cl, byte [eax + 3]
mov bl, 1
cmp cl, 0x1d
ja 0x7012538a
mov ebx, 0x200008c0
shr ebx, cl
not ebx
and ebx, 1
xor ebx, 1
mov cl, bl
mov bl, byte [eax + 3]
cmp esi, 0x11fffff
mov byte [ebp - 0xf], bl
ja 0x701253aa
sub ebx, 0x16
and bl, 0xfd
je 0x701253ae
jmp 0x701256c6
test cl, cl
je 0x701253e2
mov cl, byte [eax + 5]
mov bl, cl
and ebx, 0xf
mov byte [ebp - 0x10], bl
mov ebx, ecx
and ebx, 0xf
je 0x701253e2
cmp ebx, 0xf
je 0x701253e2
and ecx, 0xfffffff0
cmp cl, 0xf0
je 0x701253e2
test cl, cl
je 0x701253e2
cmp byte [ebp - 0xf], 0x18
jne 0x701253dc
mov byte [eax + 5], cl
jmp 0x701253e2
mov bl, byte [ebp - 0x10]
mov byte [eax + 5], bl
cmp esi, 0x1220103
ja 0x70125416
cmp esi, 0x1220000
je 0x70125416
mov ecx, dword [edx]
movzx ecx, word [ecx + 0x753c0]
test cx, cx
je 0x70125416
movzx ebx, byte [eax + 1]
cmp ebx, ecx
jle 0x70125416
cmp byte [edx + 6], 0
jne 0x70125416
mov byte [eax + 2], 1
mov byte [eax + 4], 0
cmp byte [ebp - 0xf], 0x12
jne 0x70125539
cmp byte [eax + 5], 0x11
jne 0x70125539
cmp esi, 0x1291201
ja 0x70125661
mov ecx, dword [edx]
test byte [ecx + 0x10648a], 0x40
je 0x70125539
test byte [ecx + 0x753d0], 4
jne 0x70125539
mov byte [eax + 5], 0
jmp 0x70125539
cmp edi, 4
jne 0x70125539
cmp esi, 0x1170301
jbe 0x701254ac
cmp byte [edx + 6], 0
jne 0x7012547a
cmp esi, 0x11fffff
jbe 0x701254a4
cmp esi, 0x1240201
jbe 0x70125492
cmp byte [edx + 6], 1
je 0x701254d5
cmp esi, 0x11fffff
ja 0x701254d5
jmp 0x701254ac
cmp byte [eax + 3], 0x17
jne 0x701254a4
cmp byte [eax + 5], 0x40
jbe 0x701254cd
mov byte [eax + 3], 0
jmp 0x701254cd
cmp esi, 0x118ffff
ja 0x70125482
cmp byte [eax + 3], 0xa
jne 0x701254d5
cmp byte [eax + 2], 0xb
jne 0x701256b8
mov byte [eax + 3], 0
cmp esi, 0x120010f
jbe 0x701254f7
jmp 0x701256d3
cmp esi, 0x118ffff
ja 0x70125482
cmp esi, 0x120010f
ja 0x701254eb
cmp byte [eax + 2], 0xb
jne 0x701254f7
cmp byte [eax + 3], 4
jne 0x701254f7
jmp 0x701254ff
cmp esi, 0x1220708
ja 0x701255f7
cmp byte [eax + 3], 0x10
jne 0x70125539
jmp 0x7012552f
movzx ecx, byte [eax + 4]
test cl, cl
jne 0x7012550d
cmp byte [edx + 6], 0
je 0x70125539
movzx ebx, byte [eax + 5]
test bl, bl
je 0x70125539
shl ecx, 4
mov byte [eax + 2], 0
add ebx, ecx
cmp bx, 0xff
jbe 0x7012552a
mov ebx, 0xff
mov byte [eax + 5], bl
jmp 0x70125539
cmp byte [eax + 5], 0
jne 0x70125539
mov byte [eax + 3], 0
cmp esi, 0x11fffff
ja 0x701255f7
mov cl, byte [eax + 3]
cmp cl, 0x14
jne 0x7012555a
mov dl, byte [eax + 5]
and edx, 0xfffffff0
cmp dl, 0x60
jne 0x701255bb
jmp 0x70125585
cmp cl, 0x1c
jne 0x701255f7
mov cl, byte [eax + 5]
and ecx, 0xfffffff0
cmp cl, 0x60
jne 0x701255f7
cmp esi, 0x117ffff
setbe bl
cmp edi, 4
setne cl
or bl, cl
je 0x701255f1
movzx edx, word [ebp - 0xe]
imul edx, edx, 6
mov ebx, eax
sub ebx, edx
mov edx, ebx
cmp edx, eax
jae 0x701255b5
mov cl, byte [edx + 3]
and ecx, 0xfffffff7
cmp cl, 0x14
jne 0x701255b0
mov cl, byte [edx + 5]
and ecx, 0xfffffff0
cmp cl, 0x60
jne 0x701255b0
mov byte [edx + 3], 0
add edx, 6
jmp 0x70125592
cmp byte [eax + 3], 0x14
jne 0x701255f7
mov dl, byte [eax + 5]
and edx, 0xfffffff0
cmp dl, 0xe0
jne 0x701255f7
movzx edx, word [ebp - 0xe]
imul edx, edx, 6
mov ebx, eax
sub ebx, edx
mov edx, ebx
cmp edx, eax
jae 0x701255f7
cmp byte [edx + 3], 0x14
jne 0x701255ec
mov cl, byte [edx + 5]
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x701255ec
mov byte [edx + 3], 0
add edx, 6
jmp 0x701255d3
cmp byte [edx + 6], 1
jne 0x70125585
cmp esi, 0x1270036
setbe cl
cmp esi, 0x1270000
setne dl
test cl, dl
je 0x70125661
cmp byte [eax + 2], 8
jne 0x70125661
mov dl, byte [eax + 3]
cmp dl, 7
jne 0x70125627
cmp byte [eax + 4], 0
je 0x70125627
mov byte [eax + 3], 0xb
jmp 0x70125661
cmp dl, 0x1a
sete cl
cmp dl, 5
je 0x70125636
test cl, cl
je 0x70125651
mov bl, byte [eax + 5]
test bl, 0xf
jne 0x70125651
mov dl, byte [eax + 4]
mov word [eax + 2], 0x500
and edx, 0xf
or edx, ebx
mov byte [eax + 5], dl
jmp 0x70125661
and edx, 0xfffffffd
cmp dl, 5
je 0x7012565d
test cl, cl
je 0x70125661
mov byte [eax + 2], 0
mov dl, byte [eax + 2]
cmp edi, 0x1000000
je 0x7012568d
cmp dl, 0xf
jne 0x701256e4
cmp byte [eax + 3], 0
jne 0x70125692
movzx edi, byte [eax + 4]
mov word [eax + 2], 0xa00
lea edx, [edi*8]
mov byte [eax + 5], dl
jmp 0x701256e4
cmp dl, 0xf
jne 0x701256e4
cmp byte [eax + 3], 0xa
jne 0x701256e4
cmp esi, 0x1300013
ja 0x701256e4
cmp byte [eax + 5], 0
jne 0x701256ac
cmp byte [eax + 4], 0
jne 0x701256b2
mov byte [eax + 2], 0
jmp 0x701256e4
mov byte [eax + 3], 0
jmp 0x701256e4
cmp esi, 0x120010f
jbe 0x70125539
jmp 0x701256d3
test cl, cl
je 0x701253f2
jmp 0x701253ae
cmp esi, 0x1220708
ja 0x701255f7
jmp 0x70125539
pop eax
pop ebx
pop esi
pop edi
pop ebp
ret 4