Function at 0x14001d920
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov r10d, dword [0x140042b84]
mov eax, 3
mov edi, dword [0x140042b30]
mov r13b, 0x5d
movzx esi, byte [0x140042b81]
mov r14d, 0x1e
mov r15d, dword [0x140042b60]
xor ebx, ebx
movzx ebp, byte [0x140042b57]
lea edx, [rax + 0x51]
movzx ecx, byte [0x140042b55]
xor r10d, 0x10
mov r11d, dword [0x140042b28]
add edi, 0xffffffd3
mov r8d, dword [0x140042b78]
movzx r9d, byte [0x140042b82]
mov dword [rsp + 0x38], 0x3c
mov byte [rsp + 0xb0], r13b
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x24], r14d
mov dword [rsp + 0x2c], 0x51
mov dword [rsp + 0x3c], eax
nop word [rax + rax]
dec dx
test sil, sil
setne al
or r8d, ebx
add r8d, r10d
sub r9b, al
test r15d, r15d
jne 0x14001d9da
and cl, bpl
and r11d, edi
test dx, dx
jne 0x14001d9c0
movzx r10d, byte [0x140042b65]
movzx edi, byte [0x140042b66]
mov byte [0x140042b55], cl
mov dword [0x140042b78], r8d
lea eax, [r10 + 0x1b]
mov byte [0x140042b82], r9b
lea ecx, [rax + rax*2]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea eax, [rdx + rdx*2]
mov edx, dword [0x140042b40]
add eax, eax
sub ecx, eax
je 0x14001da65
sub ecx, 1
je 0x14001da5b
sub ecx, 1
je 0x14001da65
cmp ecx, 1
je 0x14001da4c
movzx ecx, dil
mov eax, ebx
shl al, cl
and al, dl
dec dword [0x140042a8c]
mov byte [0x140042b81], al
jmp 0x14001da65
movsx eax, dil
add eax, 0x2b
mov dword [0x140042a88], eax
jmp 0x14001da65
lea eax, [r8 - 1]
and dword [0x140042b3c], eax
cmp dword [0x140042b68], 0xffffffb5
mov eax, ebx
movsx esi, byte [0x140042b67]
sete al
mov r12d, esi
add edx, eax
mov eax, 0x38e38e39
mov dword [0x140042b40], edx
lea ecx, [rsi*2 + 0x46]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
sub ecx, eax
movsx edx, cx
mov ecx, dword [0x140042b7c]
test edx, edx
je 0x14001db0c
sub edx, 1
je 0x14001daee
sub edx, 1
je 0x14001dae2
cmp edx, 1
je 0x14001dacc
movzx eax, byte [0x140042b4c]
xor al, 1
add byte [0x140042a63], al
jmp 0x14001db1a
movzx r13d, byte [0x140042b84]
add r13b, 5
mov byte [rsp + 0xb0], r13b
jmp 0x14001db1a
movzx eax, r9b
mov dword [0x140042a88], eax
jmp 0x14001db1a
movzx eax, byte [0x140042a87]
mov dword [rsp + 0x38], eax
mov eax, 0xfffffff0
sub al, cl
add dil, al
mov byte [0x140042b66], dil
jmp 0x14001db1a
xor r9b, sil
xor r9b, 0x11
mov byte [0x140042b82], r9b
movzx r15d, byte [0x140042a86]
cmp ecx, r14d
mov eax, ebx
mov ecx, ebx
setne al
cmp eax, 3
movsx eax, byte [0x140042b64]
seta cl
cmp eax, ecx
je 0x14001db4d
mov edx, ebx
test r15b, r15b
setne dl
mov dword [0x140042b34], edx
jmp 0x14001db53
mov edx, dword [0x140042b34]
cmp dword [0x140042b30], 0x2e
mov eax, ebx
mov edi, dword [0x140042b58]
mov ecx, 0x261
sete al
mov dword [0x140042b60], eax
lea eax, [r8*8]
sub edi, eax
mov eax, 0x48
sub eax, r12d
mov dword [0x140042b58], edi
cmp r8d, eax
sete r8b
and edx, 0x2e
xor edx, 0x2d
imul eax, edx, 0x261
mov edx, dword [0x140042b48]
add r11d, eax
mov dword [0x140042b28], r11d
nop dword [rax + rax]
test edx, edx
setne al
or byte [0x140042a63], r8b
or r10b, al
sub rcx, 1
jne 0x14001dbb0
mov r12d, dword [0x140042a8c]
mov esi, 1
add r12d, 0xf
mov byte [0x140042b65], r10b
cmp byte [0x140042b80], bl
movzx ecx, r9b
mov dword [rsp + 0x40], r12d
je 0x14001dbf7
cmp dword [0x140042b2c], ebx
mov eax, esi
jne 0x14001dbf9
mov eax, ebx
or r15b, al
mov eax, 0xfb
sub al, byte [0x140042b84]
add bpl, al
mov byte [0x140042a86], r15b
lea eax, [rcx + rcx*2]
mov byte [0x140042b57], bpl
lea ecx, [rax*2 + 3]
mov eax, 0x38e38e39
mul ecx
shr edx, 1
lea eax, [rdx + rdx*8]
sub ecx, eax
je 0x14001dc7b
sub ecx, esi
je 0x14001dc5e
sub ecx, esi
je 0x14001dc4a
cmp ecx, esi
jne 0x14001dc8b
inc r10b
mov byte [0x140042b65], r10b
jmp 0x14001dc8b
movsx eax, byte [0x140042b88]
add eax, 3
or edi, eax
mov dword [0x140042b58], edi
jmp 0x14001dc8b
movsx ecx, r13b
mov eax, 0xcccccccd
imul ecx, dword [0x140042a88]
mul ecx
mov eax, edx
shr eax, 2
mov dword [rsp + 0x34], eax
jmp 0x14001dc8b
mov r14d, dword [0x140042b38]
add r14d, 2
mov dword [rsp + 0x24], r14d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessorNumber]
movzx r15d, byte [0x140042b54]
mov r10d, 0x159
mov r11d, dword [0x140042b48]
mov edi, r15d
mov ecx, dword [0x140042b7c]
movsx eax, r13b
mov r13d, dword [0x140042b38]
mov edx, eax
and edx, r12d
mov dword [rsp + 0x44], eax
xor edx, dword [0x140042b48]
mov r12d, dword [rsp + 0x38]
xor r11d, 0x10
movzx r8d, r14b
lea r9d, [r12 + 0x51]
and r8b, r13b
sub ecx, edx
movzx eax, r8b
or r13d, r11d
add eax, r14d
mov byte [rsp + 0xb8], r8b
add r9d, eax
mov byte [0x140042b80], r8b
or r9d, edi
mov dword [rsp + 0x4c], r9d
mov dword [0x140042b40], r9d
lea ebp, [r9 + 3]
mov byte [rsp + 0x20], bpl
sub r10, rsi
jne 0x14001dcd2
movzx r10d, byte [rsp + 0xb0]
movzx r12d, byte [0x140042b55]
mov dword [0x140042b38], r13d
movzx r13d, byte [0x140042a87]
mov dword [0x140042b7c], ecx
mov byte [rsp + 0xc0], r12b
test r10b, r10b
je 0x14001ddba
mov ecx, r9d
mov eax, 0xcccccccd
imul ecx, dword [rsp + 0x40]
mul ecx
movzx ecx, bpl
mov eax, 0xffffffbd
shr eax, cl
and al, r12b
shr edx, 2
and r13b, al
mov dword [rsp + 0x3c], edx
mov eax, dword [rsp + 0x34]
mov ecx, edx
shl eax, cl
xor eax, 3
cmp dword [0x140042b2c], eax
sete al
xor r8b, al
movsx eax, byte [0x140042b56]
mov byte [rsp + 0xb8], r8b
mov byte [0x140042b80], r8b
cmp eax, r14d
jne 0x14001ddad
mov eax, ebx
cmp dword [rsp + 0x38], ebx
je 0x14001ddaf
mov eax, esi
movzx edx, byte [0x140042b66]
add dl, al
jmp 0x14001ddc1
movzx edx, byte [0x140042b66]
cmp byte [0x140042b57], bl
mov byte [rsp + 0xc8], dl
je 0x14001ddd8
mov ecx, esi
test bpl, 0x2d
jne 0x14001ddda
mov ecx, ebx
movzx eax, byte [0x140042b83]
movzx edi, r15b
mov ebp, dword [0x140042b60]
xor al, cl
imul ecx, dword [0x140042b48], 0x1d
add dil, dil
movzx r9d, byte [0x140042b82]
movzx r14d, byte [0x140042b65]
movzx r12d, al
mov eax, 0xaaaaaaab
movzx r11d, r8b
mov r8d, dword [rsp + 0x34]
movsx r15d, dl
mul ecx
mov ecx, dword [rsp + 0x40]
or r15d, 0x11
mov eax, edx
mov dword [rsp + 0x50], r11d
shr eax, 1
mov edx, 0x2e4
mov dword [rsp + 0x30], eax
mov eax, r11d
movzx r11d, byte [0x140042a86]
shl eax, cl
imul ecx, eax, 0x2e4
add dword [0x140042b78], ecx
mov ecx, dword [0x140042b68]
cmp r12d, r8d
jne 0x14001de90
cmp ebp, 0x1a
je 0x14001de90
movzx r14d, cl
and r14b, r10b
mov byte [rsp + 0xc0], r14b
test r9b, r9b
je 0x14001de7d
mov eax, esi
test r11b, r11b
jne 0x14001de7f
mov eax, ebx
movzx r14d, byte [0x140042b65]
sub r9b, al
mov dword [0x140042b5c], ebx
and r14b, sil
lea eax, [r13 - 0x11]
xor r13b, al
mov byte [0x140042b65], r14b
add r11b, dil
add ebp, r15d
sub rdx, rsi
jne 0x14001de58
movsx r10d, byte [rsp + 0x20]
movzx r8d, byte [rsp + 0xb8]
movzx eax, r14b
mov r14d, dword [rsp + 0x24]
imul r10d, eax
mov byte [0x140042b82], r9b
mov r9d, dword [rsp + 0x4c]
mov byte [rsp + 0x21], r13b
mov r13d, dword [0x140042b38]
mov byte [0x140042a86], r11b
mov dword [0x140042b58], ebx
and r10d, 0x80000003
jge 0x14001df00
dec r10d
or r10d, 0xfffffffc
inc r10d
movzx eax, byte [0x140042a62]
movzx ecx, byte [0x140042b54]
add al, 0xe
mov edi, dword [0x140042a64]
test r8b, r8b
mov r12d, dword [0x140042b3c]
movzx r8d, byte [0x140042b88]
mov r15d, dword [0x140042a8c]
mov byte [rsp + 0xb0], al
setne al
and cl, al
mov dword [rsp + 0x24], edi
mov byte [rsp + 0xb8], cl
mov eax, edi
xor eax, 0x46
mov byte [rsp + 0x28], r8b
or eax, dword [rsp + 0x3c]
add ebp, eax
mov eax, dword [rsp + 0x38]
mov dword [0x140042b60], ebp
lea ecx, [rax + r12*4]
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
imul eax, eax, 7
sub ecx, eax
je 0x14001e02b
sub ecx, esi
je 0x14001dffd
sub ecx, esi
je 0x14001dfcd
cmp ecx, esi
je 0x14001e04a
mov ecx, dword [rsp + 0x44]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
mov eax, dword [rsp + 0x50]
and eax, 3
add ecx, r15d
or dword [0x140042b78], eax
movzx eax, cl
add al, byte [0x140042a88]
mov byte [0x140042b64], al
mov dword [rsp + 0x30], ecx
jmp 0x14001e04a
movsx eax, byte [0x140042a63]
imul eax, eax, 0x1a
and eax, 0x80000003
mov dword [rsp + 0x2c], eax
jge 0x14001dfed
dec eax
or eax, 0xfffffffc
inc eax
mov dword [rsp + 0x2c], eax
movzx eax, r8b
not al
and al, 0x1a
sub byte [0x140042b65], al
jmp 0x14001e04a
movzx edx, byte [rsp + 0xb0]
mov ecx, r10d
mov eax, 0x51
mov dword [0x140042b58], ebx
shr eax, cl
cmp eax, edx
movsx eax, byte [0x140042a62]
sete cl
shl eax, cl
or dword [0x140042a88], eax
jmp 0x14001e04a
imul eax, dword [rsp + 0x50], 0x46
movsx ecx, byte [0x140042a63]
cdq
and edx, 3
add eax, edx
sar eax, 2
add dword [0x140042b78], ecx
mov dword [rsp + 0x30], eax
movzx r11d, r11b
mov eax, 0xaaaaaaab
lea ecx, [r14 + r11*4]
add r11d, ecx
mul r11d
shr edx, 2
lea eax, [rdx + rdx*2]
mov edx, dword [0x140042b6c]
add eax, eax
mov dword [rsp + 0x58], edx
sub r11d, eax
je 0x14001e116
sub r11d, esi
je 0x14001e0e5
sub r11d, esi
je 0x14001e0a7
mov edi, dword [0x140042b84]
sub r11d, esi
jne 0x14001e153
movzx eax, r10b
or al, byte [rsp + 0xc8]
or byte [0x140042b64], al
jmp 0x14001e153
cmp dword [0x140042b2c], ebx
jne 0x14001e0c6
test r14d, r14d
je 0x14001e0c2
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x30]
shl eax, cl
test eax, eax
jne 0x14001e0c6
mov eax, ebx
jmp 0x14001e0c8
mov eax, esi
mov ecx, ebx
xor ecx, eax
mov dword [0x140042b58], ecx
movzx ecx, byte [rsp + 0xb8]
inc cl
mov byte [rsp + 0xb0], cl
jmp 0x14001e14d
sub edx, dword [rsp + 0x3c]
mov eax, r12d
mov edi, dword [0x140042b84]
sub edx, 0x1a
movzx ecx, byte [rsp + 0x21]
and eax, 0x4e
add ecx, 0x10
shl edx, cl
or edi, edx
add r12d, eax
mov dword [0x140042b84], edi
mov dword [0x140042b3c], r12d
jmp 0x14001e153
mov r14d, dword [rsp + 0x50]
imul r14d, dword [rsp + 0x44]
and r14d, 0x80000003
jge 0x14001e134
dec r14d
or r14d, 0xfffffffc
inc r14d
movzx ecx, byte [rsp + 0xb0]
movsx eax, byte [0x140042b56]
or ecx, esi
add ecx, eax
or edi, ecx
mov dword [rsp + 0x24], edi
mov edi, dword [0x140042b84]
movzx eax, byte [rsp + 0xb0]
mov ecx, dword [rsp + 0x2c]
movsx edx, byte [0x140042b64]
add ecx, 0xffffffb2
movzx r11d, byte [0x140042a62]
or ecx, eax
imul r12d, edx, 0x46
movzx eax, r11b
shl al, cl
mov byte [rsp + 0xb8], al
mov byte [0x140042b83], al
and r12d, 0x80000003
jge 0x14001e19d
dec r12d
or r12d, 0xfffffffc
inc r12d
cmp dword [rsp + 0x30], ebx
je 0x14001e1d5
cmp dword [0x140042b48], 0x1a
jne 0x14001e1d5
test ebp, ebp
jne 0x14001e1ca
cmp dword [rsp + 0x38], 3
mov eax, ebx
sete al
test r14d, eax
jne 0x14001e1ca
mov r14d, ebx
mov dword [0x140042b34], ebx
jmp 0x14001e1dc
mov r14d, esi
mov dword [0x140042b34], esi
jmp 0x14001e1dc
mov r14d, dword [0x140042b34]
mov r8d, dword [0x140042b5c]
mov ecx, ebx
mov eax, 0x10
movsx ebp, r12b
sub eax, dword [rsp + 0x38]
cmp edx, eax
mov qword [rsp + 0x50], 0x2b
mov edx, dword [0x140042b44]
mov eax, dword [rsp + 0x2c]
sete cl
add eax, r8d
xor ecx, eax
movzx eax, byte [0x140042b57]
add edx, ecx
mov ecx, r10d
shl eax, cl
movzx ecx, byte [0x140042b56]
xor r15d, eax
movzx eax, byte [rsp + 0xc0]
sub cl, r10b
or al, cl
mov dword [0x140042b44], edx
mov byte [rsp + 0xc0], al
mov ecx, ebx
mov byte [0x140042b55], al
movsx eax, byte [0x140042b67]
cmp eax, dword [rsp + 0x34]
mov eax, ebx
sete cl
cmp edx, ebp
mov edx, dword [rsp + 0x24]
sete al
mov dword [rsp + 0x4c], ecx
mov dword [rsp + 0x44], eax
jmp 0x14001e278
movzx r11d, byte [0x140042a62]
cmp r13d, r14d
jae 0x14001e30a
cmp r10d, r8d
je 0x14001e30a
cmp byte [0x140042b57], bl
je 0x14001e2a6
mov eax, 3
mov dword [0x140042b28], esi
mov ecx, r10d
shr eax, cl
test eax, eax
jne 0x14001e2ac
mov dword [0x140042b28], ebx
movsx eax, byte [rsp + 0x20]
movsx ecx, r11b
imul ecx, eax
mov eax, 0x66666667
imul ecx
mov r10d, edx
sar r10d, 1
mov eax, r10d
shr eax, 0x1f
add r10d, eax
cmp dword [0x140042b58], ebx
je 0x14001e2e6
test r12b, r12b
je 0x14001e2e6
mov r9d, esi
mov dword [0x140042b40], esi
jmp 0x14001e2ef
mov r9d, ebx
mov dword [0x140042b40], ebx
mov edx, dword [rsp + 0x24]
mov eax, ebx
mov ecx, ebp
sub ecx, dword [rsp + 0x3c]
shl ecx, 3
cmp r9d, ecx
mov ecx, dword [rsp + 0x4c]
sete al
add edi, eax
mov eax, ebx
mov r11d, r9d
imul r11d, dword [rsp + 0x30]
shr r11d, 2
cmp ecx, r11d
sete al
or edx, dword [rsp + 0x44]
and r15d, eax
mov dword [rsp + 0x24], edx
sub qword [rsp + 0x50], rsi
mov dword [0x140042a64], edx
jne 0x14001e270
movzx ecx, bp
mov dword [0x140042b84], edi
movzx eax, di
mov dword [0x140042a8c], r15d
add ax, ax
sub cx, ax
and ecx, 3
je 0x14001e3c5
sub ecx, esi
je 0x14001e397
mov r9d, dword [0x140042b5c]
sub ecx, esi
je 0x14001e384
cmp ecx, esi
jne 0x14001e3f0
mov byte [rsp + 0xb0], dl
movzx r14d, sil
mov byte [0x140042b83], sil
jmp 0x14001e3f9
mov eax, dword [rsp + 0x3c]
shr eax, 2
add eax, dword [0x140042a88]
mov dword [rsp + 0x48], eax
jmp 0x14001e3f0
test edi, edi
jne 0x14001e3b3
cmp dword [rsp + 0x30], ebx
jne 0x14001e3b3
mov r9d, dword [0x140042b5c]
mov r15d, ebx
mov dword [0x140042a8c], ebx
jmp 0x14001e3f0
mov r9d, dword [0x140042b5c]
mov r15d, esi
mov dword [0x140042a8c], esi
jmp 0x14001e3f0
mov eax, dword [0x140042b4c]
mov ecx, dword [rsp + 0x34]
shr eax, cl
test eax, eax
jne 0x14001e3dd
mov eax, ebx
cmp dword [rsp + 0x2c], ebx
je 0x14001e3df
mov eax, esi
mov r9d, dword [0x140042b5c]
xor r9d, eax
mov dword [0x140042b5c], r9d
movzx r14d, byte [rsp + 0xb8]
movzx ecx, byte [rsp + 0x2c]
movzx eax, r15b
mov edi, dword [rsp + 0x58]
and al, r12b
movzx r8d, byte [rsp + 0x28]
xor al, r11b
mov byte [0x140042b54], al
movzx eax, r14b
shr eax, cl
add edi, eax
mov byte [0x140042b57], bl
mov dword [0x140042b6c], edi
cmp byte [rsp + 0xb0], bl
je 0x14001e43f
cmp dword [0x140042b78], ebx
mov edx, ebx
jne 0x14001e441
mov edx, esi
movzx eax, byte [rsp + 0x21]
mov ecx, ebx
cmp eax, dword [rsp + 0x30]
seta cl
and ecx, edx
mov edx, dword [rsp + 0x40]
cmp ecx, r10d
jbe 0x14001e4a2
movzx r13d, dl
and r13b, byte [rsp + 0xc0]
test r11d, ebp
je 0x14001e472
mov ecx, esi
test r10d, r10d
jne 0x14001e474
mov ecx, ebx
shl dil, cl
lea r11d, [r15 + 0x17]
mov r15d, dword [rsp + 0x48]
mov eax, ebx
cmp r15d, edx
mov byte [0x140042b56], dil
sete al
and eax, 0x10
sub eax, dword [rsp + 0x24]
add r9d, eax
mov dword [0x140042b5c], r9d
jmp 0x14001e4b0
movzx r13d, byte [rsp + 0xc8]
mov r15d, dword [rsp + 0x48]
movzx r9d, byte [0x140042b81]
mov ecx, 0x1135
nop dword [rax]
xor r9b, bl
sub rcx, rsi
jne 0x14001e4c0
xor dl, byte [0x140042b82]
mov edi, dword [rsp + 0x34]
sub r8b, dl
mov byte [0x140042b81], r9b
test r10d, r10d
jne 0x14001e506
mov eax, 0x66666667
movzx ecx, r9b
imul ebp
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ebp, eax
mov eax, edi
add ecx, ebp
sar eax, cl
test eax, eax
mov eax, ebx
je 0x14001e508
mov eax, esi
xor al, r14b
and r13b, al
mov eax, 0x7c
cmp byte [rsp + 0x20], 0x46
mov byte [0x140042b66], r13b
sete cl
xor cl, 0x10
add r8b, r8b
add r8b, cl
sub rax, rsi
jne 0x14001e525
mov byte [0x140042b88], r8b
test r11d, r11d
je 0x14001e547
mov ecx, r15d
shl r15d, cl
test r15d, r15d
jne 0x14001e549
mov esi, ebx
or sil, byte [0x140042b65]
mov byte [0x140042a87], sil
call qword [sym.imp.KERNEL32.dll_GetThreadUILanguage]
call fcn.14001d060
cmp edi, 0x10
sete bl
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret