joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000e6c4
Capabilities:
Delete registry value
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x10], rdx
push rsi
push rdi
push r14
sub rsp, 0x40
xor r14d, r14d
mov rbx, r9
mov qword [rax + 0x10], r14
mov rbp, r8
mov esi, ecx
mov edi, r14d
test r8, r8
je 0x14000e7d1
test rbx, rbx
jne 0x14000e703
test ecx, ecx
je 0x14000e7d1
lea r8, [rsp + 0x68]
mov rcx, 0xffffffff80000001
lea rdx, str.Environment
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x14000e7b6
test esi, esi
je 0x14000e738
mov rcx, qword [rsp + 0x68]
mov rdx, rbp
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x14000e782
mov rax, rbx
test rbx, rbx
jne 0x14000e745
mov rax, r14
jmp 0x14000e75b
cmp word [rbx], r14w
je 0x14000e755
add rax, 2
cmp word [rax], r14w
jne 0x14000e74b
sub rax, rbx
sar rax, 1
mov rcx, qword [rsp + 0x68]
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rbx
mov rdx, rbp
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
sete dil
test edi, edi
je 0x14000e7b6
xor r8d, r8d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x3e8
mov r9, rbp
mov ecx, 0xffff
mov dword [rsp + 0x20], 1
lea edx, [r8 + 0x1a]
call qword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14000e7d1
call qword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, qword [rsp + 0x60]
mov eax, edi
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x14000e7e8
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov dword [rax + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rax - 0x178]
sub rsp, 0x250
xor r14d, r14d
mov rsi, r9
mov qword [rbp + 0x190], r14
mov ebx, r14d
test r9, r9
je 0x14000e991
xor eax, eax
lea rdi, [rsp + 0x40]
mov ecx, 0x208
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [rbp + 0x180]
mov dword [rbp + 0x180], eax
call qword [sym.imp.ntdll.dll_RtlRandomEx]
mov dword [rbp + 0x188], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
not eax
lea rcx, [rbp + 0x180]
mov dword [rbp + 0x180], eax
call qword [sym.imp.ntdll.dll_RtlRandomEx]
mov dword [rbp + 0x18c], eax
lea rdx, [rsp + 0x40]
mov rcx, qword [rbp + 0x188]
call fcn.14000f860
mov rdi, 0xffffffff80000001
lea r8, [rsp + 0x40]
mov rcx, rdi
lea rdx, str.Environment
call qword [sym.imp.ADVAPI32.dll_RegRenameKey]
test eax, eax
jne 0x14000e972
lea r8, [rbp + 0x190]
mov rcx, rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x14000e92b
mov rax, rsi
cmp word [rsi], r14w
je 0x14000e8d2
add rax, 2
cmp word [rax], r14w
jne 0x14000e8c8
mov rcx, qword [rbp + 0x190]
lea rdx, str.windir
sub rax, rsi
mov r9d, 1
sar rax, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x190]
test eax, eax
sete bl
call qword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov rcx, qword [rbp + 0x190]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp + 0x190], r14
lea r8, str.Environment
mov rcx, rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegRenameKey]
test ebx, ebx
je 0x14000e972
xor r8d, r8d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x3e8
lea r9, str.windir
mov ecx, 0xffff
mov dword [rsp + 0x20], 1
lea edx, [r8 + 0x1a]
call qword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov rcx, qword [rbp + 0x190]
test rcx, rcx
je 0x14000e991
call qword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov rcx, qword [rbp + 0x190]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
add rsp, 0x250
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
Function at 0x14000e9a4
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rax - 0x57]
sub rsp, 0xa0
xor r14d, r14d
mov rdi, r9
mov qword [rbp + 0x5f], r14
mov ecx, r14d
mov qword [rbp + 0x67], rcx
mov esi, r14d
mov qword [rbp - 0x29], r14
mov ebx, 0xc0000001
test r9, r9
je 0x14000eb3e
lea rcx, [rbp - 0x31]
call qword [sym.imp.ntdll.dll_RtlFormatCurrentUserKeyPath]
mov ebx, eax
test eax, eax
js 0x14000eb3a
lea rax, [rbp - 0x31]
mov dword [rbp - 1], 0x30
xorps xmm0, xmm0
mov qword [rbp + 0xf], rax
lea r8, [rbp - 1]
mov qword [rbp + 7], r14
mov edx, 0x2000000
mov dword [rbp + 0x17], 0x40
lea rcx, [rbp + 0x5f]
movdqu xmmword [rbp + 0x1f], xmm0
lea esi, [r14 + 1]
call qword [sym.imp.ntdll.dll_NtOpenKey]
mov ebx, eax
test eax, eax
js 0x14000eb3a
lea rdx, str.Environment
lea rcx, [rbp - 0x21]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov rax, qword [rbp + 0x5f]
lea r8, [rbp - 1]
mov qword [rbp + 7], rax
lea rcx, [rbp + 0x67]
lea rax, [rbp - 0x21]
mov edx, 0x2000000
mov qword [rbp + 0xf], rax
call qword [sym.imp.ntdll.dll_NtOpenKey]
mov ebx, eax
test eax, eax
js 0x14000eb3a
lea rdx, str.Path
lea rcx, [rbp - 0x11]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov r9, qword [rbp + 0x7f]
test r9, r9
je 0x14000eaca
mov rax, qword [0x14002ea90]
lea r8d, [r14 + 2]
lea rdx, str.Path
mov dword [rbp + 0x6f], r14d
mov rcx, qword [rax + 0x18]
lea rax, [rbp + 0x6f]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rbp + 0x67]
mov qword [rsp + 0x20], rax
call fcn.14000dd38
mov rax, rdi
cmp word [rdi], r14w
je 0x14000eadd
add rax, 2
cmp word [rax], r14w
jne 0x14000ead3
mov rcx, qword [rbp + 0x67]
lea rdx, [rbp - 0x11]
sub rax, rdi
mov r9d, 2
sar rax, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ntdll.dll_NtSetValueKey]
mov ebx, eax
test eax, eax
js 0x14000eb3a
xor r8d, r8d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x3e8
lea r9, str.Path
mov ecx, 0xffff
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0x1a]
call qword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov rcx, qword [rbp + 0x67]
test rcx, rcx
je 0x14000eb49
call qword [sym.imp.ntdll.dll_NtClose]
mov rcx, qword [rbp + 0x5f]
test rcx, rcx
je 0x14000eb58
call qword [sym.imp.ntdll.dll_NtClose]
test esi, esi
je 0x14000eb66
lea rcx, [rbp - 0x31]
call qword [sym.imp.ntdll.dll_RtlFreeUnicodeString]
not ebx
shr ebx, 0x1f
mov eax, ebx
add rsp, 0xa0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
Function at 0x14000ed8c
Capabilities:
Access pe header

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r14d, r9d
mov r15, r8
mov r12d, edx
mov rbp, rcx
xor ebx, ebx
call qword [sym.imp.ntdll.dll_RtlImageNtHeader]
mov rdi, rax
test rax, rax
je 0x14000ee25
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], ebx
mov rcx, rbp
call fcn.140001770
mov rsi, rax
test rax, rax
je 0x14000ee25
mov rdx, r15
mov rcx, rax
call fcn.140001900
test rax, rax
je 0x14000ee14
sub eax, esi
mov dword [rdi + 0x28], eax
test r14d, r14d
je 0x14000ee01
mov eax, 0xdfff
and word [rdi + 0x16], ax
mov edx, r12d
mov rcx, rbp
call fcn.14000df50
mov dword [rdi + 0x58], eax
mov ebx, 1
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rbp, qword [rsp + 0x58]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret

