Function at 0x1403ac354
Capabilities:
Encrypt data using speck

Disassembly:
push r15
cmp dil, 0xc0
stc
push r14
cmp sil, bpl
push r13
push r12
push rsi
clc
xor esi, eax
push rdi
clc
push rbp
push rbx
sub rsp, 0xa88
mov rsi, rcx
bt bp, r15w
rcr di, 0xe1
mov qword [rsp + 0x40], 0
test r10w, 0x4a0e
shr bpl, 0x94
movabs rbp, 0xe78235ad970d2b55
movsx rdi, r12w
movabs rdi, 0x6cbb02d0d49b29be
cmc
cmp dl, 1
mov qword [rsp + 0x128], r8
jmp 0x1403ac3bb
mov dword [rsp + 0x4c], r9d
jmp 0x1403ac3c5
jne 0x1403ac4a6
movabs rax, 0xe7f735c197612b70
cmovbe rcx, r9
xchg ch, ch
jmp 0x1403ac3e0
mov qword [rsp + 0x130], rax
not al
mov rax, rdi
movzx cx, dil
movsx ecx, si
mov qword [rsp + 0x138], rax
mov rcx, rbp
jmp 0x1403ac405
mov qword [rsp + 0x280], rcx
jmp 0x1403ac412
mov qword [rsp + 0x288], rax
movsxd rax, r10d
movsx ax, spl
not eax
lea rax, [rsp + 0x280]
movaps xmm0, xmmword [rsp + 0x130]
xorps xmm0, xmmword [rax]
movaps xmmword [rsp + 0x130], xmm0
movzx r8, r9w
lea rcx, [rsp + 0x200]
movsx r9, r13w
xchg r9b, dl
lea r8, [rsp + 0x130]
cdq
xchg r9b, dl
mov edx, 0x40
movsx r9, ax
setl r9b
cmovl r9, r13
mov r9, rsi
call fcn.1403ad194
mov ecx, 0x13ff
shrd r8, rsi, 8
rcl r8b, 0xb7
shld r8w, sp, 0x20
sub edx, edx
movsx r8w, cl
seto r8b
not r8d
mov r8d, esi
jmp 0x1403ac4a1
jmp 0x1403ac7af
mov ebx, edx
movsxd rax, r15d
not ah
movabs rax, 0xe7ee358897752b65
mov qword [rsp + 0x130], rax
movabs rax, 0x6cbb02d0d4c329d2
jmp 0x1403ac4ce
mov qword [rsp + 0x138], rax
movzx rax, dx
cwde
jmp 0x1403ac4e0
mov rax, rbp
mov qword [rsp + 0x280], rax
movsx ax, r12b
mov rax, rdi
mov qword [rsp + 0x288], rax
lea rax, [rsp + 0x280]
jmp 0x1403ac508
movaps xmm0, xmmword [rsp + 0x130]
jmp 0x1403ac515
xorps xmm0, xmmword [rax]
movaps xmmword [rsp + 0x130], xmm0
mov dl, 0xce
cqo
lea rcx, [rsp + 0x200]
movzx r8, r10w
not r8b
movsx r9w, bl
lea r8, [rsp + 0x130]
xchg r9b, dl
movzx dx, ch
mov r9, 0x198700ca
mov edx, 0x40
jmp 0x1403ac558
mov r9, rsi
jmp 0x1403ac560
call fcn.1403ad194
test bl, bl
je 0x1403ac70f
movzx eax, bl
test r14d, edi
cmc
cmp eax, 2
jmp 0x1403ac57c
jne 0x1403ac71c
movabs r14, 0xcbf29ce484222325
cmovae ecx, r14d
movsx ecx, r11w
mov ecx, esi
jmp 0x1403ac59b
call sub.ntdll.dll_RtlNtStatusToDosError
mov r8d, eax
mov rax, qword gs:[0x30]
bsf r11w, r10w
neg cl
mov rax, qword [rax + 0x60]
cmova rcx, r13
bsf dx, di
movsx r15d, bp
mov r11, qword [rax + 0x18]
mov r15b, 0x4e
bsf r15d, eax
add r11, 0x10
xchg ch, dh
cwd
movzx cx, r13b
movabs rdx, 0x2cc10c8855a9a8cd
xchg cl, r15b
not cx
movabs r15, 0x1d12a89b9e723ff5
movsx rcx, r10w
mov ecx, 0x1bff
jmp 0x1403ac611
cmp rax, rdx
jmp 0x1403ac60b
je 0x1403ac741
mov r11, qword [r11]
mov r10, qword [r11 + 0x30]
test r10w, 0x443e
cmp r8w, 0x5bed
test r10, r10
je 0x1403ac787
mov r12, qword [r11 + 0x60]
inc ebx
ror bh, cl
sar bh, 0x66
mov rbx, 0xffffffffffffffff
nop word cs:[rax + rax]
cmp word [r12 + rbx*2 + 2], 0
lea rbx, [rbx + 1]
jmp 0x1403ac65b
jne 0x1403ac64b
mov rax, r14
test r13b, 0xa7
clc
test rbx, rbx
jmp 0x1403ac671
je 0x1403ac603
sub esi, esi
sal al, cl
sub r9b, 0x24
mov rbp, r14
nop word [rax + rax]
shld edi, edx, 0xa9
movzx eax, word [r12 + rsi*2]
movsx r13d, r8w
btc r9, 0x4b
lea edi, [rax - 0x41]
lea r13d, [rax - 0x410]
or r9b, r11b
add r9, 0x4e021484
lea r9d, [rax + 0x20]
jmp 0x1403ac6b7
cmp r13w, 0x20
jmp 0x1403ac6c1
cmovb eax, r9d
cmp di, 0x1a
cmovb eax, r9d
movzx eax, ax
xor rax, rbp
shl rbp, 0xae
movzx rbp, r11w
imul rax, r15
jmp 0x1403ac6e8
inc esi
mov rbp, rax
jmp 0x1403ac6fc
cmp rsi, rbx
jmp 0x1403ac704
jb 0x1403ac68c
jmp 0x1403ac603
sub r13d, r13d
jmp 0x1403ac717
jmp 0x1403ac7f8
cmp bl, 3
bswap r8
movzx ecx, r12w
cmovle rcx, rcx
movzx r8d, si
cmovne r8d, esi
mov ecx, 0x13ff
jmp 0x1403ac73c
jmp 0x1403ac7a5
test r11, r11
movzx dx, al
mov dx, ax
cmovge di, r12w
cmove r10, r11
mov rdx, r10
not bpl
bswap bp
movzx rbp, bx
movabs rbp, 0xe78235ad970d2b55
mov dil, 0x4e
movsx di, r10b
movabs rdi, 0x6cbb02d0d49b29be
jmp 0x1403ac782
jmp 0x1403ac7af
movabs rbp, 0xe78235ad970d2b55
rcr dil, cl
movabs rdi, 0x6cbb02d0d49b29be
xadd ah, al
shr ax, 0xf5
sub edx, edx
neg ax
cmovnp ax, r11w
lea rax, [rsp + 0x40]
test r13b, 0x75
mov qword [rsp + 0x20], rax
cmp ch, 0x86
mov qword [rsp + 0x30], 0
jmp 0x1403ac7ce
mov dword [rsp + 0x28], 0
jmp 0x1403ac7de
sub r9d, r9d
jmp 0x1403ac7e6
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov r13, qword [rsp + 0x40]
mov r8, 0x7bc600b8
lea rcx, [rsp + 0x280]
mov r8d, 0x800
test dx, ax
xor edx, edx
jmp 0x1403ac810
call fcn.1404a0a6a
movabs rax, 0xe7ed35df977f2b10
movsx bx, sil
mov qword [rsp + 0x50], rax
movabs rax, 0x6c9e02f0d4a129cc
movzx si, r11b
mov qword [rsp + 0x58], rax
cwde
mov bh, 0xe3
movabs rax, 0xbb83b115fb5723ec
sete bl
movsxd r15, r10d
mov bh, 0xe
mov qword [rsp + 0x60], rax
movsx esi, r12w
movabs rax, 0xd2ef72cb161baac
movsx bx, r15b
sets r15b
mov qword [rsp + 0x68], rax
movabs rax, 0x23396ef01c4484dc
bswap r14d
movzx si, sil
mov qword [rsp + 0x70], rax
cbw
movzx rax, bp
movabs rax, 0x17711b7cc255afae
mov si, r15w
bswap r15
movsx r15, r8w
mov qword [rsp + 0x78], rax
movabs rax, 0x314846d9144fae6f
movsx rbx, sp
bswap r12w
mov qword [rsp + 0x80], rax
bswap ebx
not bh
movabs rax, 0x178dd9cfd41ab93e
jmp 0x1403ac8dc
mov qword [rsp + 0x88], rax
movzx r14, cx
jmp 0x1403ac8f0
movabs rax, 0xafe3d510c4170ff7
movsx r15d, r12w
mov qword [rsp + 0x90], rax
cmovns r12, r12
lahf
movabs rax, 0xf2b1d93b98f8762c
movzx r15, sp
mov qword [rsp + 0x98], rax
mov r15b, 0xb7
movzx r14d, si
cmovb r12d, r15d
movabs rax, 0x9086a47a193ab849
not esi
mov qword [rsp + 0xa0], rax
movzx bx, r10b
cmovne r12d, edi
movabs rax, 0xf9f44acd0c6a853c
mov r14b, 6
bswap bx
not r12b
mov qword [rsp + 0xa8], rax
mov ah, 0xe3
movabs rax, 0x46ec87c61fbaad11
cmovle r14, rsp
mov qword [rsp + 0xb0], rax
xchg r15, r12
movabs rax, 0x5102c52d8dbf581e
mov qword [rsp + 0xb8], rax
mov r15b, sil
cdqe
setp sil
movabs rax, 0x9f52a16fed4b976f
mov qword [rsp + 0xc0], rax
not r12
movzx r12w, r8b
cwde
movabs rax, 0xf6a5483bf0ec9ca3
setae sil
movzx si, r11b
movsx ebx, ax
mov qword [rsp + 0xc8], rax
mov r14w, 0x5608
movabs rax, 0x60e699bcbdc17680
movzx r14d, r12w
movsx r15d, di
mov qword [rsp + 0xd0], rax
jmp 0x1403ac9ff
movabs rax, 0xbd6f0372efe2893d
movzx r14d, ax
mov qword [rsp + 0xd8], rax
movabs rax, 0x98880c705ee3d44a
cmovbe r14, r10
movzx r14w, spl
mov bl, dh
mov qword [rsp + 0xe0], rax
movsx r14w, bl
movsx r15d, r11w
movabs rax, 0x9b7661660ff4953f
xchg r15b, r12b
mov qword [rsp + 0xe8], rax
movsx r12w, bpl
not rax
movsxd rbx, r9d
movabs rax, 0x53d62999d3e90ae0
mov ebx, edx
movzx si, r9b
mov qword [rsp + 0xf0], rax
movabs rax, 0xc69b1bd14864426
mov qword [rsp + 0xf8], rax
cdqe
cmovns r14d, ebx
movzx r12, r9w
movabs rax, 0x56abc9090122ed13
mov qword [rsp + 0x100], rax
movsx r15w, r8b
movzx r12w, sil
mov r15b, 0x99
movabs rax, 0xf54db3f725dd577b
setns r14b
jmp 0x1403acac2
mov qword [rsp + 0x108], rax
movabs rax, 0x12e9428a7f611679
not esi
movzx r14, r11w
movsx r14, r11w
mov qword [rsp + 0x110], rax
movsx bx, ah
movabs rax, 0x187f5c28d0b2d517
mov r15w, di
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x130], rbp
movsxd rsi, esp
mov qword [rsp + 0x138], rdi
movsxd rsi, r14d
movabs rbx, 0xbbeab153fb5d239f
mov r14b, al
movsx ax, dl
movsxd rax, ecx
mov qword [rsp + 0x140], rbx
bswap r15w
lahf
seta r14b
movabs rsi, 0xd0ef716b104bac0
xchg r15b, r14b
bswap r12
mov qword [rsp + 0x148], rsi
mov r12w, 0x1c53
movabs r14, 0x230f6ec11c7484f9
cbw
xchg r12w, r15w
cdqe
mov qword [rsp + 0x150], r14
cbw
lahf
bswap r15
movabs r15, 0x177b1b24c239afc2
not r12d
setp ah
cmovl r12d, r11d
mov qword [rsp + 0x158], r15
mov ax, 0x4092
movsx eax, r10w
movabs rax, 0x312d46b71426ae23
mov qword [rsp + 0x160], rax
not r12
bswap ax
movabs rax, 0x17e9d9ead43ab904
movzx r12d, r8w
mov qword [rsp + 0x168], rax
not ah
movzx r12d, r10w
movabs rax, 0xaf90d535c41d0ffd
movzx r12w, sil
movsx r12, ax
mov qword [rsp + 0x170], rax
movzx r12, ax
movabs rax, 0xf2ded97898f27626
not r12
jmp 0x1403acc01
mov qword [rsp + 0x178], rax
movsx r12w, r15b
movabs rax, 0x90e5a41b194eb827
mov r12b, 0xec
setb r12b
mov qword [rsp + 0x180], rax
mov al, r15b
lahf
movabs rax, 0xf9814abe0c4a8548
jmp 0x1403acc3a
mov qword [rsp + 0x188], rax
movsx ax, ah
cmovb eax, esi
movabs rax, 0x469e87a91fcaad61
mov qword [rsp + 0x190], rax
lahf
jmp 0x1403acc64
movabs rax, 0x516cc54c8d9f586a
movsx r12w, dl
setno r12b
cmovge r12w, bp
mov qword [rsp + 0x198], rax
jmp 0x1403acc92
movabs rax, 0x9f20a11fed6b970b
jmp 0x1403acca8
mov qword [rsp + 0x1a0], rax
cwde
movsx eax, bp
movabs rax, 0xf6c14852f09a9ccc
setbe r12b
mov qword [rsp + 0x1a8], rax
movsx r12, dx
cbw
movabs rax, 0x60c699ddbde176e5
not r12
movzx r12w, r14b
mov qword [rsp + 0x1b0], rax
movzx eax, bx
movsx ax, bpl
xchg al, r12b
movabs rax, 0xbd0a0300ef81894e
mov r12b, 0x5c
movsxd r12, edx
cmovp r12, r15
mov qword [rsp + 0x1b8], rax
cmovnp r12, rsp
movzx ax, bl
movabs rax, 0x98e00c035e8dd42f
mov qword [rsp + 0x1c0], rax
movsxd r12, r11d
movsx ax, r13b
cwde
movabs rax, 0x9b0161460f809550
movsx r12d, bp
movzx r12, r15w
mov qword [rsp + 0x1c8], rax
cbw
movabs rax, 0x53f629f1d39d0a89
movsx r12d, si
mov qword [rsp + 0x1d0], rax
movsx ax, r9b
movabs rax, 0xc1ab1d414ee4452
movzx r12w, r8b
mov qword [rsp + 0x1d8], rax
movabs rax, 0x56cdc967014bed33
mov qword [rsp + 0x1e0], rax
movabs rax, 0xf52cb39a25af5714
movsx r12d, r14w
setg r12b
mov qword [rsp + 0x1e8], rax
cbw
movabs rax, 0x128742e57f08160d
movzx r12, dx
mov r12b, r10b
mov qword [rsp + 0x1f0], rax
movzx r12d, si
movzx r12, r13w
movabs rax, 0x187f5c28d0b2d536
movzx r12d, bx
cmovb r12d, esp
movzx r12w, r11b
mov qword [rsp + 0x1f8], rax
lea r12, [rsp + 0x130]
mov rax, r12
movaps xmm0, xmmword [rsp + 0x50]
jmp 0x1403ace05
xorps xmm0, xmmword [rax]
movaps xmmword [rsp + 0x50], xmm0
jmp 0x1403ace12
movaps xmm0, xmmword [rsp + 0x60]
xorps xmm0, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm0
jmp 0x1403ace25
movaps xmm0, xmmword [rsp + 0x70]
jmp 0x1403ace2f
xorps xmm0, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x70], xmm0
jmp 0x1403ace3d
movaps xmm0, xmmword [rsp + 0x80]
jmp 0x1403ace4a
xorps xmm0, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x80], xmm0
movaps xmm0, xmmword [rsp + 0x90]
jmp 0x1403ace63
xorps xmm0, xmmword [rax + 0x40]
movaps xmmword [rsp + 0x90], xmm0
jmp 0x1403ace74
movaps xmm0, xmmword [rsp + 0xa0]
jmp 0x1403ace81
xorps xmm0, xmmword [rax + 0x50]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
xorps xmm0, xmmword [rax + 0x60]
movaps xmmword [rsp + 0xb0], xmm0
jmp 0x1403acea6
movaps xmm0, xmmword [rsp + 0xc0]
jmp 0x1403aceb3
xorps xmm0, xmmword [rax + 0x70]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rsp + 0xd0]
jmp 0x1403acecc
xorps xmm0, xmmword [rax + 0x80]
movaps xmmword [rsp + 0xd0], xmm0
jmp 0x1403acee0
movaps xmm0, xmmword [rsp + 0xe0]
jmp 0x1403aceed
xorps xmm0, xmmword [rax + 0x90]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rsp + 0xf0]
jmp 0x1403acf09
xorps xmm0, xmmword [rax + 0xa0]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rsp + 0x100]
jmp 0x1403acf25
xorps xmm0, xmmword [rax + 0xb0]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rsp + 0x110]
xorps xmm0, xmmword [rax + 0xc0]
movaps xmmword [rsp + 0x110], xmm0
cwd
not r8
mov qword [rsp + 0x30], r13
movsx r9w, r14b
movzx r9, cx
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x28], eax
cwd
xchg dx, dx
bswap eax
mov rax, qword [rsp + 0x128]
cwd
movzx r8w, dl
movsxd r8, r11d
mov qword [rsp + 0x20], rax
jmp 0x1403acf89
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x200]
cmovno rdx, rbp
cwd
cdq
mov edx, 0x400
movsx r13d, r8w
movsxd r13, r11d
xchg r13d, r13d
lea r13, [rsp + 0x280]
movzx cx, r13b
jmp 0x1403acfc2
mov rcx, r13
jmp 0x1403acfca
call fcn.1403ad194
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
movabs rax, 0xe7e335d9976c2b13
mov qword [rsp + 0x50], rax
mov ax, cx
cdqe
mov eax, 0x5bb63db4
movabs rax, 0x6cc902b5d4bb29d2
jmp 0x1403ad002
mov qword [rsp + 0x58], rax
movabs rax, 0xbbcab121fb3223ed
mov qword [rsp + 0x60], rax
movsx rax, bx
movabs rax, 0xd7bf775b167baaf
jmp 0x1403ad029
mov qword [rsp + 0x68], rax
movabs rax, 0x236b6ea41c06848b
jmp 0x1403ad03d
mov qword [rsp + 0x70], rax
movsx ax, dil
cwde
mov al, dil
movabs rax, 0x177b1b24c239afe3
jmp 0x1403ad05a
mov qword [rsp + 0x78], rax
jmp 0x1403ad064
mov qword [rsp + 0x130], rbp
jmp 0x1403ad071
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x140], rbx
jmp 0x1403ad086
mov qword [rsp + 0x148], rsi
mov qword [rsp + 0x150], r14
jmp 0x1403ad09b
mov qword [rsp + 0x158], r15
jmp 0x1403ad0a8
movaps xmm0, xmmword [rsp + 0x50]
jmp 0x1403ad0b2
xorps xmm0, xmmword [r12]
movaps xmmword [rsp + 0x50], xmm0
jmp 0x1403ad0c1
movaps xmm0, xmmword [rsp + 0x60]
jmp 0x1403ad0cb
xorps xmm0, xmmword [r12 + 0x10]
movaps xmmword [rsp + 0x60], xmm0
jmp 0x1403ad0db
movaps xmm0, xmmword [rsp + 0x70]
jmp 0x1403ad0e5
xorps xmm0, xmmword [r12 + 0x20]
movaps xmmword [rsp + 0x70], xmm0
inc r9w
lea r8, [rsp + 0x50]
cmp spl, 0x17
sbb r9w, 0x3bba
shl rdx, 0x8b
xor ecx, ecx
mov r9w, 0x331c
mov rdx, r13
mov r9d, 0x10
jmp 0x1403ad11c
call qword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [0x1400dd058]
movsx r10d, bx
adc r10b, 0x85
shld r10w, r15w, 0x5d
mov r10, 0xffffffffffffffff
cmp r8, rdi
xor edx, edx
jmp 0x1403ad147
syscall
add rsp, 0xa88
setl r13b
movsx r13, r13w
movsx r15w, sil
pop rbx
movsx r15w, r9b
movzx r15w, dil
movsxd r14, edi
pop rbp
mov r15w, 0xb5d
not sil
pop rdi
pop rsi
movsx r13d, r11w
mov r12b, r9b
pop r12
cmove r15w, ax
movzx r14d, si
jmp 0x1403ad18d
pop r13
pop r14
pop r15
ret