joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140117d80
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x10
mov r11, rcx
movaps xmmword [rsp], xmm6
movdqu xmm6, xmmword [rdx]
lea rdi, str.cw
pshufd xmm0, xmm6, 0x55
mov rbx, rdx
movd eax, xmm0
movdqu xmm5, xmmword [r11]
pshufd xmm0, xmm6, 0xff
mov r9d, eax
shr rax, 0x10
movzx r8d, al
mov eax, r9d
shr rax, 0x18
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
movzx r10d, byte [r8 + rdi]
movzx eax, byte [rax + rdi]
pxor xmm4, xmmword [r11]
shl eax, 8
or r10d, eax
mov eax, r9d
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rdi]
or r10d, eax
movzx eax, r9b
shl r10d, 8
movzx ecx, byte [rax + rdi]
or r10d, ecx
movd eax, xmm0
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r10d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
mov eax, r10d
or r8d, ecx
ror eax, 8
xor eax, 1
mov ecx, r8d
ror ecx, 8
xor ecx, 1
movd xmm2, r8d
movd xmm0, eax
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
movd xmm1, ecx
pxor xmm0, xmm4
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xff
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
movdqu xmmword [r11], xmm1
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r9d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
movdqa xmm5, xmm6
or r9d, eax
pshufd xmm0, xmm1, 0xff
shl r9d, 8
mov eax, edx
shr rax, 8
movzx ecx, al
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
pxor xmm4, xmm6
movaps xmm6, xmmword [rsp]
movzx eax, byte [rcx + rdi]
or r9d, eax
movzx eax, dl
shl r9d, 8
movzx ecx, byte [rax + rdi]
movd eax, xmm0
or r9d, ecx
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r9d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
or r8d, ecx
mov ecx, r9d
mov eax, r8d
ror eax, 8
ror ecx, 8
movd xmm2, r8d
movd xmm1, eax
punpckldq xmm2, xmm1
movd xmm0, ecx
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
pxor xmm0, xmm4
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xaa
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
mov rbx, qword [rsp + 0x20]
add rsp, 0x10
pop rdi
ret
Function at 0x140117fa0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x10
mov r11, rcx
movaps xmmword [rsp], xmm6
movdqu xmm6, xmmword [rdx]
lea rdi, str.cw
pshufd xmm0, xmm6, 0x55
mov rbx, rdx
movd eax, xmm0
movdqu xmm5, xmmword [r11]
pshufd xmm0, xmm6, 0xff
mov r9d, eax
shr rax, 0x10
movzx r8d, al
mov eax, r9d
shr rax, 0x18
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
movzx r10d, byte [r8 + rdi]
movzx eax, byte [rax + rdi]
pxor xmm4, xmmword [r11]
shl eax, 8
or r10d, eax
mov eax, r9d
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rdi]
or r10d, eax
movzx eax, r9b
shl r10d, 8
movzx ecx, byte [rax + rdi]
or r10d, ecx
movd eax, xmm0
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r10d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
mov eax, r10d
or r8d, ecx
ror eax, 8
xor eax, 2
mov ecx, r8d
ror ecx, 8
xor ecx, 2
movd xmm2, r8d
movd xmm0, eax
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
movd xmm1, ecx
pxor xmm0, xmm4
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xff
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
movdqu xmmword [r11], xmm1
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r9d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
movdqa xmm5, xmm6
or r9d, eax
pshufd xmm0, xmm1, 0xff
shl r9d, 8
mov eax, edx
shr rax, 8
movzx ecx, al
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
pxor xmm4, xmm6
movaps xmm6, xmmword [rsp]
movzx eax, byte [rcx + rdi]
or r9d, eax
movzx eax, dl
shl r9d, 8
movzx ecx, byte [rax + rdi]
movd eax, xmm0
or r9d, ecx
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r9d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
or r8d, ecx
mov ecx, r9d
mov eax, r8d
ror eax, 8
ror ecx, 8
movd xmm2, r8d
movd xmm1, eax
punpckldq xmm2, xmm1
movd xmm0, ecx
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
pxor xmm0, xmm4
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xaa
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
mov rbx, qword [rsp + 0x20]
add rsp, 0x10
pop rdi
ret
Function at 0x1401181c0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x10
mov r11, rcx
movaps xmmword [rsp], xmm6
movdqu xmm6, xmmword [rdx]
lea rdi, str.cw
pshufd xmm0, xmm6, 0x55
mov rbx, rdx
movd eax, xmm0
movdqu xmm5, xmmword [r11]
pshufd xmm0, xmm6, 0xff
mov r9d, eax
shr rax, 0x10
movzx r8d, al
mov eax, r9d
shr rax, 0x18
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
movzx r10d, byte [r8 + rdi]
movzx eax, byte [rax + rdi]
pxor xmm4, xmmword [r11]
shl eax, 8
or r10d, eax
mov eax, r9d
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rdi]
or r10d, eax
movzx eax, r9b
shl r10d, 8
movzx ecx, byte [rax + rdi]
or r10d, ecx
movd eax, xmm0
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r10d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
mov eax, r10d
or r8d, ecx
ror eax, 8
xor eax, 4
mov ecx, r8d
ror ecx, 8
xor ecx, 4
movd xmm2, r8d
movd xmm0, eax
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
movd xmm1, ecx
pxor xmm0, xmm4
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xff
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
movdqu xmmword [r11], xmm1
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r9d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
movdqa xmm5, xmm6
or r9d, eax
pshufd xmm0, xmm1, 0xff
shl r9d, 8
mov eax, edx
shr rax, 8
movzx ecx, al
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
pxor xmm4, xmm6
movaps xmm6, xmmword [rsp]
movzx eax, byte [rcx + rdi]
or r9d, eax
movzx eax, dl
shl r9d, 8
movzx ecx, byte [rax + rdi]
movd eax, xmm0
or r9d, ecx
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r9d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
or r8d, ecx
mov ecx, r9d
mov eax, r8d
ror eax, 8
ror ecx, 8
movd xmm2, r8d
movd xmm1, eax
punpckldq xmm2, xmm1
movd xmm0, ecx
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
pxor xmm0, xmm4
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xaa
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
mov rbx, qword [rsp + 0x20]
add rsp, 0x10
pop rdi
ret
Function at 0x1401183e0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x10
mov r11, rcx
movaps xmmword [rsp], xmm6
movdqu xmm6, xmmword [rdx]
lea rdi, str.cw
pshufd xmm0, xmm6, 0x55
mov rbx, rdx
movd eax, xmm0
movdqu xmm5, xmmword [r11]
pshufd xmm0, xmm6, 0xff
mov r9d, eax
shr rax, 0x10
movzx r8d, al
mov eax, r9d
shr rax, 0x18
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
movzx r10d, byte [r8 + rdi]
movzx eax, byte [rax + rdi]
pxor xmm4, xmmword [r11]
shl eax, 8
or r10d, eax
mov eax, r9d
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rdi]
or r10d, eax
movzx eax, r9b
shl r10d, 8
movzx ecx, byte [rax + rdi]
or r10d, ecx
movd eax, xmm0
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r10d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
mov eax, r10d
or r8d, ecx
ror eax, 8
xor eax, 8
mov ecx, r8d
ror ecx, 8
xor ecx, 8
movd xmm2, r8d
movd xmm0, eax
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
movd xmm1, ecx
pxor xmm0, xmm4
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xff
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
movdqu xmmword [r11], xmm1
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r9d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
movdqa xmm5, xmm6
or r9d, eax
pshufd xmm0, xmm1, 0xff
shl r9d, 8
mov eax, edx
shr rax, 8
movzx ecx, al
pslldq xmm5, 4
movdqa xmm4, xmm5
pslldq xmm5, 4
pxor xmm4, xmm6
movaps xmm6, xmmword [rsp]
movzx eax, byte [rcx + rdi]
or r9d, eax
movzx eax, dl
shl r9d, 8
movzx ecx, byte [rax + rdi]
movd eax, xmm0
or r9d, ecx
mov edx, eax
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movd xmm3, r9d
movzx r8d, byte [rcx + rdi]
movzx eax, byte [rax + rdi]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdi]
or r8d, eax
movzx eax, dl
shl r8d, 8
movzx ecx, byte [rax + rdi]
or r8d, ecx
mov ecx, r9d
mov eax, r8d
ror eax, 8
ror ecx, 8
movd xmm2, r8d
movd xmm1, eax
punpckldq xmm2, xmm1
movd xmm0, ecx
punpckldq xmm3, xmm0
movdqa xmm0, xmm5
pxor xmm0, xmm4
punpcklqdq xmm3, xmm2
pslldq xmm5, 4
pxor xmm0, xmm5
pshufd xmm1, xmm3, 0xaa
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
mov rbx, qword [rsp + 0x20]
add rsp, 0x10
pop rdi
ret
Function at 0x140122ca0
Capabilities:
Decrypt data using aes via x86 extensions
Encrypt data using aes via x86 extensions

Disassembly:
sub rsp, 0x28
mov rax, qword [rcx + 0xbf0]
mov ecx, dword [0x140421898]
movdqa xmm4, xmmword [0x1403e32e0]
add rcx, rax
movdqa xmm5, xmmword [0x1403e31a0]
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movdqu xmm2, xmmword [rdx + 0x20]
movdqu xmm3, xmmword [rdx + 0x30]
movaps xmmword [rsp + 0x10], xmm6
movdqa xmm6, xmmword [0x1403e31e0]
movaps xmmword [rsp], xmm7
movdqa xmm7, xmmword [0x1403e3200]
cmp rax, rcx
jae 0x140122d30
nop word [rax + rax]
aesdec xmm0, xmm4
aesenc xmm1, xmm5
aesdec xmm2, xmm6
aesenc xmm3, xmm7
movdqu xmmword [rax], xmm0
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x30], xmm3
add rax, 0x40
cmp rax, rcx
jb 0x140122d00
movaps xmm6, xmmword [rsp + 0x10]
movaps xmm7, xmmword [rsp]
movdqu xmmword [rdx], xmm0
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x30], xmm3
add rsp, 0x28
ret

Function at 0x140122d60
Capabilities:
Decrypt data using aes via x86 extensions
Encrypt data using aes via x86 extensions

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x120
mov rax, qword [0x14041a618]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rax, qword [rcx + 0xbf0]
mov rbx, rdx
mov edx, dword [0x140421898]
movdqa xmm2, xmmword [0x1403e3310]
add rdx, rax
movdqa xmm3, xmmword [0x1403e32c0]
movdqa xmm4, xmmword [0x1403e3330]
movdqa xmm5, xmmword [0x1403e3240]
cmp rax, rdx
jae 0x140122de0
nop word [rax + rax]
aesenc xmm2, xmmword [rax]
aesdec xmm3, xmmword [rax + 0x10]
aesenc xmm4, xmmword [rax + 0x20]
aesdec xmm5, xmmword [rax + 0x30]
add rax, 0x40
cmp rax, rdx
jb 0x140122dc0
movdqa xmm0, xmmword [0x1403e3170]
lea rdi, [rcx + 0xac0]
movdqa xmm1, xmmword [0x1403e3340]
aesenc xmm2, xmm0
aesdec xmm3, xmm0
aesenc xmm4, xmm0
aesdec xmm5, xmm0
aesenc xmm2, xmm1
movdqu xmmword [rcx + 0xb80], xmm2
aesdec xmm3, xmm1
movdqu xmmword [rcx + 0xb90], xmm3
aesenc xmm4, xmm1
movdqu xmmword [rcx + 0xba0], xmm4
aesdec xmm5, xmm1
movdqu xmmword [rcx + 0xbb0], xmm5
test rdi, rdi
je 0x140122e86
test rbx, rbx
je 0x140122e86
mov edx, 0x20
lea rcx, [rsp + 0x20]
call fcn.14011e0c0
test eax, eax
js 0x140122e86
mov r8d, 0x100
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.14011e700
test eax, eax
js 0x140122e86
mov r8d, 0x20
lea rcx, [rsp + 0x20]
mov rdx, rbx
call fcn.14011e860
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.14029dd50
mov rbx, qword [rsp + 0x140]
add rsp, 0x120
pop rdi
ret
Function at 0x140122f60
Capabilities:
Decrypt data using aes via x86 extensions
Encrypt data using aes via x86 extensions

Disassembly:
sub rsp, 0x68
movdqa xmm4, xmmword [0x140421920]
lea rax, [rcx + 0x40]
mov ecx, dword [0x14042189c]
movdqa xmm5, xmmword [0x140421930]
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movdqu xmm2, xmmword [rdx + 0x20]
lea r8d, [rcx*8 + 0x80]
movdqu xmm3, xmmword [rdx + 0x30]
add r8, rax
movaps xmmword [rsp + 0x50], xmm6
movdqa xmm6, xmmword [0x140421940]
movaps xmmword [rsp + 0x40], xmm7
movdqa xmm7, xmmword [0x140421950]
movaps xmmword [rsp + 0x30], xmm8
movdqa xmm8, xmmword [0x140421960]
movaps xmmword [rsp + 0x20], xmm9
movdqa xmm9, xmmword [0x140421970]
movaps xmmword [rsp + 0x10], xmm10
movdqa xmm10, xmmword [0x140421980]
movaps xmmword [rsp], xmm11
movdqa xmm11, xmmword [0x140421990]
cmp rax, r8
jae 0x140123074
nop word [rax + rax]
aesdec xmm0, xmm4
aesenc xmm1, xmm4
aesdec xmm2, xmm8
aesenc xmm3, xmm8
aesdec xmm0, xmm5
aesenc xmm1, xmm5
aesdec xmm2, xmm9
aesenc xmm3, xmm9
aesdec xmm0, xmm6
aesenc xmm1, xmm6
aesdec xmm2, xmm10
aesenc xmm3, xmm10
aesdec xmm0, xmm7
aesenc xmm1, xmm7
aesdec xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmmword [rax], xmm0
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x30], xmm3
add rax, 0x40
cmp rax, r8
jb 0x140123000
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x30]
movaps xmm9, xmmword [rsp + 0x20]
movaps xmm10, xmmword [rsp + 0x10]
movaps xmm11, xmmword [rsp]
add rsp, 0x68
ret
Function at 0x1401278f0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x14041a618]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rdi, rcx
xor eax, eax
mov qword [rcx + 0x38], rax
mov qword [rcx + 0x40], rax
mov byte [rcx + 0x48], al
mov rcx, qword [0x1406bbe50]
test rcx, rcx
jne 0x140127952
mov ecx, 0xe8
call fcn.14029dd7c
mov qword [rsp + 0x20], rax
mov rcx, rax
call fcn.140097890
mov rcx, rax
mov qword [0x1406bbe50], rax
mov rax, qword [rcx]
call qword [rax + 0xa0]
mov byte [rdi + 0x48], al
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov eax, 1
xor ecx, ecx
cpuid
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], ebx
mov dword [rsp + 0x2c], edx
bt ecx, 0x1b
jae 0x14012798b
bt ecx, 0x1c
jae 0x14012798b
mov al, 1
jmp 0x14012798d
xor al, al
mov byte [rdi + 0x49], al
movups xmmword [rsp + 0x20], xmm0
mov eax, 0x80000001
xor ecx, ecx
cpuid
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], ebx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], edx
shr ecx, 0xb
and cl, 1
mov byte [rdi + 0x4a], cl
mov edx, 0x20000
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x140127ad7
mov qword [rdi + 0x50], rax
mov eax, 0xec0
lock xadd qword [0x1406bc120], rax
movzx ecx, ax
add rcx, qword [rdi + 0x50]
mov qword [rdi + 0x20], rcx
lea r15, [0x1406e81c0]
mov r8, r15
lea r14, [0x1406e8040]
sub r8, r14
mov rdx, r14
call fcn.1402bc6d0
mov rcx, qword [rdi + 0x20]
lea r12, [0x1406e81c1]
lea rbp, [0x1406e82b1]
lea rsi, [0x1406e8241]
sub rcx, r14
add rcx, r15
cmp byte [rdi + 0x4a], 0
je 0x140127a40
mov r8, rbp
sub r8, rsi
mov rdx, rsi
jmp 0x140127a49
mov r8, rsi
sub r8, r12
mov rdx, r12
call fcn.1402bc6d0
lea rdx, [0x1406e8480]
mov rbx, rdx
lea r8, [0x1406e8540]
sub rbx, r8
add rbx, 0x10000
and rbx, 0xffffffffffffffc0
sub r8, rdx
mov rcx, qword [rdi + 0x20]
add rcx, rbx
call fcn.1402bc6d0
mov rax, rsi
sub eax, r12d
sub ebp, esi
cmp byte [rdi + 0x4a], 0
cmove ebp, eax
sub ebp, r14d
add ebp, r15d
mov dword [rdi + 0x2c], ebp
mov rdx, qword [rdi + 0x20]
mov rcx, rdx
sub rcx, r14
add rcx, r15
mov qword [rdi + 0x38], rcx
lea rcx, [rbx + rdx]
mov qword [rdi + 0x40], rcx
mov rax, rdi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14029dd50
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
lea rdx, str.Failed_to_allocate_executable_memory
lea rcx, [rsp + 0x20]
call fcn.140031e60
lea rdx, [0x140412098]
lea rcx, [rsp + 0x20]
call 0x1402bd240
int3
Function at 0x14012b440
Capabilities:
Delete service
Stop service

Disassembly:
sub rsp, 0x58
mov rax, qword [0x14041a618]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rcx, qword [0x1406bc128]
test rcx, rcx
jne 0x14012b473
mov al, 1
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14029dd50
add rsp, 0x58
ret
mov qword [rsp + 0x60], rbx
mov bl, 1
mov qword [rsp + 0x50], rdi
xor edi, edi
cmp byte [0x1406b702f], dil
jne 0x14012b4d9
lea r8, [rsp + 0x20]
lea edx, [rdi + 1]
call qword [sym.imp.ADVAPI32.dll_ControlService]
mov rcx, qword [0x1406bc128]
test eax, eax
movzx ebx, bl
cmove ebx, edi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x14012b4d2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str.e_43_1me_1_37m_msr_____e_0m
lea rdx, str.e_0m_se_0_31mfailed_to_remove_WinRing0_driver__error__u
lea ecx, [rdi + 3]
call fcn.140015420
xor bl, bl
mov rcx, qword [0x1406bc128]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
movzx eax, bl
mov qword [0x1406bc128], rdi
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14029dd50
add rsp, 0x58
ret

Function at 0x14012caf0
Capabilities:
Contain obfuscated stackstrings
Encrypt data using salsa20 or chacha

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x70
mov rax, qword [0x14041a618]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov eax, dword [rcx + 0xc]
mov rbx, rdx
mov dword [rsp + 0x30], eax
xor edx, edx
mov eax, dword [rcx + 0x1c]
mov rdi, r8
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x44], eax
mov eax, dword [rcx + 4]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov eax, dword [rcx + 0x10]
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x58], edx
mov rdx, rbx
mov dword [rsp + 0x20], 0x61707865
mov dword [rsp + 0x24], 0x3320646e
mov dword [rsp + 0x28], 0x79622d32
mov dword [rsp + 0x2c], 0x6b206574
mov dword [rsp + 0x5c], eax
call fcn.14012d140
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rbx - 0x10], xmm0
movups xmmword [rdi + rbx], xmm1
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14029dd50
mov rbx, qword [rsp + 0x80]
add rsp, 0x70
pop rdi
ret
Function at 0x140132f90
Capabilities:
Encode data using xor

Disassembly:
lea rax, [rdx + 0x3f8]
lea r8, [rcx + 0x3f8]
cmp rcx, rax
ja 0x140132fd2
xor r9d, r9d
cmp r8, rdx
jb 0x140132fd2
mov r8d, 0x80
lea rax, [rcx + r9*8]
sub rdx, rcx
sub r8, r9
nop dword [rax + rax]
mov rcx, qword [rax + rdx]
xor qword [rax], rcx
lea rax, [rax + 8]
sub r8, 1
jne 0x140132fc0
ret
lea rax, [rcx + 0x10]
sub rdx, rcx
mov ecx, 0x10
nop
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rdx + rax - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rdx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
sub rcx, 1
jne 0x140132fe0
ret
Function at 0x140183b00
Capabilities:
Encode data using xor

Disassembly:
push rbx
movsxd rbx, r9d
mov r10, r8
mov r11, rdx
cmp rdx, r8
je 0x140183c62
mov qword [rsp + 0x10], rsi
lea rsi, [rcx - 1]
not rcx
shr rsi, 0x3f
shr rcx, 0x3f
and rsi, rcx
mov ecx, dword [rdx + 8]
xor ecx, dword [r8 + 8]
dec rsi
and ecx, esi
xor dword [rdx + 8], ecx
xor dword [r8 + 8], ecx
mov edx, dword [r8 + 0x10]
movq xmm4, rsi
xor edx, dword [r11 + 0x10]
and edx, esi
punpcklqdq xmm4, xmm4
xor dword [r11 + 0x10], edx
xor dword [r8 + 0x10], edx
mov ecx, dword [r11 + 0x14]
mov edx, dword [r8 + 0x14]
xor rdx, rcx
and edx, 4
and rdx, rsi
mov eax, edx
xor eax, ecx
xor ecx, ecx
mov dword [r11 + 0x14], eax
xor dword [r8 + 0x14], edx
mov edx, ecx
test r9d, r9d
jle 0x140183c22
cmp ebx, 2
jb 0x140183c22
mov r9, qword [r8]
lea rax, [rbx - 1]
mov r8, qword [r11]
mov qword [rsp + 0x18], rdi
lea rdi, [rbx - 1]
lea rdi, [r9 + rdi*8]
lea rax, [r8 + rax*8]
cmp r9, rax
ja 0x140183bb1
cmp rdi, r8
jae 0x140183c1d
cmp r9, r10
ja 0x140183bbb
cmp rdi, r10
jae 0x140183c1d
cmp r9, r11
ja 0x140183bc5
cmp rdi, r11
jae 0x140183c1d
cmp r8, r10
ja 0x140183bcf
cmp rax, r10
jae 0x140183c1d
cmp r8, r11
ja 0x140183bd9
cmp rax, r11
jae 0x140183c1d
mov eax, ebx
and eax, 0xfffffffe
nop
movdqu xmm2, xmmword [rcx + r9]
add edx, 2
movdqu xmm1, xmmword [rcx + r8]
lea rcx, [rcx + 0x10]
movdqa xmm3, xmm2
pxor xmm3, xmm1
pand xmm3, xmm4
movdqa xmm0, xmm3
pxor xmm3, xmm2
pxor xmm0, xmm1
movdqu xmmword [rcx + r8 - 0x10], xmm0
movdqu xmmword [rcx + r9 - 0x10], xmm3
cmp edx, eax
jl 0x140183be0
mov rdi, qword [rsp + 0x18]
movsxd rax, edx
cmp rax, rbx
jge 0x140183c5d
nop word [rax + rax]
mov rcx, qword [r11]
mov rdx, qword [rcx + rax*8]
lea r8, [rcx + rax*8]
mov rcx, qword [r10]
mov r9, qword [rcx + rax*8]
xor r9, rdx
and r9, rsi
xor rdx, r9
mov qword [r8], rdx
mov rcx, qword [r10]
xor qword [rcx + rax*8], r9
inc rax
cmp rax, rbx
jl 0x140183c30
mov rsi, qword [rsp + 0x10]
pop rbx
ret
Function at 0x14018a8f0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
mov r10, rdx
xor r11b, r11b
xor edx, edx
mov rsi, r9
mov rbx, rcx
test rcx, rcx
je 0x14018aa04
test r10, r10
je 0x14018aa04
movzx eax, byte [rcx]
test r8d, r8d
jne 0x14018a935
cmp al, 0x7f
jbe 0x14018a9fd
mov edx, 1
mov eax, edx
add rax, r10
jmp 0x14018aa0c
mov r11b, 0xff
cmp al, 0x80
jbe 0x14018a94b
mov edx, 1
mov eax, edx
add rax, r10
jmp 0x14018aa0c
jne 0x14018a9fd
mov eax, 1
lea rcx, [r10 - 1]
cmp r10, rax
jbe 0x14018a9ee
cmp rcx, 8
jb 0x14018a9e0
and ecx, 7
mov rdx, r10
sub rdx, rcx
xorps xmm3, xmm3
xorps xmm2, xmm2
nop dword [rax + rax]
movd xmm1, dword [rax + rbx]
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
por xmm1, xmm3
movdqa xmm3, xmm1
movd xmm1, dword [rax + rbx + 4]
punpcklbw xmm1, xmm0
add rax, 8
punpcklwd xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp rax, rdx
jb 0x14018a980
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movd edx, xmm2
cmp rax, r10
jae 0x14018a9ee
nop
movzx ecx, byte [rax + rbx]
inc rax
or edx, ecx
cmp rax, r10
jb 0x14018a9e0
neg edx
sbb r11b, r11b
movzx r11d, r11b
mov edx, r11d
and edx, 1
mov eax, edx
add rax, r10
jmp 0x14018aa0c
mov eax, 1
mov r10, rdx
mov qword [rsp + 0x10], rdi
test rsi, rsi
je 0x14018aa65
mov rdi, qword [r9]
test rdi, rdi
je 0x14018aa65
movzx r8d, r11b
lea r9, [rbx + r10]
and r8d, 1
mov byte [rdi], r11b
test r10, r10
je 0x14018aa62
mov ebx, edx
add rbx, rdi
nop word [rax + rax]
movzx edx, byte [r9 - 1]
lea r9, [r9 - 1]
dec r10
movzx ecx, r11b
xor edx, ecx
add r8d, edx
mov byte [rbx + r10], r8b
shr r8d, 8
test r10, r10
jne 0x14018aa40
add qword [rsi], rax
mov rdi, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
pop rsi
ret