Function at 0x14012add0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rsi, rcx
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
movq xmm0, rax
pshufd xmm0, xmm0, 0x44
pxor xmm0, xmmword [str.uespemosarenegylmodnarodsetybdet]
movq xmm1, rcx
pshufd xmm1, xmm1, 0x44
pxor xmm1, xmmword [0x1402209e0]
mov rdi, rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 0
movdqu xmmword [rsp + 0x78], xmm0
movdqu xmmword [rsp + 0x88], xmm1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.140117820
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x88]
shl rbp, 0x38
or rbp, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x78]
add rdx, rax
rol rax, 0xd
xor rcx, rbp
xor rax, rdx
rol rdx, 0x20
mov rbx, qword [rsp + 0x80]
add rbx, rcx
rol rcx, 0x10
xor rcx, rbx
add rdx, rcx
rol rcx, 0x15
add rbx, rax
rol rax, 0x11
xor rcx, rdx
xor rax, rbx
rol rbx, 0x20
xor rdx, rbp
add rdx, rax
rol rax, 0xd
xor rax, rdx
rol rdx, 0x20
xor rbx, 0xff
add rbx, rcx
rol rcx, 0x10
xor rcx, rbx
add rdx, rcx
rol rcx, 0x15
add rbx, rax
rol rax, 0x11
xor rax, rbx
rol rbx, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0xd
xor rax, rdx
rol rdx, 0x20
add rbx, rcx
rol rcx, 0x10
xor rcx, rbx
add rdx, rcx
rol rcx, 0x15
add rbx, rax
rol rax, 0x11
xor rax, rbx
rol rbx, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0xd
add rbx, rcx
rol rcx, 0x10
xor rcx, rbx
rol rcx, 0x15
xor rax, rdx
add rbx, rax
rol rax, 0x11
xor rax, rbx
rol rbx, 0x20
xor rax, rbx
xor rax, rcx
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x48], rsi
mov rcx, qword [rsi + 0x18]
mov r8, rdx
and r8, rax
shr rax, 0x39
lea rbx, [r8 + 0x10]
mov qword [rsp + 0x38], rdx
and rbx, rdx
mov qword [rsp + 0x28], rcx
movdqu xmm1, xmmword [rcx + r8]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0xe0
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
pcmpeqb xmm2, xmm1
pmovmskb ebp, xmm2
mov eax, reloc.WS2_32.dll_recv
test bp, bp
je 0x14012b1d5
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x50], rbx
bsf ax, bp
movzx esi, ax
add rsi, r8
lea r15d, [rbp - 1]
and r15d, ebp
movzx ecx, byte [rdi]
mov rax, qword [rdi + 8]
mov qword [rsp + 0x40], rax
mov al, byte [rdi + 1]
mov byte [rsp + 0x27], al
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0xb0], rax
mov rax, qword [rdi + 0x18]
mov qword [rsp + 0x58], rax
pcmpeqd xmm2, xmm2
mov qword [rsp + 0xa8], rcx
jmp 0x14012b01d
lea eax, [r15 - 1]
and eax, r15d
bsf cx, r15w
movzx esi, cx
add rsi, r8
mov r15d, eax
mov rcx, qword [rsp + 0xa8]
and rsi, qword [rsp + 0x38]
neg rsi
lea rsi, [rsi + rsi*2]
shl rsi, 4
mov rax, qword [rsp + 0x28]
lea r13, [rax + rsi]
add r13, 0xffffffffffffffd0
cmp ecx, 1
je 0x14012b0e0
cmp ecx, 2
je 0x14012b060
test rcx, rcx
je 0x14012b35d
mov cl, byte [r13]
jmp 0x14012b100
mov cl, byte [r13]
cmp cl, 2
jne 0x14012b100
mov rax, qword [rsp + 0x40]
mov rbp, qword [rax + 8]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + rsi - 0x28]
cmp rbp, qword [rcx + 8]
jne 0x14012b108
mov rax, qword [rsp + 0x40]
mov r10, qword [rax]
mov r9, qword [rcx]
xor ecx, ecx
nop word [rax + rax]
cmp rbp, rcx
je 0x14012b166
movzx r11d, byte [r10 + rcx]
movzx r14d, byte [r9 + rcx]
add rcx, 1
lea r12d, [r11 - 0x41]
cmp r12b, 0x1a
setb bl
shl bl, 5
or bl, r11b
lea edi, [r14 - 0x41]
cmp dil, 0x1a
setb dl
shl dl, 5
or dl, r14b
cmp bl, dl
je 0x14012b0a0
jmp 0x14012b108
mov cl, byte [r13]
cmp cl, 1
jne 0x14012b100
mov cl, byte [r13 + 1]
cmp byte [rsp + 0x27], 1
jne 0x14012b162
test cl, cl
jne 0x14012b166
jmp 0x14012b108
test cl, cl
je 0x14012b35d
test r15w, r15w
jne 0x14012b000
mov r8, qword [rsp + 0x50]
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test ax, ax
jne 0x14012b229
mov rax, qword [rsp + 0x30]
lea rcx, [r8 + rax]
add rcx, 0x10
add rax, 0x10
mov qword [rsp + 0x30], rax
and rcx, qword [rsp + 0x38]
mov qword [rsp + 0x50], rcx
mov rax, qword [rsp + 0x28]
movdqu xmm1, xmmword [rax + r8]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm1
pmovmskb r15d, xmm3
jmp 0x14012b108
test cl, cl
jne 0x14012b108
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x58]
cmp rcx, qword [rax + rsi - 0x18]
jne 0x14012b108
mov rax, qword [rsp + 0x28]
lea rbp, [rax + rsi]
mov rsi, qword [rax + rsi - 0x20]
xor ecx, ecx
nop dword [rax + rax]
cmp qword [rsp + 0x58], rcx
je 0x14012b242
mov rax, qword [rsp + 0xb0]
movzx edx, byte [rax + rcx]
movzx ebx, byte [rsi + rcx]
add rcx, 1
lea edi, [rdx - 0x41]
cmp dil, 0x1a
setb al
shl al, 5
or al, dl
lea edx, [rbx - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, bl
cmp al, dl
je 0x14012b190
jmp 0x14012b108
mov qword [rsp + 0x30], rax
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test ax, ax
jne 0x14012b229
mov r8, rbx
mov rax, qword [rsp + 0x30]
add rbx, rax
add rbx, 0x10
add rax, 0x10
mov qword [rsp + 0x30], rax
and rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
movdqu xmm1, xmmword [rax + r8]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm1
pmovmskb ebp, xmm3
test bp, bp
je 0x14012b1de
jmp 0x14012afa6
mov byte [rsp + 0x60], 3
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
sub rcx, rbp
sar rcx, 4
movabs rax, 0xaaaaaaaaaaaaaaab
imul rax, rcx
lea rdx, [rax - 0x10]
and rdx, qword [rsp + 0x38]
movdqu xmm0, xmmword [rbx + rdx]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
pmovmskb esi, xmm0
movdqu xmm0, xmmword [rbx + rax]
pcmpeqb xmm0, xmm1
pmovmskb ebx, xmm0
mov bp, reloc.WS2_32.dll_recv
mov cx, reloc.WS2_32.dll_recv
test si, si
je 0x14012b29a
bsr cx, si
xor ecx, 0xf
test bx, bx
je 0x14012b2a3
bsf bp, bx
movzx ebp, bp
add ebp, ecx
cmp bp, 0xf
jbe 0x14012b2c3
mov rcx, qword [rsp + 0x28]
mov byte [rcx + rax], 0x80
mov byte [rdx + rcx + 0x10], 0x80
mov rcx, qword [rsp + 0x48]
jmp 0x14012b2dc
mov rcx, qword [rsp + 0x48]
add qword [rcx + 0x20], 1
mov rbp, qword [rsp + 0x28]
mov byte [rbp + rax], 0xff
mov byte [rdx + rbp + 0x10], 0xff
add qword [rcx + 0x28], 0xffffffffffffffff
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmm2, xmmword [r13 + 0x20]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x80], xmm2
movaps xmmword [rsp + 0x70], xmm1
mov al, byte [rsp + 0x60]
cmp al, 3
je 0x14012b22e
cmp al, 2
jb 0x14012b33b
mov rsi, qword [rsp + 0x68]
mov rax, qword [rsi + 0x18]
lea rcx, [rsi + 0x10]
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
call qword [rax + ioctlsocket]
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rsi
call fcn.14021dfcd
mov rax, qword [rsp + 0x88]
lea rcx, [rsp + 0x80]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
call qword [rax + ioctlsocket]
jmp 0x14012b22e
lea rcx, [0x1402772a0]
lea r8, [0x1402493a8]
mov edx, 0x28
call fcn.14001f9d0
ud2