Function at 0x10014fea
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10056eaa
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x15c
push esi
push edi
movzx eax, byte [ebp + 8]
test eax, eax
je 0x100152d7
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x70], eax
lea eax, [ebp + 0x1c]
mov dword [ebp - 0x8c], eax
lea eax, [ebp + 0x18]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x8c]
movzx eax, byte [eax]
test eax, eax
je 0x1001506e
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xdc], eax
push 0
mov ecx, dword [ebp - 0xdc]
call fcn.1000c5cf
mov dword [eax], 0x2ffab8c3
jmp 0x100152d2
mov dword [ebp - 0x60], 0x436f
mov dword [ebp - 0xa8], str.vvdb_gxrxo_husyhlsi_jbynrxwlf_kmacj_mrw_mrv_riatvn_wibqasc_pjucc_mjvhqs_bhdqjymos_mnsbsac
cmp dword [ebp - 0x60], 0x4487
jle 0x10015121
and dword [ebp - 0x28], 0
jmp 0x10015099
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x1e8e
jge 0x10015121
and dword [ebp - 0x2c], 0
jmp 0x100150af
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x3814
jge 0x1001511c
and dword [ebp - 0x40], 0
jmp 0x100150c5
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0x110c
jge 0x1001511a
and dword [ebp - 0x48], 0
jmp 0x100150db
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x42b8
jge 0x10015118
mov eax, dword [ebp - 0x2c]
cdq
idiv dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
sub eax, edx
xor eax, dword [ebp - 0x48]
cdq
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], edx
push dword [ebp - 0xe0]
push dword [ebp - 0xe4]
mov ecx, 0x1006cbb8
call fcn.1000c318
jmp 0x100150d4
jmp 0x100150be
jmp 0x100150a8
jmp 0x10015092
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0x60], 0x3fd4
jge 0x10015146
mov edx, dword [ebp - 0xa8]
mov ecx, 0x1006cbb8
call fcn.1000e58f
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x3c], 0
jmp 0x10015166
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jge 0x1001517c
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x150], 0x6bacd795
jmp 0x1001515f
mov dword [ebp - 0x34], 0
jmp 0x1001518c
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x1b
jg 0x10015290
mov dword [ebp - 0x44], 0x85bf25cb
push 0x492a
push 0x673e
push 1
push 0x6f58
push 0
push 0x31ff
push 0x25a2
push 0
call fcn.10014fea
add esp, 0x20
mov dword [ebp - 0x44], 2
jmp 0x100151d4
mov eax, dword [ebp - 0x44]
dec eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jl 0x1001528b
push 2
lea ecx, [ebp - 0xd4]
call fcn.1000c530
and dword [ebp - 4], 0
push 0x2718
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xd4]
push eax
push 1
push 0
call fcn.10012e65
add esp, 0x14
push 1
lea ecx, [ebp - 0xd4]
call fcn.1000c5cf
and dword [eax], 0
jmp 0x1001523b
push 1
lea ecx, [ebp - 0xd4]
call fcn.1000c5cf
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
push 1
lea ecx, [ebp - 0xd4]
call fcn.1000c5cf
cmp dword [eax], 2
jg 0x10015277
mov byte [ebp - 0xf], 0
push 0x534f
push 1
push 0
lea eax, [ebp - 0xf]
push eax
push 0x1873
push 0x2d44
push 0x5ae7
call fcn.100161b9
add esp, 0x1c
jmp 0x10015220
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.1000c5b3
jmp 0x100151cd
jmp 0x10015185
lea eax, [ebp - 0x12c]
push eax
call fcn.10010012
pop ecx
mov esi, eax
lea edi, [ebp - 0x120]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax]
call fcn.10011a0d
shl eax, 1
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx + eax*4]
sub eax, 0x12c
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
jmp 0x100156ec
jmp 0x100156ec
lea eax, [ebp + 0x24]
mov dword [ebp - 0x9c], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xb4]
movzx eax, byte [eax]
test eax, eax
je 0x100156c6
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x1006dc7c]
and eax, 1
jne 0x1001534c
mov eax, dword [0x1006dc7c]
or eax, 1
mov dword [0x1006dc7c], eax
mov dword [ebp - 4], 1
mov ecx, 0x10073538
call fcn.1001db7d
push 0x10057c5d
call fcn.10041372
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x4c], 0xbc58
mov dword [ebp - 0x54], 0
push 4
lea ecx, [ebp - 0xfc]
call fcn.1000c530
mov dword [ebp - 4], 2
mov dword [ebp - 0xc4], 0
lea eax, [ebp - 0x14]
push eax
push 0x7c6d
lea eax, [ebp - 0xfc]
push eax
push 0
push 0x41b1
call fcn.1001d649
add esp, 0x14
mov dword [ebp - 0x14], 0
jmp 0x100153ae
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x100153c4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x114], 0x351a938
jmp 0x100153a7
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jne 0x100153d5
mov dword [ebp - 0x68], 1
jmp 0x100153d9
and dword [ebp - 0x68], 0
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x68]
jl 0x10015424
cmp dword [ebp - 0x4c], 0xaa43b2b
jle 0x100153f3
mov dword [ebp - 0x50], 1
jmp 0x100153f7
and dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x54], eax
je 0x1001540e
mov dword [ebp - 0x5c], 1
jmp 0x10015412
and dword [ebp - 0x5c], 0
push 2
lea ecx, [ebp - 0xfc]
call fcn.1000c5cf
mov ecx, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jne 0x10015438
mov dword [ebp - 0xa4], 1
jmp 0x1001543f
and dword [ebp - 0xa4], 0
push 4
pop eax
imul eax, eax, 0
mov dword [ebp + eax - 0x114], 0xa421
mov eax, dword [ebp - 0x18]
sub eax, 0xa421
mov dword [ebp - 0xc4], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xfc]
call fcn.1000c5b3
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x104]
push eax
mov ecx, 0x10073538
call fcn.1001d9c9
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x108]
push eax
mov ecx, 0x10073538
call fcn.1001d9d7
mov ecx, eax
call fcn.1001dc34
movzx eax, al
test eax, eax
je 0x100154d8
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xb0]
push eax
mov ecx, 0x10073538
call fcn.1001dbd1
mov ecx, dword [ebp - 0x6c]
mov al, byte [eax]
mov byte [ecx], al
jmp 0x100156ec
mov eax, dword [ebp - 0x24]
push dword [eax]
lea eax, [ebp - 0x144]
push eax
call fcn.1001271a
pop ecx
pop ecx
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0xb8]
call fcn.1000c2f8
mov al, byte [eax]
mov byte [ebp - 0xd], al
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x144]
call fcn.1000f8df
mov dword [ebp - 0x74], 0xffffffff
mov dword [ebp - 0xe8], 0xffffffff
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x88], 0xd77cccae
mov dword [ebp - 0x78], 0x9034e105
push 0x6346
push 0x1f5
push 0x17f1
push 0x6459
push 0
push 0x3eab
call fcn.1001297d
add esp, 0x18
push 0
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x74]
push eax
push 0x7f49
lea eax, [ebp - 0x78]
push eax
push 0x4e5f
push 0x6330
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.1001c8e1
add esp, 0x24
mov dword [ebp - 0x64], 0x4cc9
mov dword [ebp - 0x98], str.mvhxhmx_pssmeybmk_aoqsmiotj_gbrx_jgokj_peqwdwhw_ctarfyb_ojjffv_ogix_qovsti_scn
cmp dword [ebp - 0x64], 0x4f71
jle 0x10015684
and dword [ebp - 0x38], 0
jmp 0x100155cd
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0x35c8
jge 0x10015684
and dword [ebp - 0x1c], 0
jmp 0x100155e7
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x2f95
jge 0x1001567f
and dword [ebp - 0x30], 0
jmp 0x10015601
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x3810
jge 0x1001567a
and dword [ebp - 0x20], 0
jmp 0x10015617
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x15ea
jge 0x10015678
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x30]
xor eax, dword [ebp - 0x38]
xor eax, dword [ebp - 0x20]
cdq
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
push dword [ebp - 0xec]
push dword [ebp - 0xf0]
lea ecx, [ebp - 0x168]
call fcn.100019c5
pop ecx
pop ecx
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x90]
call fcn.1000c2f8
push eax
call fcn.1004139c
pop ecx
lea ecx, [ebp - 0x168]
call fcn.1000c2ee
jmp 0x10015610
jmp 0x100155fa
jmp 0x100155e0
jmp 0x100155c6
cmp dword [ebp - 0x64], 0x4c9c
jge 0x10015699
push dword [ebp - 0x98]
call fcn.1004139c
pop ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xa0]
push eax
mov ecx, 0x10073538
call fcn.1001dbd1
mov cl, byte [ebp - 0xd]
mov byte [eax], cl
mov eax, dword [ebp - 0x6c]
mov cl, byte [ebp - 0xd]
mov byte [eax], cl
jmp 0x100156ec
mov byte [ebp - 0xe], 0
push 0x1df4
push 0x74cb
lea eax, [ebp - 0xe]
push eax
push 0x73dd
push 0x41d3
push 0
call fcn.10011b1d
add esp, 0x18
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret