joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18000c918
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
mov r10b, byte [r8 + 0x100]
mov r9, r8
mov r11b, byte [r8 + 0x101]
mov rdi, rcx
movsxd rbx, edx
test edx, edx
jle 0x18000c971
inc r10b
movzx r8d, r10b
mov dl, byte [r8 + r9]
add r11b, dl
movzx ecx, r11b
mov al, byte [rcx + r9]
mov byte [r8 + r9], al
mov byte [rcx + r9], dl
add dl, byte [r8 + r9]
movzx eax, dl
mov cl, byte [rax + r9]
xor byte [rdi], cl
inc rdi
sub rbx, 1
jne 0x18000c93d
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
mov byte [r9 + 0x100], r10b
mov byte [r9 + 0x101], r11b
ret

Function at 0x180016554
Capabilities:
Enumerate files on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x270
mov rsi, rcx
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x250
xor ebx, ebx
call sub.ntdll.dll_memset
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [0x180035658]
xor edx, edx
lea r8d, [rax*2 + 0x22]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x180016673
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.Profiles
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x250
call sub.ntdll.dll_memset
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18001667e
test byte [rsp + 0x20], 0x10
je 0x180016656
cmp word [rsp + 0x4c], 0x2e
je 0x180016656
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [0x180035658]
xor edx, edx
lea r8d, [rax*2 + 0x18]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x18001664b
lea rdx, str.Profiles_
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [rsp + 0x4c]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x180016656
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1800165f2
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x18001667e
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea r11, [rsp + 0x270]
mov rax, rbx
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x1800170a8
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
xor ebx, ebx
mov r15, r9
mov rsi, r8
mov rbp, rdx
mov edi, ebx
test r8, r8
je 0x1800170dd
mov rcx, r8
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r14d, eax
test eax, eax
jne 0x1800170ff
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x180017185
mov rcx, qword [0x180035658]
add eax, edi
xor edx, edx
lea r8d, [rax*2 + 0x22]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
jne 0x180017125
lea ebx, [rax + 8]
jmp 0x180017185
mov r8d, r14d
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x18001716b
test rsi, rsi
je 0x180017149
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [0x18002a3c8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor r8d, r8d
mov rdx, r15
mov rcx, rdi
call fcn.18001fda0
test eax, eax
jne 0x180017173
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [0x180035658]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbp, qword [rsp + 0x48]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x1800171a0
Capabilities:
Query environment variable

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x30], rbx
mov r15, rdx
mov qword [rbp + 0x38], rsi
mov rbx, r8
mov qword [rbp + 0x40], rdi
mov r13, rcx
xor edi, edi
mov esi, edi
test r8, r8
je 0x1800171dc
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
xor r8d, r8d
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r14d, eax
test eax, eax
jne 0x1800171fe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x18001737d
mov rcx, qword [0x180035658]
add eax, esi
xor edx, edx
lea r12d, [rax*2 + 0x20]
mov r8d, r12d
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
test rax, rax
jne 0x18001722a
lea ebx, [rax + 8]
jmp 0x18001737d
mov r8d, r14d
mov rdx, rsi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x18001724a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x18001736b
test rbx, rbx
je 0x18001725b
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [0x18002a3c8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov eax, dword [r13 + 0x770]
xor edx, edx
mov rcx, qword [0x180035658]
add eax, 7
lea r8d, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r14, rax
test rax, rax
jne 0x180017298
lea ebx, [rax + 8]
jmp 0x18001736b
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [0x18002a3c8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [0x18002a1c0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r15, [r13 + 0x774]
test r15, r15
je 0x180017329
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r9d, [rax + 1]
lea ecx, [r9 + r9]
movsxd rdx, ecx
lea rax, [rdx + 0xf]
cmp rax, rdx
ja 0x1800172f7
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.18000a4a0
sub rsp, rax
mov r8, r15
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], r9d
lea rbx, [rsp + 0x30]
or r9d, 0xffffffff
mov word [rbx], di
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov rdi, rbx
mov rdx, rdi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str._OPR
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov r8, r14
lea rcx, [0x18002a3b0]
mov rdx, rsi
call fcn.18001fad4
mov rcx, qword [0x180035658]
mov r8, r14
xor edx, edx
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x180035658]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, qword [rbp + 0x38]
mov eax, ebx
mov rbx, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x40]
mov rsp, rbp
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x180018de0
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movzx r14d, r9w
xor edi, edi
shr r9, 0x10
mov r15d, r8d
mov dword [rax + 0x20], r14d
mov r13, rdx
movzx ebp, r9w
mov rbx, rcx
mov dword [rax + 0x24], ebp
mov eax, r8d
sub eax, 0xa1
je 0x180018e66
sub eax, 3
je 0x180018e5f
sub eax, 3
je 0x180018e58
sub eax, 0x15a
je 0x180018e51
sub eax, 3
je 0x180018e4a
cmp eax, 3
jne 0x180018f13
mov esi, 0x209
jmp 0x180018e70
mov esi, 0x206
jmp 0x180018e70
mov esi, 0x203
jmp 0x180018e70
mov esi, 0xa9
jmp 0x180018e6b
mov esi, 0xa6
jmp 0x180018e6b
mov esi, 0xa3
mov edi, 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub r14d, dword [rbx + 0x258]
xor ecx, ecx
sub ebp, dword [rbx + 0x25c]
mov r12d, eax
test r14d, r14d
jns 0x180018e90
neg r14d
test ebp, ebp
jns 0x180018e96
neg ebp
cmp qword [rbx + 0x240], r13
jne 0x180018ef2
cmp dword [rbx + 0x250], r15d
jne 0x180018ef2
sub eax, dword [rbx + 0x254]
cmp eax, dword [0x180035850]
ja 0x180018ef2
test edi, edi
jne 0x180018ecc
lea edx, [rdi - 0x1a]
mov rcx, r13
call qword [sym.imp.USER32.dll_GetClassLongPtrA]
test al, 8
je 0x180018ef2
xor ecx, ecx
cmp r14d, 2
jg 0x180018ef2
cmp ebp, 2
jg 0x180018ef2
and qword [rbx + 0x258], 0
mov eax, esi
and qword [rbx + 0x250], 0
mov qword [rbx + 0x240], rcx
jmp 0x180018f16
mov rax, qword [rsp + 0x68]
mov qword [rbx + 0x258], rax
mov dword [rbx + 0x250], r15d
mov dword [rbx + 0x254], r12d
mov qword [rbx + 0x240], r13
mov eax, r15d
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x18001a500
Capabilities:
Get common file path

Disassembly:
push rbp
push r14
push r15
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rbx
mov r14, rdx
mov qword [rbp + 0x28], rsi
xor r15d, r15d
mov rsi, rcx
mov qword [rbp + 0x30], rdi
xor ecx, ecx
xor edx, edx
mov ebx, r15d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edi, eax
test eax, eax
jne 0x18001a542
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x18001a651
mov rcx, qword [0x180035658]
lea r8d, [rax + 0x106]
add r8, r8
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x18001a655
lea ecx, [rdi + 1]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x18001a64c
cmp eax, edi
ja 0x18001a64c
add edi, 0x105
mov rdx, rbx
mov r8d, edi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x18001a655
cmp eax, edi
ja 0x18001a655
lea rdx, [0x18002a1c0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
add rsi, 0x774
jne 0x18001a5c6
mov rdi, r15
jmp 0x18001a61d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8d, [rax + 1]
lea ecx, [r8 + r8]
movsxd rdx, ecx
lea rax, [rdx + 0xf]
cmp rax, rdx
ja 0x18001a5ed
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.18000a4a0
sub rsp, rax
or r9d, 0xffffffff
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], r8d
lea rdi, [rsp + 0x30]
mov r8, rsi
mov word [rdi], r15w
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
test r14, r14
je 0x18001a66a
lea rdx, [0x18002a538]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov rdx, r14
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x18001a66a
mov eax, 8
test eax, eax
je 0x18001a66a
mov rcx, qword [0x180035658]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, r15
mov rsi, qword [rbp + 0x28]
mov rax, rbx
mov rbx, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x30]
mov rsp, rbp
pop r15
pop r14
pop rbp
ret

Function at 0x18001a8a0
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
xor edx, edx
mov rdi, rcx
mov rcx, qword [0x180035658]
lea r8d, [rdx + 0x20]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x18001a904
mov qword [rax + 0x18], rdi
lea r8, [0x18001ab88]
mov rcx, qword [rdi + 0x38]
mov r9, rax
mov rdx, qword [rcx + 0x130]
lea rcx, [rax + 0x10]
and dword [rax + 0x14], 0
mov qword [rsp + 0x28], rcx
xor ecx, ecx
and dword [rsp + 0x20], 0
mov qword [rax], rdx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 8], rax
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x18001a974
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor r8d, r8d
xor edx, edx
mov rsi, rcx
xor edi, edi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov ebx, eax
test eax, eax
je 0x18001a9f8
mov rcx, qword [0x180035658]
mov r8d, ebx
add r8, r8
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x18001aa97
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x18001a9d5
cmp eax, ebx
jbe 0x18001aaa2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x180035658]
mov r8, rdi
xor edx, edx
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor edi, edi
mov ecx, ebx
jmp 0x18001aa9c
call fcn.18000add8
cmp eax, 5
ja 0x18001aaa2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xcb
jne 0x18001aaa2
lea rdx, str.LOCALAPPDATA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x18001aaa2
xor r8d, r8d
lea rcx, str.USERPROFILE
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov ebx, eax
test eax, eax
je 0x18001aaa2
mov rcx, qword [0x180035658]
lea r8, [rbx*2 + 0x42]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x18001aa97
mov r8d, ebx
lea rcx, str.USERPROFILE
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x18001a9d5
cmp eax, ebx
ja 0x18001a9d5
lea rdx, str.Local_SettingsApplication_Data
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x18001aaa2
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x18001b11c
Capabilities:
Log keystrokes via polling
Shutdown system

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov ebx, ecx
lea rcx, str.advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.LookupPrivilegeValueA
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.advapi32.dll
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.AdjustTokenPrivileges
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
or qword [rsp + 0x58], 0xffffffffffffffff
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
xor r8d, r8d
lea r9, [rsp + 0x58]
mov rcx, rax
lea edx, [r8 + 0x20]
call qword [sym.imp.ADVAPI32.dll_OpenThreadToken]
xor ebp, ebp
test eax, eax
jne 0x18001b1b4
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0x58]
lea edx, [rbp + 0x20]
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x18001b208
lea r8, [rsp + 0x34]
mov dword [rsp + 0x30], 1
lea rdx, str.SeShutdownPrivilege
mov dword [rsp + 0x3c], 2
xor ecx, ecx
call rdi
test eax, eax
je 0x18001b1fd
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0x30]
mov qword [rsp + 0x28], rbp
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rbp
call rsi
test eax, eax
je 0x18001b1fd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18001b21b
or ebx, 4
xor edx, edx
mov ecx, ebx
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
jmp qword [sym.imp.USER32.dll_ExitWindowsEx]
sub rsp, 0x28
movzx ecx, dx
cmp ecx, 0x6c
ja 0x18001b3bd
je 0x18001b3b2
sub ecx, 0x64
je 0x18001b3a9
sub ecx, 1
je 0x18001b3a0
sub ecx, 1
je 0x18001b395
sub ecx, 1
je 0x18001b38c
sub ecx, 1
je 0x18001b379
sub ecx, 2
je 0x18001b370
cmp ecx, 1
jne 0x18001b419
lea rdx, str.compmgmt.msc
lea rcx, str.mmc.exe
jmp 0x18001b414
lea rdx, str.diskmgmt.msc
jmp 0x18001b364
lea rdx, str._name_Microsoft.DeviceManager
lea rcx, str.control.exe
jmp 0x18001b414
lea rdx, str._name_Microsoft.System
jmp 0x18001b380
xor edx, edx
lea rcx, str.eventvwr.exe
jmp 0x18001b414
lea rdx, str._name_Microsoft.PowerOptions
jmp 0x18001b380
lea rdx, str._name_Microsoft.ProgramsAndFeatures
jmp 0x18001b380
xor edx, edx
lea rcx, str.cmd.exe
jmp 0x18001b414
sub ecx, 0x6d
je 0x18001b406
sub ecx, 1
je 0x18001b3ff
sub ecx, 1
je 0x18001b3f4
sub ecx, 3
je 0x18001b3e6
sub ecx, 1
je 0x18001b3df
cmp ecx, 1
jne 0x18001b419
xor ecx, ecx
jmp 0x18001b3eb
mov ecx, 2
jmp 0x18001b3eb
mov ecx, 1
add rsp, 0x28
jmp 0x18001b11c
xor edx, edx
lea rcx, [0x180029178]
jmp 0x18001b414
xor edx, edx
jmp 0x18001b380
lea rdx, [0x18002b390]
lea rcx, str.taskmgr.exe
call fcn.180020890
add rsp, 0x28
ret
Function at 0x18001b324
Capabilities:
Log keystrokes via polling
Shutdown system

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov ebx, ecx
lea rcx, str.advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.LookupPrivilegeValueA
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.advapi32.dll
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.AdjustTokenPrivileges
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
or qword [rsp + 0x58], 0xffffffffffffffff
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
xor r8d, r8d
lea r9, [rsp + 0x58]
mov rcx, rax
lea edx, [r8 + 0x20]
call qword [sym.imp.ADVAPI32.dll_OpenThreadToken]
xor ebp, ebp
test eax, eax
jne 0x18001b1b4
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0x58]
lea edx, [rbp + 0x20]
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x18001b208
lea r8, [rsp + 0x34]
mov dword [rsp + 0x30], 1
lea rdx, str.SeShutdownPrivilege
mov dword [rsp + 0x3c], 2
xor ecx, ecx
call rdi
test eax, eax
je 0x18001b1fd
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0x30]
mov qword [rsp + 0x28], rbp
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rbp
call rsi
test eax, eax
je 0x18001b1fd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18001b21b
or ebx, 4
xor edx, edx
mov ecx, ebx
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
jmp qword [sym.imp.USER32.dll_ExitWindowsEx]
sub rsp, 0x28
movzx ecx, dx
cmp ecx, 0x6c
ja 0x18001b3bd
je 0x18001b3b2
sub ecx, 0x64
je 0x18001b3a9
sub ecx, 1
je 0x18001b3a0
sub ecx, 1
je 0x18001b395
sub ecx, 1
je 0x18001b38c
sub ecx, 1
je 0x18001b379
sub ecx, 2
je 0x18001b370
cmp ecx, 1
jne 0x18001b419
lea rdx, str.compmgmt.msc
lea rcx, str.mmc.exe
jmp 0x18001b414
lea rdx, str.diskmgmt.msc
jmp 0x18001b364
lea rdx, str._name_Microsoft.DeviceManager
lea rcx, str.control.exe
jmp 0x18001b414
lea rdx, str._name_Microsoft.System
jmp 0x18001b380
xor edx, edx
lea rcx, str.eventvwr.exe
jmp 0x18001b414
lea rdx, str._name_Microsoft.PowerOptions
jmp 0x18001b380
lea rdx, str._name_Microsoft.ProgramsAndFeatures
jmp 0x18001b380
xor edx, edx
lea rcx, str.cmd.exe
jmp 0x18001b414
sub ecx, 0x6d
je 0x18001b406
sub ecx, 1
je 0x18001b3ff
sub ecx, 1
je 0x18001b3f4
sub ecx, 3
je 0x18001b3e6
sub ecx, 1
je 0x18001b3df
cmp ecx, 1
jne 0x18001b419
xor ecx, ecx
jmp 0x18001b3eb
mov ecx, 2
jmp 0x18001b3eb
mov ecx, 1
add rsp, 0x28
jmp 0x18001b11c
xor edx, edx
lea rcx, [0x180029178]
jmp 0x18001b414
xor edx, edx
jmp 0x18001b380
lea rdx, [0x18002b390]
lea rcx, str.taskmgr.exe
call fcn.180020890
add rsp, 0x28
ret
Function at 0x18001b5ec
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, rcx
call fcn.18000add8
cmp eax, 6
ja 0x18001b613
call fcn.18000add8
cmp eax, 6
jne 0x18001b648
call fcn.18000ade0
cmp eax, 1
jbe 0x18001b648
cmp dword [rbx + 0x220], 0
jne 0x18001b648
lea rax, [rbx + 0x228]
mov r9, rbx
mov qword [rsp + 0x28], rax
lea r8, [0x18001b650]
and dword [rsp + 0x20], 0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 0x230], rax
add rsp, 0x30
pop rbx
ret

Function at 0x18001b6c4
Capabilities:
Log keystrokes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
and dword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
mov rcx, rbx
mov esi, eax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebx, eax
test eax, eax
je 0x18001b751
mov edx, dword [rdi + 0x28c]
test edx, edx
je 0x18001b72d
cmp edx, eax
jne 0x18001b714
mov ecx, dword [rsp + 0x40]
cmp dword [rdi + 0x290], ecx
je 0x18001b72d
xor r8d, r8d
mov ecx, esi
call qword [sym.imp.USER32.dll_AttachThreadInput]
and dword [rdi + 0x28c], 0
and dword [rdi + 0x290], 0
mov r8d, 1
mov edx, ebx
mov ecx, esi
call qword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
je 0x18001b751
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x290], eax
mov dword [rdi + 0x28c], ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x18001b908
Capabilities:
Log keystrokes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [rbx + 0x28c]
test edx, edx
je 0x18001b93a
xor r8d, r8d
mov ecx, eax
call qword [sym.imp.USER32.dll_AttachThreadInput]
and dword [rbx + 0x28c], 0
and dword [rbx + 0x290], 0
add rsp, 0x20
pop rbx
ret
Function at 0x18001c170
Capabilities:
Log keystrokes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x40
lea r14, [rcx + 0x88]
mov rsi, rcx
mov rcx, r14
mov rbx, rdx
call fcn.18001c050
xor r15d, r15d
test eax, eax
je 0x18001c2de
lea edx, [r15 - 0x10]
mov dword [rsp + 0x60], r15d
mov rcx, rbx
mov edi, r15d
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
shr rax, 0x1e
test al, 1
je 0x18001c1d5
lea edx, [r15 + 1]
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetAncestor]
mov rbx, rax
mov rcx, rsi
call fcn.18001f480
mov rbp, rax
cmp rax, rbx
je 0x18001c2de
mov rcx, rbx
call fcn.18001b764
test eax, eax
je 0x18001c2de
mov rdx, rbx
mov rcx, r14
call fcn.18001bb64
test al, 0x15
jne 0x18001c2de
xor edx, edx
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
movzx r9d, r15w
mov dword [rsp + 0x20], 1
mov edx, eax
mov r8, rbx
mov rcx, rsi
call fcn.180018cfc
test rbp, rbp
je 0x18001c245
lea rdx, [rsp + 0x60]
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebp, eax
test edi, edi
je 0x18001c261
mov r8d, 1
mov edx, edi
mov ecx, eax
call qword [sym.imp.USER32.dll_AttachThreadInput]
mov rcx, rbx
call qword [sym.imp.USER32.dll_BringWindowToTop]
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetActiveWindow]
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x18001c296
xor r8d, r8d
mov edx, edi
mov ecx, ebp
call qword [sym.imp.USER32.dll_AttachThreadInput]
cmp dword [rsi + 0x1dc], r15d
je 0x18001c2de
mov dword [rsp + 0x30], 3
xor r9d, r9d
mov dword [rsp + 0x28], r15d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], r15d
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r8d, 1
mov rdx, rbx
mov rcx, rsi
call fcn.180022424
mov rdx, rbx
mov rcx, rsi
call fcn.18001f4bc
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret