Function at 0x6299c5ec
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
push edi
push esi
push ebx
push edx
mov edx, ecx
mov edi, dword [ecx + 4]
mov eax, dword [esp + 0x18]
mov word [esp + 2], di
lea ebx, [edi + 1]
mov word [ecx + 4], bx
mov ecx, dword [ecx]
cmp bx, word [ecx + 0x753bc]
jb 0x6299c617
mov word [edx + 4], 0
movzx edi, byte [eax]
lea ebx, [edi + 5]
cmp bl, 1
jbe 0x6299ca46
mov edi, dword [ecx + 0x753b4]
mov esi, dword [ecx + 0x106484]
cmp edi, 2
jne 0x6299c660
cmp esi, 0x118ffff
ja 0x6299c899
cmp byte [eax + 3], 0x17
jne 0x6299c8a5
cmp byte [eax + 5], 0x40
jbe 0x6299c8a5
mov byte [eax + 5], 0x40
jmp 0x6299c8a5
test edi, 0x1000020
je 0x6299c7bb
cmp esi, 0x1170301
jbe 0x6299c682
cmp byte [edx + 6], 1
je 0x6299c6b5
cmp esi, 0x11fffff
ja 0x6299c6b5
mov cl, byte [eax + 3]
cmp cl, 0x17
jne 0x6299c696
cmp byte [eax + 5], 0x80
jbe 0x6299c6b5
mov byte [eax + 5], pe_nt_image_headers32
jmp 0x6299c6b5
cmp cl, 0x14
jne 0x6299c6b5
mov cl, byte [eax + 5]
cmp cl, 0xc0
jne 0x6299c6ac
mov byte [eax + 3], 0
mov byte [eax], 0xfe
jmp 0x6299c6b5
cmp cl, 0xd0
jne 0x6299c6b5
mov byte [eax + 3], 0
mov bl, byte [eax + 3]
cmp esi, 0x117ffff
mov byte [esp + 1], bl
jbe 0x6299c6d9
mov bl, byte [edx + 6]
xor ebx, 1
cmp esi, 0x11fffff
mov cl, bl
setbe bl
and bl, cl
je 0x6299c6f5
cmp byte [esp + 1], 0x1d
mov bl, 1
ja 0x6299c6f2
mov ebx, 0x200008c0
mov cl, byte [esp + 1]
shr ebx, cl
not ebx
and ebx, 1
xor ebx, 1
cmp esi, 0x11fffff
ja 0x6299c711
mov cl, byte [esp + 1]
lea ebp, [ecx - 0x16]
and ebp, 0xfd
je 0x6299c715
jmp 0x6299ca28
test bl, bl
je 0x6299c741
mov bl, byte [eax + 5]
mov cl, bl
mov ebp, ebx
and ecx, 0xf
and ebp, 0xf
je 0x6299c741
cmp ebp, 0xf
je 0x6299c741
and ebx, 0xfffffff0
cmp bl, 0xf0
je 0x6299c741
test bl, bl
je 0x6299c741
cmp byte [esp + 1], 0x18
je 0x6299c73e
mov bl, cl
mov byte [eax + 5], bl
cmp esi, 0x1220103
ja 0x6299c775
cmp esi, 0x1220000
je 0x6299c775
mov ebx, dword [edx]
movzx ebx, word [ebx + 0x753c0]
test bx, bx
je 0x6299c775
movzx ebp, byte [eax + 1]
cmp ebp, ebx
jle 0x6299c775
cmp byte [edx + 6], 0
jne 0x6299c775
mov byte [eax + 2], 1
mov byte [eax + 4], 0
cmp byte [esp + 1], 0x12
jne 0x6299c899
cmp byte [eax + 5], 0x11
jne 0x6299c899
cmp esi, 0x1291201
ja 0x6299c9c3
mov ecx, dword [edx]
test byte [ecx + 0x10648a], 0x40
je 0x6299c899
test byte [ecx + 0x753d0], 4
jne 0x6299c899
mov byte [eax + 5], 0
jmp 0x6299c899
cmp edi, 4
jne 0x6299c899
cmp esi, 0x1170301
jbe 0x6299c80c
cmp byte [edx + 6], 0
jne 0x6299c7da
cmp esi, 0x11fffff
jbe 0x6299c804
cmp esi, 0x1240201
jbe 0x6299c7f2
cmp byte [edx + 6], 1
je 0x6299c835
cmp esi, 0x11fffff
ja 0x6299c835
jmp 0x6299c80c
cmp byte [eax + 3], 0x17
jne 0x6299c804
cmp byte [eax + 5], 0x40
jbe 0x6299c82d
mov byte [eax + 3], 0
jmp 0x6299c82d
cmp esi, 0x118ffff
ja 0x6299c7e2
cmp byte [eax + 3], 0xa
jne 0x6299c835
cmp byte [eax + 2], 0xb
jne 0x6299ca1a
mov byte [eax + 3], 0
cmp esi, 0x120010f
jbe 0x6299c857
jmp 0x6299ca35
cmp esi, 0x118ffff
ja 0x6299c7e2
cmp esi, 0x120010f
ja 0x6299c84b
cmp byte [eax + 2], 0xb
jne 0x6299c857
cmp byte [eax + 3], 4
jne 0x6299c857
jmp 0x6299c85f
cmp esi, 0x1220708
ja 0x6299c959
cmp byte [eax + 3], 0x10
jne 0x6299c899
jmp 0x6299c88f
movzx ecx, byte [eax + 4]
test cl, cl
jne 0x6299c86d
cmp byte [edx + 6], 0
je 0x6299c899
movzx ebx, byte [eax + 5]
test bl, bl
je 0x6299c899
shl ecx, 4
mov byte [eax + 2], 0
add ebx, ecx
cmp bx, 0xff
jbe 0x6299c88a
mov ebx, 0xff
mov byte [eax + 5], bl
jmp 0x6299c899
cmp byte [eax + 5], 0
jne 0x6299c899
mov byte [eax + 3], 0
cmp esi, 0x11fffff
ja 0x6299c959
mov cl, byte [eax + 3]
cmp cl, 0x14
jne 0x6299c8ba
mov dl, byte [eax + 5]
and edx, 0xfffffff0
cmp dl, 0x60
jne 0x6299c91c
jmp 0x6299c8e5
cmp cl, 0x1c
jne 0x6299c959
mov cl, byte [eax + 5]
and ecx, 0xfffffff0
cmp cl, 0x60
jne 0x6299c959
cmp esi, 0x117ffff
setbe bl
cmp edi, 4
setne cl
or bl, cl
je 0x6299c953
movzx edx, word [esp + 2]
imul edx, edx, 6
mov ebx, eax
sub ebx, edx
mov edx, ebx
cmp edx, eax
jae 0x6299c916
mov cl, byte [edx + 3]
and ecx, 0xfffffff7
cmp cl, 0x14
jne 0x6299c911
mov cl, byte [edx + 5]
and ecx, 0xfffffff0
cmp cl, 0x60
jne 0x6299c911
mov byte [edx + 3], 0
add edx, 6
jmp 0x6299c8f3
cmp byte [eax + 3], 0x14
jne 0x6299c959
mov dl, byte [eax + 5]
and edx, 0xfffffff0
cmp dl, 0xe0
jne 0x6299c959
movzx edx, word [esp + 2]
imul edx, edx, 6
mov ecx, eax
sub ecx, edx
mov edx, ecx
cmp edx, eax
jae 0x6299c959
cmp byte [edx + 3], 0x14
jne 0x6299c94e
mov cl, byte [edx + 5]
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x6299c94e
mov byte [edx + 3], 0
add edx, 6
jmp 0x6299c935
cmp byte [edx + 6], 1
jne 0x6299c8e5
cmp esi, 0x1270036
setbe cl
cmp esi, 0x1270000
setne dl
test cl, dl
je 0x6299c9c3
cmp byte [eax + 2], 8
jne 0x6299c9c3
mov dl, byte [eax + 3]
cmp dl, 7
jne 0x6299c989
cmp byte [eax + 4], 0
je 0x6299c989
mov byte [eax + 3], 0xb
jmp 0x6299c9c3
cmp dl, 0x1a
sete cl
cmp dl, 5
je 0x6299c998
test cl, cl
je 0x6299c9b3
mov bl, byte [eax + 5]
test bl, 0xf
jne 0x6299c9b3
mov dl, byte [eax + 4]
mov word [eax + 2], 0x500
and edx, 0xf
or edx, ebx
mov byte [eax + 5], dl
jmp 0x6299c9c3
and edx, 0xfffffffd
cmp dl, 5
je 0x6299c9bf
test cl, cl
je 0x6299c9c3
mov byte [eax + 2], 0
mov dl, byte [eax + 2]
cmp edi, 0x1000000
je 0x6299c9ef
cmp dl, 0xf
jne 0x6299ca46
cmp byte [eax + 3], 0
jne 0x6299c9f4
movzx edi, byte [eax + 4]
mov word [eax + 2], 0xa00
lea edx, [edi*8]
mov byte [eax + 5], dl
jmp 0x6299ca46
cmp dl, 0xf
jne 0x6299ca46
cmp byte [eax + 3], 0xa
jne 0x6299ca46
cmp esi, 0x1300013
ja 0x6299ca46
cmp byte [eax + 5], 0
jne 0x6299ca0e
cmp byte [eax + 4], 0
jne 0x6299ca14
mov byte [eax + 2], 0
jmp 0x6299ca46
mov byte [eax + 3], 0
jmp 0x6299ca46
cmp esi, 0x120010f
jbe 0x6299c899
jmp 0x6299ca35
test bl, bl
je 0x6299c751
jmp 0x6299c715
cmp esi, 0x1220708
ja 0x6299c959
jmp 0x6299c899
pop eax
pop ebx
pop esi
pop edi
pop ebp
ret 4