Function at 0x14000f054
Capabilities:
Enumerate processes via ntquerysysteminformation
Get system information on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0x20
mov rcx, qword [0x14002ea90]
mov edi, 0x1000
and dword [rsp + 0x30], 0
mov r8d, edi
mov edx, 8
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov rbx, rax
test rax, rax
je 0x14000f112
jmp 0x14000f0d1
mov rcx, qword [0x14002ea90]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
lea eax, [rdi + rdi]
mov edi, eax
cmp eax, 0x20000000
ja 0x14000f112
mov rcx, qword [0x14002ea90]
mov r8d, edi
mov edx, 8
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov rbx, rax
lea r9, [rsp + 0x30]
mov r8d, edi
mov rdx, rax
mov ecx, 5
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, 0xc0000004
je 0x14000f093
test eax, eax
js 0x14000f0f7
mov rax, rbx
jmp 0x14000f114
test rbx, rbx
je 0x14000f112
mov rcx, qword [0x14002ea90]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140010228
Capabilities:
Create process on windows
Spoof parent pid

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], r9
mov qword [rax + 8], rcx
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x47]
sub rsp, 0xe0
mov rsi, qword [rbp + 0x7f]
xor r12d, r12d
mov rbx, r8
mov r15, rdx
mov r14d, r12d
test rsi, rsi
je 0x140010266
mov qword [rsi], r12
xor eax, eax
lea rdi, [rbp - 0x71]
lea ecx, [rax + 0x18]
rep stosb byte [rdi], al
lea rdi, [rbp - 0x51]
lea ecx, [rax + 0x70]
rep stosb byte [rdi], al
test rbx, rbx
jne 0x140010288
mov r8, r12
jmp 0x140010294
add r8, 2
cmp word [r8], r12w
jne 0x140010284
sub r8, rbx
sar r8, 1
mov rcx, qword [0x14002ea90]
lea r8, [r8*2 + 2]
mov edx, 8
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov rdi, rax
test rax, rax
je 0x14001040a
mov rdx, rbx
mov rcx, rax
call fcn.140001af4
mov r8d, 0x30
mov dword [rbp - 0x51], 0x70
mov qword [rbp + 0x67], r8
lea ebx, [r8 - 0x28]
cmp r8, 0x400
ja 0x1400103f4
mov rcx, qword [0x14002ea90]
mov edx, ebx
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov qword [rbp + 0x17], rax
test rax, rax
je 0x1400103e0
xor r8d, r8d
lea r9, [rbp + 0x67]
mov rcx, rax
lea edx, [r8 + 1]
call qword [sym.imp.KERNEL32.dll_InitializeProcThreadAttributeList]
test eax, eax
je 0x1400103c9
mov rcx, qword [rbp + 0x17]
lea r9, [rbp + 0x4f]
mov qword [rsp + 0x30], r12
xor edx, edx
mov qword [rsp + 0x28], r12
mov r8d, 0x20000
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_UpdateProcThreadAttribute]
test eax, eax
je 0x1400103b7
lea rax, [rbp - 0x71]
mov dword [rbp - 0x15], 1
mov qword [rsp + 0x48], rax
xor r9d, r9d
lea rax, [rbp - 0x51]
mov word [rbp - 0x11], r12w
mov qword [rsp + 0x40], rax
xor r8d, r8d
mov qword [rsp + 0x38], r12
mov rdx, rdi
mov qword [rsp + 0x30], r12
mov rcx, r15
mov dword [rsp + 0x28], 0xc080024
mov dword [rsp + 0x20], r12d
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x1400103b7
mov r14, qword [rbp - 0x71]
test rsi, rsi
je 0x1400103ad
mov rax, qword [rbp - 0x69]
mov qword [rsi], rax
jmp 0x1400103b7
mov rcx, qword [rbp - 0x69]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8, qword [rbp + 0x17]
test r8, r8
je 0x1400103cd
mov rcx, r8
call qword [sym.imp.KERNEL32.dll_DeleteProcThreadAttributeList]
mov r8, qword [rbp + 0x17]
mov rcx, qword [0x14002ea90]
xor edx, edx
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1400103f4
mov r8, qword [rbp + 0x67]
jmp 0x1400102de
mov rcx, qword [0x14002ea90]
mov r8, rdi
xor edx, edx
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
lea r11, [rsp + 0xe0]
mov rax, r14
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
Function at 0x14001066c
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5a8]
sub rsp, 0x690
mov r15d, 0x104
mov r8, rcx
mov rsi, rcx
mov ebx, 1
mov r9d, r15d
lea rcx, [rbp + 0x380]
mov edx, r15d
mov edi, ebx
call fcn.140001b34
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x1400106d6
mov r8d, r15d
lea rdx, [0x140027c18]
lea rcx, [rbp + 0x380]
call fcn.140010570
lea rdx, [rbp + 0x130]
lea rcx, [rbp + 0x380]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x14001076f
test ebx, ebx
je 0x14001076f
mov r9, r15
lea rcx, [rsp + 0x20]
mov r8, rsi
mov rdx, r15
call fcn.140001b34
mov r8, r15
lea rdx, [rbp + 0x15c]
lea rcx, [rsp + 0x20]
call fcn.140010570
test byte [rbp + 0x130], 0x10
je 0x140010750
cmp word [rbp + 0x15c], 0x2e
je 0x14001075b
lea rcx, [rsp + 0x20]
call fcn.14001066c
lea rcx, [rsp + 0x20]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
neg ebx
sbb eax, eax
and edi, eax
jmp 0x14001075b
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rbp + 0x130]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ebx, eax
jmp 0x1400106f3
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x140010794
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
neg eax
sbb ecx, ecx
and edi, ecx
lea r11, [rsp + 0x690]
mov eax, edi
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x1400107b4
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x50
xor esi, esi
lea r8, [rbp - 0x10]
lea rdx, [0x14001b980]
mov qword [rbp - 0x10], rsi
mov qword [rbp - 0x20], rsi
mov rbx, rcx
call qword [sym.imp.SHELL32.dll_SHAssocEnumHandlersForProtocolByApplication]
test eax, eax
js 0x140010980
mov rcx, qword [rbp - 0x10]
lea r9, [rbp + 0x28]
mov dword [rbp + 0x28], esi
lea r8, [rbp - 0x18]
mov qword [rbp - 0x18], rsi
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x18]
test eax, eax
js 0x14001096d
cmp dword [rbp + 0x28], esi
je 0x140010976
mov rcx, qword [rbp - 0x18]
lea r8, [rbp - 0x20]
lea rdx, [0x14001b970]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x140010963
mov rcx, qword [rbp - 0x20]
lea rdx, [rbp + 0x38]
mov qword [rbp + 0x38], rsi
mov rax, qword [rcx]
call qword [rax + 0x20]
test eax, eax
js 0x140010959
mov rdx, qword [rbp + 0x38]
test rdx, rdx
je 0x140010959
mov rax, rbx
test rbx, rbx
jne 0x14001086c
mov rax, rsi
jmp 0x140010880
cmp word [rbx], si
je 0x14001087a
add rax, 2
cmp word [rax], si
jne 0x140010871
sub rax, rbx
sar rax, 1
mov rcx, rdx
cmp word [rdx], si
je 0x140010891
add rcx, 2
cmp word [rcx], si
jne 0x140010888
sub rcx, rdx
mov edx, 8
sar rcx, 1
lea r8, [rcx + rax]
mov rcx, qword [0x14002ea90]
lea r8, [r8*2 + 8]
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov rdi, rax
test rax, rax
je 0x14001094f
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x1400108ee
cmp rax, rcx
je 0x1400108ee
mov rdx, rax
jmp 0x1400108e3
mov word [rdx], ax
lea rcx, [rcx + 2]
add rdx, 2
movzx eax, word [rcx]
test ax, ax
jne 0x1400108d8
mov word [rdx], si
lea rdx, [0x140027c20]
mov rcx, rdi
call fcn.140001ab8
mov rdx, rbx
mov rcx, rdi
call fcn.140001ab8
lea rax, [rbp + 0x30]
mov dword [rsp + 0x28], 4
mov r9d, 4
mov qword [rsp + 0x20], rax
mov r8, rdi
mov dword [rbp + 0x30], esi
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionApplicationAssociationToasts
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegSetKeyValueW]
mov rcx, qword [0x14002ea90]
mov r8, rdi
xor edx, edx
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rcx, qword [rbp + 0x38]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rbp - 0x20]
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov rcx, qword [rbp - 0x18]
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
cmp dword [rbp + 0x28], esi
jne 0x1400107ed
mov rcx, qword [rbp - 0x10]
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov rbx, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret

Function at 0x140011100
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140011128
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x140011128
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x140011338
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x1400113a7
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400113a7
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400113a7
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400113a7
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400113a7
cmp dword [rcx + 0x84], 0xe
jbe 0x1400113a7
cmp dword [rcx + 0xf8], 0
je 0x1400113a7
mov ecx, ebx
call fcn.140011458
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.140011234
nop
cmp dword [rbp + 0x20], 0
je 0x1400113f5
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140011400
int3
xor r8d, r8d
lea edx, [r8 + 2]
jmp 0x140011338
Function at 0x100403a20
Capabilities:
Encode data using xor

Disassembly:
xor al, 0x6c
xor al, 0x64
xor al, 0x67
xor al, 0x41
xor al, 0x3e
xor al, 0x7d
xor al, 0xa2
xor al, 0x9a
xor al, 0xa3
xor al, 0x88
xor al, 0x9d
xor al, 0xa4
xor al, 0x71
xor al, 0x74
xor al, 0x59
xor al, 0x87
xchg dword [rbp*4 - 0x57cb58cc], esi
xor al, 0x99
xor al, 0xa1
xor al, 0x86
xor al, 0xa3
xor al, 0xa3
movabs dword [0xa73490345934a834], eax
xor al, 0xad
xor al, 0xa7
xor al, 0xa8
xor al, 0x99
cdq
xor al, 0xa1
xor al, 0x67
xor al, 0x66
xor al, 0x90
xor al, 0xa7
xor al, 0x9c
xor al, 0x99
xor al, 0xa0
xor al, 0xa0
xor al, 0x67
xor al, 0x66
xor al, 0x62

Function at 0x140585058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x1405851df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x140585089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14058506f
add dl, dl
jne 0x140585096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1405850f6
xor eax, eax
add dl, dl
jne 0x1405850a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1405851ad
add dl, dl
jne 0x1405850b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1405850c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1405850d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1405850dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x1405850ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x14058507e
mov eax, 1
add dl, dl
jne 0x140585106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140585113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1405850fb
sub eax, ebx
mov ebx, 1
jne 0x14058514c
mov ecx, 1
add dl, dl
jne 0x14058512e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14058513b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140585123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14058507e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x140585168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140585175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14058515d
cmp eax, 0x7d00
jae 0x14058519b
cmp eax, 0x500
jb 0x140585196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14058507e
cmp eax, 0x7f
ja 0x14058519e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14058507e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x1405851d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x14058507e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140001230
Capabilities:
Acquire debug privileges

Disassembly:
push rdi
sub rsp, 0x60
mov rax, qword [0x140005040]
xor rax, rsp
mov qword [rsp + 0x50], rax
movzx edi, cl
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 0x28
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x140001288
lea r8, [rsp + 0x38]
xor ecx, ecx
lea rdx, str.SeDebugPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
mov rcx, qword [rsp + 0x30]
test eax, eax
jne 0x1400012b9
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str.Could_not_enable_SE_DEBUG_NAME_privilege_
mov r9d, 0x30
lea r8, str.Error
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400017a0
add rsp, 0x60
pop rdi
ret
mov rax, qword [rsp + 0x38]
lea r8, [rsp + 0x40]
mov qword [rsp + 0x44], rax
mov r9d, 0x10
xor eax, eax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x4c], 2
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 1
mov rbx, qword [rsp + 0x70]
jne 0x140001288
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
jne 0x140001330
lea rdx, str.Could_not_load_ntdll.dll_
jmp 0x14000128f
lea rdx, str.RtlSetProcessIsCritical
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x140001351
lea rdx, str.Could_not_obtain_function_from_ntdll_
jmp 0x14000128f
xor r8d, r8d
xor edx, edx
test dil, dil
je 0x140001372
mov cl, 1
call rax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400017a0
add rsp, 0x60
pop rdi
ret
xor ecx, ecx
call rax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400017a0
add rsp, 0x60
pop rdi
ret

Function at 0x1400022e4
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14000232e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14000232e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], reloc.api_ms_win_crt_runtime_l1_1_0.dll__get_initial_narrow_environment
jne 0x14000232e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14000232e
cmp dword [rcx + 0x84], 0xe
jbe 0x14000232e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140002330
xor al, al
add rsp, 0x28
ret
Function at 0x140002290
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0xc0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
add rcx, 0x48
xorps xmm0, xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
mov rdx, rbp
mov r8d, 0x20
call fcn.140006670
test rax, rax
je 0x1400022fb
mov qword [rbp + 0x28], rax
mov rcx, rax
mov qword [rbp + 0x30], rdx
call qword [rdx]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140002344
mov r8, qword [rax + 0x10]
mov rcx, qword [rbp + 0x28]
call fcn.140003bc0
jmp 0x140002344
movaps xmm0, xmmword [rbp]
movaps xmm1, xmmword [rbp + 0x10]
movaps xmmword [rbp - 0x10], xmm1
movaps xmmword [rbp - 0x20], xmm0
lea rcx, [rbp - 0x50]
lea r8, [0x14003461c]
lea rdx, [rbp - 0x20]
mov r9d, 8
call fcn.140006450
mov rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
movaps xmm0, xmmword [rbp - 0x50]
movaps xmm1, xmmword [rbp - 0x40]
movaps xmm2, xmmword [rbp - 0x30]
movaps xmmword [rdi], xmm0
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi + 0x20], xmm2
mov qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov edx, 6
mov r8, rsi
add rsp, 0xc0
pop rdi
pop rsi
pop rbp
jmp fcn.140003f60