Function at 0x6299b98c
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 0x6299b9b7
mov word [edx + 4], 0
movzx edi, byte [eax]
lea ebx, [edi + 5]
cmp bl, 1
jbe 0x6299bde0
mov edi, dword [ecx + 0x753b4]
mov esi, dword [ecx + 0x106484]
cmp edi, 2
jne 0x6299ba00
cmp esi, 0x118ffff
ja 0x6299bc35
cmp byte [eax + 3], 0x17
jne 0x6299bc41
cmp byte [eax + 5], 0x40
jbe 0x6299bc41
mov byte [eax + 5], 0x40
jmp 0x6299bc41
test edi, 0x1000020
je 0x6299bb57
cmp esi, 0x1170301
jbe 0x6299ba22
cmp byte [edx + 6], 1
je 0x6299ba55
cmp esi, 0x11fffff
ja 0x6299ba55
mov cl, byte [eax + 3]
cmp cl, 0x17
jne 0x6299ba36
cmp byte [eax + 5], 0x80
jbe 0x6299ba55
mov byte [eax + 5], pe_nt_image_headers32
jmp 0x6299ba55
cmp cl, 0x14
jne 0x6299ba55
mov cl, byte [eax + 5]
cmp cl, 0xc0
jne 0x6299ba4c
mov byte [eax + 3], 0
mov byte [eax], 0xfe
jmp 0x6299ba55
cmp cl, 0xd0
jne 0x6299ba55
mov byte [eax + 3], 0
cmp esi, 0x117ffff
jbe 0x6299ba70
mov bl, byte [edx + 6]
xor ebx, 1
cmp esi, 0x11fffff
setbe cl
and cl, bl
je 0x6299ba8b
mov cl, byte [eax + 3]
mov bl, 1
cmp cl, 0x1d
ja 0x6299ba86
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 0x6299baa6
sub ebx, 0x16
and bl, 0xfd
je 0x6299baaa
jmp 0x6299bdc2
test cl, cl
je 0x6299bade
mov cl, byte [eax + 5]
mov bl, cl
and ebx, 0xf
mov byte [ebp - 0x10], bl
mov ebx, ecx
and ebx, 0xf
je 0x6299bade
cmp ebx, 0xf
je 0x6299bade
and ecx, 0xfffffff0
cmp cl, 0xf0
je 0x6299bade
test cl, cl
je 0x6299bade
cmp byte [ebp - 0xf], 0x18
jne 0x6299bad8
mov byte [eax + 5], cl
jmp 0x6299bade
mov bl, byte [ebp - 0x10]
mov byte [eax + 5], bl
cmp esi, 0x1220103
ja 0x6299bb12
cmp esi, 0x1220000
je 0x6299bb12
mov ecx, dword [edx]
movzx ecx, word [ecx + 0x753c0]
test cx, cx
je 0x6299bb12
movzx ebx, byte [eax + 1]
cmp ebx, ecx
jle 0x6299bb12
cmp byte [edx + 6], 0
jne 0x6299bb12
mov byte [eax + 2], 1
mov byte [eax + 4], 0
cmp byte [ebp - 0xf], 0x12
jne 0x6299bc35
cmp byte [eax + 5], 0x11
jne 0x6299bc35
cmp esi, 0x1291201
ja 0x6299bd5d
mov ecx, dword [edx]
test byte [ecx + 0x10648a], 0x40
je 0x6299bc35
test byte [ecx + 0x753d0], 4
jne 0x6299bc35
mov byte [eax + 5], 0
jmp 0x6299bc35
cmp edi, 4
jne 0x6299bc35
cmp esi, 0x1170301
jbe 0x6299bba8
cmp byte [edx + 6], 0
jne 0x6299bb76
cmp esi, 0x11fffff
jbe 0x6299bba0
cmp esi, 0x1240201
jbe 0x6299bb8e
cmp byte [edx + 6], 1
je 0x6299bbd1
cmp esi, 0x11fffff
ja 0x6299bbd1
jmp 0x6299bba8
cmp byte [eax + 3], 0x17
jne 0x6299bba0
cmp byte [eax + 5], 0x40
jbe 0x6299bbc9
mov byte [eax + 3], 0
jmp 0x6299bbc9
cmp esi, 0x118ffff
ja 0x6299bb7e
cmp byte [eax + 3], 0xa
jne 0x6299bbd1
cmp byte [eax + 2], 0xb
jne 0x6299bdb4
mov byte [eax + 3], 0
cmp esi, 0x120010f
jbe 0x6299bbf3
jmp 0x6299bdcf
cmp esi, 0x118ffff
ja 0x6299bb7e
cmp esi, 0x120010f
ja 0x6299bbe7
cmp byte [eax + 2], 0xb
jne 0x6299bbf3
cmp byte [eax + 3], 4
jne 0x6299bbf3
jmp 0x6299bbfb
cmp esi, 0x1220708
ja 0x6299bcf3
cmp byte [eax + 3], 0x10
jne 0x6299bc35
jmp 0x6299bc2b
movzx ecx, byte [eax + 4]
test cl, cl
jne 0x6299bc09
cmp byte [edx + 6], 0
je 0x6299bc35
movzx ebx, byte [eax + 5]
test bl, bl
je 0x6299bc35
shl ecx, 4
mov byte [eax + 2], 0
add ebx, ecx
cmp bx, 0xff
jbe 0x6299bc26
mov ebx, 0xff
mov byte [eax + 5], bl
jmp 0x6299bc35
cmp byte [eax + 5], 0
jne 0x6299bc35
mov byte [eax + 3], 0
cmp esi, 0x11fffff
ja 0x6299bcf3
mov cl, byte [eax + 3]
cmp cl, 0x14
jne 0x6299bc56
mov dl, byte [eax + 5]
and edx, 0xfffffff0
cmp dl, 0x60
jne 0x6299bcb7
jmp 0x6299bc81
cmp cl, 0x1c
jne 0x6299bcf3
mov cl, byte [eax + 5]
and ecx, 0xfffffff0
cmp cl, 0x60
jne 0x6299bcf3
cmp esi, 0x117ffff
setbe bl
cmp edi, 4
setne cl
or bl, cl
je 0x6299bced
movzx edx, word [ebp - 0xe]
imul edx, edx, 6
mov ebx, eax
sub ebx, edx
mov edx, ebx
cmp edx, eax
jae 0x6299bcb1
mov cl, byte [edx + 3]
and ecx, 0xfffffff7
cmp cl, 0x14
jne 0x6299bcac
mov cl, byte [edx + 5]
and ecx, 0xfffffff0
cmp cl, 0x60
jne 0x6299bcac
mov byte [edx + 3], 0
add edx, 6
jmp 0x6299bc8e
cmp byte [eax + 3], 0x14
jne 0x6299bcf3
mov dl, byte [eax + 5]
and edx, 0xfffffff0
cmp dl, 0xe0
jne 0x6299bcf3
movzx edx, word [ebp - 0xe]
imul edx, edx, 6
mov ebx, eax
sub ebx, edx
mov edx, ebx
cmp edx, eax
jae 0x6299bcf3
cmp byte [edx + 3], 0x14
jne 0x6299bce8
mov cl, byte [edx + 5]
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x6299bce8
mov byte [edx + 3], 0
add edx, 6
jmp 0x6299bccf
cmp byte [edx + 6], 1
jne 0x6299bc81
cmp esi, 0x1270036
setbe cl
cmp esi, 0x1270000
setne dl
test cl, dl
je 0x6299bd5d
cmp byte [eax + 2], 8
jne 0x6299bd5d
mov dl, byte [eax + 3]
cmp dl, 7
jne 0x6299bd23
cmp byte [eax + 4], 0
je 0x6299bd23
mov byte [eax + 3], 0xb
jmp 0x6299bd5d
cmp dl, 0x1a
sete cl
cmp dl, 5
je 0x6299bd32
test cl, cl
je 0x6299bd4d
mov bl, byte [eax + 5]
test bl, 0xf
jne 0x6299bd4d
mov dl, byte [eax + 4]
mov word [eax + 2], 0x500
and edx, 0xf
or edx, ebx
mov byte [eax + 5], dl
jmp 0x6299bd5d
and edx, 0xfffffffd
cmp dl, 5
je 0x6299bd59
test cl, cl
je 0x6299bd5d
mov byte [eax + 2], 0
mov dl, byte [eax + 2]
cmp edi, 0x1000000
je 0x6299bd89
cmp dl, 0xf
jne 0x6299bde0
cmp byte [eax + 3], 0
jne 0x6299bd8e
movzx edi, byte [eax + 4]
mov word [eax + 2], 0xa00
lea edx, [edi*8]
mov byte [eax + 5], dl
jmp 0x6299bde0
cmp dl, 0xf
jne 0x6299bde0
cmp byte [eax + 3], 0xa
jne 0x6299bde0
cmp esi, 0x1300013
ja 0x6299bde0
cmp byte [eax + 5], 0
jne 0x6299bda8
cmp byte [eax + 4], 0
jne 0x6299bdae
mov byte [eax + 2], 0
jmp 0x6299bde0
mov byte [eax + 3], 0
jmp 0x6299bde0
cmp esi, 0x120010f
jbe 0x6299bc35
jmp 0x6299bdcf
test cl, cl
je 0x6299baee
jmp 0x6299baaa
cmp esi, 0x1220708
ja 0x6299bcf3
jmp 0x6299bc35
pop eax
pop ebx
pop esi
pop edi
pop ebp
ret 4