Function at 0x1400086d8
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
ror dword [rbp - 0x77], 0xc8
nop dword [rax]
movsx r9w, byte [rdx]
sub rdx, 1
sub rcx, 2
mov word [rcx + 2], r9w
cmp rdx, r8
jne 0x1400086e0
movsx cx, byte [rax]
mov rax, qword [rsi + 0xb0]
mov word [rbp], cx
mov edx, dword [rax + 0xb0]
mov ecx, dword [rax + 0x78]
call qword [rsi + 0xb8]
xor ecx, ecx
cmp word [rbp], 0
jne 0x140008726
jmp 0x140008827
mov ecx, r8d
lea r8d, [rcx + 1]
cmp word [rbp + r8*2], 0
mov rdx, r8
jne 0x140008723
test edx, edx
je 0x140008827
lea r8, [rax + 0x10]
cmp rbp, r8
lea r8, [rbp + 0x10]
setae r9b
cmp rax, r8
setae r8b
or r9b, r8b
je 0x14000a120
cmp ecx, 6
jbe 0x14000a120
mov r8d, edx
xor ecx, ecx
shr r8d, 3
shl r8, 4
movdqu xmm4, xmmword [rbp + rcx]
movups xmmword [rax + rcx], xmm4
add rcx, 0x10
cmp rcx, r8
jne 0x140008773
mov ecx, edx
and ecx, 0xfffffff8
cmp edx, ecx
je 0x140008827
movsxd r8, ecx
movzx r9d, word [rbp + r8*2]
mov word [rax + r8*2], r9w
lea r8d, [rcx + 1]
cmp edx, r8d
jbe 0x140008827
movsxd r8, r8d
movzx r9d, word [rbp + r8*2]
mov word [rax + r8*2], r9w
lea r8d, [rcx + 2]
cmp edx, r8d
jbe 0x140008827
movsxd r8, r8d
movzx r9d, word [rbp + r8*2]
mov word [rax + r8*2], r9w
lea r8d, [rcx + 3]
cmp edx, r8d
jbe 0x140008827
movsxd r8, r8d
movzx r9d, word [rbp + r8*2]
mov word [rax + r8*2], r9w
lea r8d, [rcx + 4]
cmp edx, r8d
jbe 0x140008827
movsxd r8, r8d
movzx r9d, word [rbp + r8*2]
mov word [rax + r8*2], r9w
lea r8d, [rcx + 5]
cmp edx, r8d
jbe 0x140008827
movsxd r8, r8d
add ecx, 6
movzx r9d, word [rbp + r8*2]
cmp edx, ecx
mov word [rax + r8*2], r9w
jbe 0x140008827
movsxd rcx, ecx
movzx edx, word [rbp + rcx*2]
mov word [rax + rcx*2], dx
lea r14, [rsp + 0xc0]
mov rcx, rax
call qword [rsi + 0x88]
mov edx, dword [rbx + 0x20]
mov r8, rbx
mov rcx, rax
mov rbp, rax
call fcn.140006d10
mov edx, dword [rbx + 0xd0]
mov qword [rsi + 0x70], rax
call fcn.140006d10
mov edx, dword [rbx + 0x110]
mov qword [rsi + 0xa0], rax
call fcn.140006d10
mov qword [rsi + 0x48], rax
mov rax, qword [rsi + 0xb0]
mov edx, dword [rax + 0xb0]
mov ecx, dword [rax + 0x78]
call qword [rsi + 0xb8]
mov r8, qword [rsi + 0xb8]
mov edx, 0x20000
mov dword [rsp + 0xc0], 0x20000
mov r13, rax
mov rax, qword [rsi + 0xb0]
mov ecx, dword [rax + 0x78]
call r8
test rax, rax
mov r12, rax
je 0x140008bf2
mov eax, dword [rsp + 0xc0]
test rax, rax
je 0x14000a140
lea rdx, [r12 + rax]
mov rax, r12
nop
mov byte [rax], 0
add rax, 1
cmp rax, rdx
jne 0x1400088d0
mov r8d, dword [rsp + 0xc0]
mov r9, r14
mov rdx, r12
mov ecx, 5
call qword [rsi + 0x28]
test eax, eax
jne fcn.140009050
mov rax, qword [rsi + 0xb0]
mov edx, 0xac
mov ecx, dword [rax + 0x78]
call qword [rsi + 0xb8]
mov ecx, dword [r12]
test ecx, ecx
je 0x140008bf2
lea r8, [rax + 2]
movdqa xmm6, xmmword [0x14000ad20]
pxor xmm3, xmm3
movdqa xmm5, xmmword [0x14000ad30]
movdqa xmm4, xmmword [0x14000ad40]
jmp 0x14000894f
add r12, rcx
mov ecx, dword [r12]
test ecx, ecx
je 0x140008bf2
cmp qword [r12 + 0x40], 0
je 0x140008940
mov byte [rax], 0
mov byte [rax + 1], 0
mov byte [rax + 2], 0
mov byte [rax + 3], 0
mov byte [rax + 4], 0
mov byte [rax + 5], 0
mov byte [rax + 6], 0
mov byte [rax + 7], 0
mov rdx, qword [r12 + 0x40]
movzx ecx, word [rdx]
test cx, cx
je 0x140009824
mov word [rax], cx
movzx ecx, word [rdx + 2]
test cx, cx
je 0x1400089b1
mov word [rax + 2], cx
movzx ecx, word [rdx + 4]
test cx, cx
je 0x1400089b1
mov word [rax + 4], cx
movzx edx, word [rdx + 6]
test dx, dx
je 0x1400089b1
mov word [rax + 6], dx
xor edx, edx
jmp 0x1400089b7
mov edx, ecx
lea r9d, [rdx + 1]
cmp word [rax + r9*2], 0
mov rcx, r9
jne 0x1400089b5
test r9d, r9d
je 0x140008b5c
cmp edx, 6
jbe 0x140009dd0
mov edx, ecx
mov r9, rax
shr edx, 3
shl rdx, 4
add rdx, rax
nop word [rax + rax]
movdqu xmm2, xmmword [r9]
add r9, 0x10
movdqa xmm0, xmm2
movdqa xmm1, xmm2
paddw xmm0, xmm6
paddw xmm1, xmm4
psubusw xmm0, xmm5
pcmpeqw xmm0, xmm3
pand xmm1, xmm0
pandn xmm0, xmm2
por xmm0, xmm1
movups xmmword [r9 - 0x10], xmm0
cmp r9, rdx
jne 0x1400089f0
mov edx, ecx
and edx, 0xfffffff8
cmp ecx, edx
je 0x140008b52
movsxd r9, edx
lea r10, [rax + r9*2]
movzx r9d, word [r10]
lea r14d, [r9 - 0x41]
lea r11d, [r9 + 0x20]
cmp r14w, 0x1a
cmovb r9d, r11d
mov word [r10], r9w
lea r9d, [rdx + 1]
cmp ecx, r9d
jbe 0x140008b52
movsxd r9, r9d
lea r10, [rax + r9*2]
movzx r9d, word [r10]
lea r14d, [r9 - 0x41]
lea r11d, [r9 + 0x20]
cmp r14w, 0x1a
cmovb r9d, r11d
mov word [r10], r9w
lea r9d, [rdx + 2]
cmp ecx, r9d
jbe 0x140008b52
movsxd r9, r9d
lea r10, [rax + r9*2]
movzx r9d, word [r10]
lea r14d, [r9 - 0x41]
lea r11d, [r9 + 0x20]
cmp r14w, 0x1a
cmovb r9d, r11d
mov word [r10], r9w
lea r9d, [rdx + 3]
cmp ecx, r9d
jbe 0x140008b52
movsxd r9, r9d
lea r10, [rax + r9*2]
movzx r9d, word [r10]
lea r14d, [r9 - 0x41]
lea r11d, [r9 + 0x20]
cmp r14w, 0x1a
cmp esi, 0x1a
cmovb r9d, r11d
mov word [r10], r9w
lea r9d, [rdx + 4]
cmp ecx, r9d
jbe 0x140008b52
movsxd r9, r9d
lea r10, [rax + r9*2]
movzx r9d, word [r10]
lea r14d, [r9 - 0x41]
lea r11d, [r9 + 0x20]
cmp r14w, 0x1a
cmovb r9d, r11d
mov word [r10], r9w
lea r9d, [rdx + 5]
cmp ecx, r9d
jbe 0x140008b52
movsxd r9, r9d
lea r10, [rax + r9*2]
movzx r9d, word [r10]
lea r14d, [r9 - 0x41]
lea r11d, [r9 + 0x20]
cmp r14w, 0x1a
cmovb r9d, r11d
add edx, 6
cmp ecx, edx
mov word [r10], r9w
jbe 0x140008b52
movsxd rdx, edx
lea rcx, [rax + rdx*2]
movzx edx, word [rcx]
lea r10d, [rdx - 0x41]
lea r9d, [rdx + 0x20]
cmp r10w, 0x1a
cmovb edx, r9d
mov word [rcx], dx
cmp word [rax], 0
je 0x14000982e
xor edx, edx
jmp 0x140008b63
mov edx, r9d
lea r9d, [rdx + 1]
cmp word [rax + r9*2], 0
mov rcx, r9
jne 0x140008b60
test ecx, ecx
je 0x14000982e
mov r10d, dword [rbx + 0x114]
lea r9, [r8 + rdx*2]
mov rcx, rax
xor edx, edx
nop word [rax + rax]
movzx r11d, word [rcx]
imul edx, r10d
add rcx, 2
add edx, r11d
cmp rcx, r9
jne 0x140008b90
cmp dword [rbx + 0x1c], edx
mov ecx, dword [r12]
je 0x140009030
cmp dword [rbx + 0xc8], edx
je 0x140009040
cmp dword [rbx + 0x50], edx
je 0x140009082
cmp dword [rbx + 0xf0], edx
je 0x1400099b0
cmp dword [rbx + 0x10c], edx
jne 0x140008940
add r12, rcx
mov byte [r13 + 8], 1
mov ecx, dword [r12]
test ecx, ecx
jne 0x14000894f
cmp byte [r13 + 1], 0
jne 0x140008c00
cmp byte [r13 + 5], 0
je 0x140008c6e
mov r12d, 0x25
mov r15, 0xffffffffff3201a0
lea r14, [rsp + 0xc0]
mov rax, qword [rsi + 0x50]
xor ecx, ecx
mov rdx, r14
mov byte [rsp + 0xc0], 0
mov byte [rsp + 0xc1], 0
mov byte [rsp + 0xc2], 0
mov byte [rsp + 0xc3], 0
mov byte [rsp + 0xc4], 0
mov byte [rsp + 0xc5], 0
mov byte [rsp + 0xc6], 0
mov byte [rsp + 0xc7], 0
mov qword [rsp + 0xc0], r15
call rax
sub r12d, 1
jne 0x140008c15
xor ecx, ecx
call qword [rsi + 0x68]
cmp byte [r13 + 6], 0
jne 0x140009090
cmp byte [r13 + 7], 0
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x48], rcx
jne 0x140008d2c
mov r12d, dword [rbx + 0x14]
lea r15, [rsp + 0xf0]
mov qword [rsp + 0xb0], 0
mov r14, 0xfffffffffc130e60
lea r13, [rsp + 0xc0]
add r12, rax
jmp 0x140008d15
mov rax, qword [rsi + 0x50]
mov rdx, r13
xor ecx, ecx
mov byte [rsp + 0xc0], 0
mov byte [rsp + 0xc1], 0
mov byte [rsp + 0xc2], 0
mov byte [rsp + 0xc3], 0
mov byte [rsp + 0xc4], 0
mov byte [rsp + 0xc5], 0
mov byte [rsp + 0xc6], 0
mov byte [rsp + 0xc7], 0
test byte [rdi + rax*8], ah
add byte [rax], al
add byte [rax], al
mov qword [rsp + 0xc0], r14
call rax
mov r8, qword [rsp + 0x48]
mov r9, r15
mov rdx, r12
mov rcx, rsi
call fcn.1400076b0
test eax, eax
jle 0x140008cc2
mov edx, dword [rbx + 0xc4]
mov r8, rbx
mov rcx, rbp
mov qword [rsp + 0xc8], rsi
call fcn.140006d10
mov edx, dword [rbx + 0x70]
mov qword [rsp + 0xd0], rax
call fcn.140006d10
mov edx, dword [rbx + 0x5c]
mov rcx, rdi
mov qword [rsp + 0xd8], rax
call fcn.140006d10
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xc0], rax
rol byte [rax], 0
add byte [rax - 0x75], cl
xchg byte [rax - 0x75000000], dh
nop
mov al, 0
add byte [rax], al
mov ecx, dword [rax + 0x78]
call qword [rsi + 0xb8]
xor ecx, ecx
mov r8d, 0x104
mov rbp, rax
mov rdx, rax
call qword [rsi + 0xa8]
mov rdx, rsi
mov rcx, rbp
mov dword [rsp + 0x80], 0
lea r9, [rsp + 0x80]
lea r8, [rsp + 0x98]
invalid