Function at 0x140087dd0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rsi, rdx
mov rax, qword [rdx]
mov rdx, qword [rdx + 8]
movq xmm0, rax
pshufd xmm0, xmm0, 0x44
pxor xmm0, xmmword [str.uespemosarenegylmodnarodsetybdet]
movq xmm1, rdx
pshufd xmm1, xmm1, 0x44
pxor xmm1, xmmword [0x1402209e0]
mov rbx, r8
mov r14, rcx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], 0
movdqu xmmword [rsp + 0x88], xmm0
movdqu xmmword [rsp + 0x98], xmm1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xa8], xmm0
lea rdx, [rsp + 0x70]
mov rcx, r8
call fcn.140117820
mov rbp, qword [rsp + 0x80]
mov rax, qword [rsp + 0x98]
shl rbp, 0x38
or rbp, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x88]
add rdx, rax
rol rax, 0xd
xor rcx, rbp
xor rax, rdx
rol rdx, 0x20
mov rdi, qword [rsp + 0x90]
add rdi, rcx
rol rcx, 0x10
xor rcx, rdi
add rdx, rcx
rol rcx, 0x15
add rdi, rax
rol rax, 0x11
xor rcx, rdx
xor rax, rdi
rol rdi, 0x20
xor rdx, rbp
add rdx, rax
rol rax, 0xd
xor rax, rdx
rol rdx, 0x20
xor rdi, 0xff
add rdi, rcx
rol rcx, 0x10
xor rcx, rdi
add rdx, rcx
rol rcx, 0x15
add rdi, rax
rol rax, 0x11
xor rax, rdi
rol rdi, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0xd
xor rax, rdx
rol rdx, 0x20
add rdi, rcx
rol rcx, 0x10
xor rcx, rdi
add rdx, rcx
rol rcx, 0x15
add rdi, rax
rol rax, 0x11
xor rax, rdi
rol rdi, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0xd
add rdi, rcx
rol rcx, 0x10
xor rcx, rdi
rol rcx, 0x15
xor rax, rdx
add rdi, rax
rol rax, 0x11
xor rax, rdi
rol rdi, 0x20
xor rax, rdi
xor rax, rcx
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x50], rsi
mov rcx, qword [rsi + 0x18]
mov r8, rdx
and r8, rax
shr rax, 0x39
lea rbp, [r8 + 0x10]
mov qword [rsp + 0x40], rdx
and rbp, rdx
mov qword [rsp + 0x30], 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 edi, xmm2
mov eax, reloc.WS2_32.dll_recv
test di, di
je 0x1400881e6
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], r14
bsf ax, di
movzx ebp, ax
add rbp, r8
lea r12d, [rdi - 1]
and r12d, edi
movzx ecx, byte [rbx]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x48], rax
mov al, byte [rbx + 1]
mov byte [rsp + 0x2f], al
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0xd0], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x68], rax
pcmpeqd xmm2, xmm2
mov qword [rsp + 0xc8], rcx
jmp 0x14008802e
lea eax, [r12 - 1]
and eax, r12d
bsf cx, r12w
movzx ebp, cx
add rbp, r8
mov r12d, eax
mov rcx, qword [rsp + 0xc8]
and rbp, qword [rsp + 0x40]
neg rbp
lea rbp, [rbp + rbp*4]
shl rbp, 4
mov rax, qword [rsp + 0x30]
lea rdi, [rax + rbp]
add rdi, 0xffffffffffffffb0
cmp ecx, 1
je 0x1400880f0
cmp ecx, 2
je 0x140088070
test rcx, rcx
je 0x1400883b3
mov cl, byte [rdi]
jmp 0x140088110
mov cl, byte [rdi]
cmp cl, 2
jne 0x140088110
mov rax, qword [rsp + 0x48]
mov r10, qword [rax + 8]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + rbp - 0x48]
cmp r10, qword [rcx + 8]
jne 0x140088118
mov rax, qword [rsp + 0x48]
mov r14, qword [rax]
mov r9, qword [rcx]
xor ecx, ecx
nop word cs:[rax + rax]
nop
cmp r10, rcx
je 0x14008817b
movzx r11d, byte [r14 + rcx]
movzx r15d, byte [r9 + rcx]
add rcx, 1
lea r13d, [r11 - 0x41]
cmp r13b, 0x1a
setb bl
shl bl, 5
or bl, r11b
lea esi, [r15 - 0x41]
cmp sil, 0x1a
setb dl
shl dl, 5
or dl, r15b
cmp bl, dl
je 0x1400880b0
jmp 0x140088118
mov cl, byte [rdi]
cmp cl, 1
jne 0x140088110
mov cl, byte [rdi + 1]
cmp byte [rsp + 0x2f], 1
jne 0x140088177
test cl, cl
jne 0x14008817b
jmp 0x140088118
test cl, cl
je 0x1400883b3
test r12w, r12w
jne 0x140088010
mov r8, qword [rsp + 0x58]
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test ax, ax
mov r14, qword [rsp + 0x60]
jne 0x14008823a
mov rax, qword [rsp + 0x38]
lea rcx, [r8 + rax]
add rcx, 0x10
add rax, 0x10
mov qword [rsp + 0x38], rax
and rcx, qword [rsp + 0x40]
mov qword [rsp + 0x58], rcx
mov rax, qword [rsp + 0x30]
movdqu xmm1, xmmword [rax + r8]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm1
pmovmskb r12d, xmm3
jmp 0x140088118
test cl, cl
jne 0x140088118
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
cmp rcx, qword [rax + rbp - 0x38]
jne 0x140088118
mov rax, qword [rsp + 0x30]
lea r10, [rax + rbp]
mov rbp, qword [rax + rbp - 0x40]
xor ecx, ecx
cmp qword [rsp + 0x68], rcx
je 0x14008825b
mov rax, qword [rsp + 0xd0]
movzx edx, byte [rax + rcx]
movzx ebx, byte [rbp + rcx]
add rcx, 1
lea esi, [rdx - 0x41]
cmp sil, 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 0x1400881a0
jmp 0x140088118
mov qword [rsp + 0x38], rax
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test ax, ax
jne 0x14008823a
mov r8, rbp
mov rax, qword [rsp + 0x38]
add rbp, rax
add rbp, 0x10
add rax, 0x10
mov qword [rsp + 0x38], rax
and rbp, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
movdqu xmm1, xmmword [rax + r8]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm1
pmovmskb edi, xmm3
test di, di
je 0x1400881ef
jmp 0x140087fb5
mov byte [rsp + 0x70], 3
mov qword [r14 + 0x10], 0
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbp, qword [rsp + 0x30]
mov rcx, rbp
sub rcx, r10
sar rcx, 4
movabs rax, 0xcccccccccccccccd
imul rax, rcx
lea rdx, [rax - 0x10]
and rdx, qword [rsp + 0x40]
movdqu xmm0, xmmword [rbp + rdx]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
pmovmskb esi, xmm0
movdqu xmm0, xmmword [rbp + 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 0x1400882b5
bsr cx, si
xor ecx, 0xf
test bx, bx
mov r14, qword [rsp + 0x60]
je 0x1400882c3
bsf bp, bx
movzx ebp, bp
add ebp, ecx
cmp bp, 0xf
jbe 0x1400882e3
mov rcx, qword [rsp + 0x30]
mov byte [rcx + rax], 0x80
mov byte [rdx + rcx + 0x10], 0x80
mov rcx, qword [rsp + 0x50]
jmp 0x1400882fc
mov rcx, qword [rsp + 0x50]
add qword [rcx + 0x20], 1
mov rbp, qword [rsp + 0x30]
mov byte [rbp + rax], 0xff
mov byte [rdx + rbp + 0x10], 0xff
add qword [rcx + 0x28], 0xffffffffffffffff
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rdi + 0x40]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm3
movaps xmmword [rsp + 0x90], xmm2
movaps xmmword [rsp + 0x80], xmm1
mov al, byte [rsp + 0x70]
cmp al, 3
je 0x14008823f
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
cmp al, 2
jb 0x14008838b
mov rsi, qword [rsp + 0x78]
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 + 0x98]
lea rcx, [rsp + 0x90]
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
call qword [rax + ioctlsocket]
jmp 0x140088247
lea rcx, [0x1402772a0]
lea r8, [0x1402493a8]
mov edx, 0x28
call fcn.14001f9d0
ud2