Function at 0x180042dd0
Capabilities:
Encrypt data using speck

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x220]
sub rsp, 0x320
mov rax, qword [0x180070310]
xor rax, rsp
mov qword [rbp + 0x210], rax
mov rbx, qword [rbp - 0x48]
mov eax, r8d
mov r10, rdx
mov qword [rsp + 0x68], rdx
mov dword [rbp - 0x78], eax
mov r8, rcx
mov qword [rbp - 0x20], rcx
lea edx, [rax + 0xd]
mov dword [rsp + 0x60], edx
cmp eax, edx
jae case.0x180042e6d.86
movzx edi, byte [rbp - 0x80]
xor r12d, r12d
mov r13, qword [rbp - 0x70]
mov r14d, dword [rbp - 0x74]
mov r15, qword [rsp + 0x78]
mov dword [rsp + 0x70], edi
mov qword [rbp - 0x68], rbx
add eax, 0xffffffb0
lea r11, [0x180000000]
movabs r9, 0x9e3779b185ebca87
mov esi, 0x4f
cmp eax, 0x12
ja case.0x180042e6d.87
mov ecx, dword [r11 + rax*4 + 0x4377c]
add rcx, r11
jmp rcx
mov qword [rsp + 0x38], r12
xor r9d, r9d
mov qword [rsp + 0x30], r12
xor r8d, r8d
mov qword [rsp + 0x28], r12
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], 0x9a
call fcn.18004bdc0
cmp rax, 2
je 0x18004374e
mov r8d, r14d
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0x50]
call qword [sym.imp.dbghelp.dll_SymUnDName64]
mov edx, dword [rsp + 0x60]
mov eax, dword [rbp - 0x78]
inc eax
mov dword [rbp - 0x78], eax
cmp eax, edx
jae case.0x180042e6d.86
mov r10, qword [rsp + 0x68]
mov edi, dword [rsp + 0x70]
mov r8, qword [rbp - 0x20]
jmp 0x180042e44
xor r8d, r8d
xor edx, edx
mov ecx, 0x127
call fcn.180027780
test al, al
jne 0x1800431f2
mov r14d, 0xd5
mov dword [rbp - 0x7c], r14d
nop word [rax + rax]
cmp r14d, 0xd5
je 0x1800431cb
cmp r14d, 0x1ec9
je 0x1800431a3
cmp r14d, 0x3cbd
je 0x180042f35
cmp r14d, 0x5ab1
je case.0x180042e6d.86
jmp 0x1800431da
mov rcx, qword [rbp - 0x40]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.dbghelp.dll_SymInitialize]
test eax, eax
movzx edi, dil
cmove edi, r12d
mov dword [rsp + 0x70], edi
test dil, dil
je 0x1800431da
mov ebx, dword [rbp - 0x60]
lea r13, [0x180000000]
mov esi, 0x17
mov edi, r12d
mov r12, qword [rbp - 0x40]
lea r14d, [rsi + 0x5d]
lea r15d, [rsi + 0x23]
nop dword [rax]
cmp edi, 0x16
ja case.default.0x180042f96
mov eax, edi
mov ecx, dword [r13 + rax*4 + 0x437c8]
add rcx, r13
jmp rcx
mov eax, 0x72
mov word [rbp + 0xe7], ax
jmp case.default.0x180042f96
mov eax, 0x53
mov dword [rbp + 0xd8], 0x434d57
mov word [rbp + 0xdb], ax
mov eax, 0x6d74
mov word [rbp + 0xdc], ax
jmp case.default.0x180042f96
mov r8d, 3
mov byte [rbp + 0xc3], 0
lea rdx, [0x1800699ce]
lea rcx, [rbp + 0xc3]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [rbp + 0xc6], 0
jmp case.default.0x180042f96
mov word [rbp + 0xe8], r15w
mov word [rbp + 0xe9], r15w
jmp case.default.0x180042f96
mov rcx, r12
call qword [sym.imp.dbghelp.dll_SymCleanup]
jmp case.default.0x180042f96
lea r9, [rbp + 0x70]
mov dword [rsp + 0x20], ebx
lea r8, [rbp + 0xc0]
mov rcx, r12
lea rdx, [rbp + 0xd8]
call qword [sym.imp.dbghelp.dll_SymGetFileLineOffsets64]
jmp case.default.0x180042f96
mov byte [rbp + 0xd3], 0
jmp case.default.0x180042f96
mov eax, 0x4f
mov word [rbp + 0xed], r14w
mov word [rbp + 0xee], ax
jmp case.default.0x180042f96
mov dword [rbp + 0xea], 0x696177
jmp case.default.0x180042f96
mov dword [rbp + 0xe3], 0x646e48
jmp case.default.0x180042f96
mov eax, dword [0x1800699e3]
mov dword [rbp + 0xc9], eax
movzx eax, byte [0x1800699e7]
mov byte [rbp + 0xcd], al
mov byte [rbp + 0xce], 0
jmp case.default.0x180042f96
mov eax, 0x6150
mov byte [rbp + 0xc9], 0
mov word [rbp + 0xc7], ax
jmp case.default.0x180042f96
mov eax, 0x28
mov word [rbp + 0xf3], ax
mov eax, 0x29
mov word [rbp + 0xf4], ax
jmp case.default.0x180042f96
mov eax, 0x6552
mov byte [rbp + 0xc2], 0x73
mov word [rbp + 0xc0], ax
jmp case.default.0x180042f96
mov byte [rbp + 0xd3], 0x73
jmp case.default.0x180042f96
mov eax, 0x6e75
mov word [rbp + 0xf1], ax
jmp case.default.0x180042f96
mov byte [rbp + 0xce], 0x79
mov dword [rbp + 0xcf], 0x656d6954
jmp case.default.0x180042f96
mov eax, 0x6e
mov word [rbp + 0xef], ax
mov eax, 0x52
mov word [rbp + 0xf0], ax
jmp case.default.0x180042f96
mov eax, 0x6c
mov word [rbp + 0xe6], ax
jmp case.default.0x180042f96
mov word [rbp + 0xc6], 0x65
jmp case.default.0x180042f96
mov byte [rbp + 0xd4], 0
jmp case.default.0x180042f96
mov word [rbp + 0xde], r14w
mov dword [rbp + 0xdf], 0x70657453
jmp case.default.0x180042f96
mov ebx, 0xa
inc edi
sub rsi, 1
jne 0x180042f80
mov r14d, dword [rbp - 0x7c]
xor r12d, r12d
mov r15, qword [rsp + 0x78]
mov r13, qword [rbp - 0x70]
mov edi, dword [rsp + 0x70]
mov dword [rbp - 0x60], ebx
lea esi, [r12 + 0x4f]
mov rbx, qword [rbp - 0x68]
jmp 0x1800431da
mov rcx, qword [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x38], r12
mov r8d, esi
mov qword [rsp + 0x30], r12
xor edx, edx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.18004c2a0
jmp 0x1800431da
mov dil, 1
mov qword [rbp - 0x40], 0xffffffffffffffff
mov dword [rsp + 0x70], edi
add r14d, 0x1df4
mov dword [rbp - 0x7c], r14d
cmp r14d, 0x77d0
jbe 0x180042f00
mov r14d, 0x104
jmp 0x180042eb3
lea r13, [r10 + 0x28]
mov qword [rbp - 0x70], r13
jmp case.0x180042e6d.87
mov rax, r15
shr rax, 0x1d
xor r15, rax
movabs rax, 0x165667b19e3779f9
imul r15, rax
mov rax, r15
shr rax, 0x20
xor r15, rax
mov qword [rsp + 0x78], r15
jmp case.0x180042e6d.87
mov rax, r15
shr rax, 0x21
xor r15, rax
movabs rax, 0xc2b2ae3d27d4eb4f
imul r15, rax
mov qword [rsp + 0x78], r15
jmp case.0x180042e6d.87
mov rsi, qword [rbp - 0x38]
lea rax, [r13 + 8]
cmp rax, rsi
ja 0x18004334c
mov rbx, qword [rbp - 0x10]
nop dword [rax]
mov edi, 0xbb
movabs rsi, 0x7a1435883d4d519d
nop
mov eax, edi
sub eax, 0xbb
je 0x1800432ad
sub eax, 1
je 0x18004329d
cmp eax, 1
jne 0x18004331c
add r13, 8
jmp 0x18004331c
xor r15, rbx
rol r15, 0x1b
imul r15, r9
sub r15, rsi
jmp 0x18004331c
mov eax, dword [r8]
lea rcx, [rbp - 0x58]
mov r8, r13
mov dword [rbp - 0x58], eax
mov edx, 0x3b
call fcn.180058910
mov qword [rsp + 0x58], r12
lea r8, [rbp - 0x18]
mov qword [rsp + 0x50], r12
xor r9d, r9d
mov qword [rsp + 0x48], r12
xor edx, edx
mov qword [rsp + 0x40], r12
xor ecx, ecx
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x68
mov qword [rsp + 0x20], r12
mov qword [rbp + 0x48], r12
call fcn.180029e90
mov r8, qword [rbp - 0x20]
mov rbx, rax
movabs r9, 0x9e3779b185ebca87
inc edi
cmp edi, 0xbe
jb 0x180043280
mov rsi, qword [rbp - 0x38]
lea rax, [r13 + 8]
mov qword [rbp - 0x10], rbx
mov qword [rbp - 0x70], r13
mov qword [rsp + 0x78], r15
cmp rax, rsi
jbe 0x180043270
mov rbx, qword [rbp - 0x68]
lea rax, [r13 + 4]
mov rdi, r15
mov rdx, r13
cmp rax, rsi
ja 0x1800433b0
mov eax, dword [r8]
lea rcx, [rbp - 0x50]
add r13, 4
mov dword [rbp - 0x50], eax
mov r8d, 0x96
mov qword [rbp - 0x70], r13
call fcn.180045d60
mov r15d, eax
movabs r9, 0x9e3779b185ebca87
imul r15, r9
movabs rax, 0xc2b2ae3d27d4eb4f
xor r15, rdi
rol r15, 0x17
imul r15, rax
movabs rax, 0x165667b19e3779f9
add r15, rax
mov qword [rsp + 0x78], r15
cmp r13, rsi
jae 0x180042eb3
movabs rbx, 0x27d4eb2f165667c5
nop dword [rax]
nop word [rax + rax]
mov ecx, 0x95
mov eax, ecx
sub eax, 0x94
je 0x1800433f1
cmp eax, 1
jne 0x1800433fc
movzx eax, byte [r13]
imul rax, rbx
xor r15, rax
jmp 0x1800433fc
rol r15, 0xb
imul r15, r9
inc r13
dec ecx
cmp ecx, 0x93
ja 0x1800433d5
mov qword [rbp - 0x70], r13
mov qword [rsp + 0x78], r15
cmp r13, rsi
jb 0x1800433d0
mov rbx, qword [rbp - 0x68]
jmp 0x180042eb3
mov ecx, dword [r10 + 0x48]
mov rax, qword [r10]
add rcx, 0x28
add rcx, r10
mov qword [rbp - 0x38], rcx
cmp rax, 0x20
jb 0x18004355a
mov rbx, qword [rbp + 0x40]
mov edi, 0xf
mov eax, edi
sub eax, 0xf
je 0x180043527
sub eax, 1
je 0x180043515
sub eax, 1
je 0x1800434c0
cmp eax, 1
jne 0x180043533
mov rax, qword [rbp - 0x30]
lea r9, [rbp - 8]
xor r8d, r8d
mov qword [rbp - 8], rbx
lea rdx, [rbp]
mov qword [rbp], r15
mov qword [rbp + 8], rax
mov qword [rsp + 0x20], r12
lea ecx, [r8 + 0x67]
call fcn.1800469e0
xor r8d, r8d
mov qword [rbp + 0x10], rax
mov rax, qword [rbp - 0x28]
lea r9, [rbp + 8]
lea rdx, [rbp + 0x10]
mov qword [rbp + 0x18], rax
mov qword [rsp + 0x20], r12
lea ecx, [r8 + 0x67]
call fcn.1800469e0
mov qword [rbp + 0x20], rax
lea r9, [rbp + 0x18]
lea rdx, [rbp + 0x20]
jmp 0x1800434fa
mov rsi, qword [rbp + 0x38]
lea r9, [rbp + 0x28]
mov rcx, qword [rbp - 0x28]
lea rdx, [rbp + 0x30]
mov rax, qword [rbp - 0x30]
rol rax, 0xc
rol rcx, 0x12
add rcx, rax
mov qword [rbp + 0x28], rsi
mov rax, rbx
rol rax, 7
add rcx, rax
mov rax, rsi
rol rax, 1
add rcx, rax
mov qword [rbp + 0x30], rcx
xor r8d, r8d
mov qword [rsp + 0x20], r12
lea ecx, [r8 + 0x67]
call fcn.1800469e0
mov r10, qword [rsp + 0x68]
mov r15, rax
jmp 0x180043533
mov rax, qword [r10 + 0x18]
mov qword [rbp - 0x30], rax
mov rax, qword [r10 + 0x20]
mov qword [rbp - 0x28], rax
jmp 0x180043533
mov rax, qword [r10 + 8]
mov rbx, qword [r10 + 0x10]
mov qword [rbp + 0x38], rax
inc edi
cmp edi, 0x13
jb 0x180043442
mov rax, qword [r10]
mov edx, dword [rsp + 0x60]
add r15, rax
mov qword [rbp + 0x40], rbx
mov rbx, qword [rbp - 0x68]
mov qword [rsp + 0x78], r15
jmp case.0x180042e6d.87
mov r15, qword [r10 + 0x18]
movabs rcx, 0x27d4eb2f165667c5
add r15, rcx
add r15, rax
mov qword [rsp + 0x78], r15
jmp case.0x180042e6d.87
mov r8, r10
mov edx, 0x11e
xor ecx, ecx
call fcn.18001d470
xor r9d, r9d
test al, al
je 0x1800435b6
mov rcx, qword [rsp + 0x68]
mov r8d, esi
mov qword [rsp + 0x38], r12
xor edx, edx
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.18004c2a0
jmp 0x180042eb3
mov rdx, qword [rsp + 0x68]
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x20], 0x43
call fcn.18001f5d0
jmp 0x180042eb3
cmp dword [rbp - 0x74], 1
jne case.0x180042e6d.87
mov esi, 0x12a
mov eax, esi
sub eax, 0x12a
je 0x180043627
cmp eax, 0x1a
jne 0x180043691
xchg dword [r10 + 0x120], r12d
mov rax, rbx
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.1800643d0
mov rbx, qword [rsp + 0x370]
add rsp, 0x320
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edi, 0xfd
nop dword [rax]
mov eax, edi
sub eax, 0xf9
je 0x180043691
sub eax, 1
je 0x180043665
cmp eax, 3
jne 0x180043687
cmp byte [r10 + 0x118], 0
je 0x180043691
lea r9, [r10 + 0x48]
mov qword [rsp + 0x20], r12
xor edx, edx
lea r8d, [rax + 7]
xor ecx, ecx
call fcn.180032b60
jmp 0x180043682
mov rax, qword [SHChangeNotifyDeregister]
lea r8, [rbp - 0x48]
mov edx, 0x25
mov qword [rbp - 0x48], rax
mov rcx, r10
call fcn.18002e830
mov r10, qword [rsp + 0x68]
dec edi
cmp edi, 0xfa
ja 0x180043630
add esi, 0x1a
cmp esi, 0x15e
jb 0x1800435e1
jmp 0x180042eb3
mov rbx, r15
mov qword [rbp - 0x68], rbx
jmp case.0x180042e6d.87
xor eax, eax
lock cmpxchg dword [r10 + 0x11c], r12d
cmp eax, 1
jne case.0x180042e6d.87
mov edi, 0x30
nop word [rax + rax]
cmp edi, 0x30
je 0x1800436e3
cmp edi, 0x1f20
je case.0x180042e6d.86
jmp 0x180043716
mov qword [rsp + 0x38], r12
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov r8d, esi
mov qword [rsp + 0x28], r12
xor edx, edx
mov rcx, r10
mov qword [rsp + 0x20], r12
call fcn.18004c2a0
mov r10, qword [rsp + 0x68]
mov eax, r12d
xchg dword [r10 + 0x11c], eax
add edi, 0x1ef0
cmp edi, 0x3de0
jbe 0x1800436d0
jmp 0x180042eb3
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
lock cmpxchg dword [r10 + 0x120], r12d
mov dword [rbp - 0x74], eax
mov dword [rbp + 0x50], 0x20
jmp case.0x180042e6d.87
mov rcx, qword [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x38], r12
mov r8d, esi
mov qword [rsp + 0x30], r12
xor edx, edx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.18004c2a0
jmp case.0x180042e6d.86