joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40148a
Capabilities:
Delete registry key
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x260
mov edi, r8d
mov ebx, r8d
lea r9, [rsp + 0x48]
mov r12, rcx
and edi, 0x300
mov r13, rdx
mov r8d, edi
or r8d, 9
call fcn.00406f5b
test eax, eax
jne 0x401586
test bl, 2
lea rsi, [rsp + 0x56]
je 0x401518
xor edx, edx
mov rcx, qword [rsp + 0x48]
lea r9, [rsp + 0x44]
mov r8, rsi
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
jne 0x401557
mov r14d, ebx
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
and r14d, 1
jmp 0x401537
mov r8d, ebx
mov rdx, rsi
call fcn.0040148a
test eax, eax
jne 0x401569
xor edx, edx
mov rcx, qword [rsp + 0x48]
mov r9d, 0x105
mov r8, rsi
call rbp
test eax, eax
jne 0x401569
mov rcx, qword [rsp + 0x48]
test r14d, r14d
je 0x401528
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x3eb
jmp 0x401586
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r9d, r9d
mov r8d, edi
mov rdx, r13
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyExW]
add rsp, 0x260
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret

Function at 0x4035d7
Capabilities:
Hide graphical window

Disassembly:
sub rsp, 0x38
mov r8d, ecx
mov rcx, qword [0x0042b9c0]
test r8d, r8d
je 0x403602
test rcx, rcx
je 0x4035f5
call qword [sym.imp.USER32.dll_DestroyWindow]
mov qword [0x0042b9c0], 0
jmp 0x403662
test rcx, rcx
je 0x403612
xor ecx, ecx
add rsp, 0x38
jmp fcn.004079f4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [0x00417940]
jbe 0x403662
mov rax, qword [0x0040c100]
lea r9, [0x00403540]
xor r8d, r8d
mov edx, 0x6f
mov qword [rsp + 0x20], 0
mov rcx, qword [rax]
call qword [sym.imp.USER32.dll_CreateDialogParamW]
mov edx, 5
mov rcx, rax
mov qword [0x0042b9c0], rax
add rsp, 0x38
jmp qword [sym.imp.USER32.dll_ShowWindow]
add rsp, 0x38
ret

Function at 0x403667
Capabilities:
Read file on windows

Disassembly:
mov r8d, edx
mov rdx, rcx
mov rcx, qword [0x0040a020]
jmp fcn.00406dda
Function at 0x40368f
Capabilities:
Check for time delay via gettickcount

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov ebx, 0x8000
lea rdi, [0x0041b9c0]
test r8, r8
mov qword [rsp + 0x118], rdx
mov r13, r8
mov r12d, r9d
cmovne ebx, r9d
cmovne rdi, r8
test ecx, ecx
js 0x4036da
movsxd rcx, ecx
add rcx, qword [0x004179b4]
call fcn.00403679
lea rcx, [rsp + 0x3c]
mov edx, 4
call fcn.00403667
test eax, eax
je 0x4038b4
mov r9d, dword [rsp + 0x3c]
test r9d, r9d
jns 0x4038c4
mov r15, qword [sym.imp.KERNEL32.dll_GetTickCount]
xor r12d, r12d
call r15
mov ebp, dword [rsp + 0x3c]
mov dword [0x0042ba00], 8
mov qword [0x0042bf24], 0
mov r14d, eax
lea rax, [0x0042d5ac]
mov qword [0x004355c0], rax
and ebp, 0x7fffffff
mov qword [0x004355b8], rax
add rax, 0x8000
mov qword [0x004355b0], rax
mov dword [rsp + 0x3c], ebp
mov esi, dword [rsp + 0x3c]
test esi, esi
jle 0x4038f3
cmp esi, 0x4000
mov eax, 0x4000
lea rcx, [0x004179c0]
cmovg esi, eax
mov edx, esi
call fcn.00403667
test eax, eax
je 0x4038b4
lea rax, [0x004179c0]
sub dword [rsp + 0x3c], esi
mov qword [0x0042b9e0], rax
mov dword [0x0042b9e8], esi
lea rcx, [0x0042b9e0]
mov qword [0x0042b9f0], rdi
mov dword [0x0042b9f8], ebx
call fcn.00407fed
mov dword [rsp + 0x28], eax
test eax, eax
js 0x4038bc
mov rsi, qword [0x0042b9f0]
call r15
mov r9d, eax
mov rax, qword [0x0040c0d0]
sub rsi, rdi
test byte [rax + 0x34], 1
je 0x403835
mov edx, r9d
mov eax, dword [rsp + 0x3c]
sub edx, r14d
cmp edx, 0xc8
ja 0x4037f4
test eax, eax
jne 0x403835
mov ecx, ebp
mov dword [rsp + 0x2c], r9d
lea r14, [rsp + 0x40]
mov r8d, ebp
sub ecx, eax
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov rcx, r14
lea rdx, str....__d__
mov r8d, eax
call qword [sym.imp.USER32.dll_wsprintfW]
mov rdx, r14
xor ecx, ecx
call fcn.00406371
mov r9d, dword [rsp + 0x2c]
mov r14d, r9d
test esi, esi
je 0x403754
test r13, r13
jne 0x403862
mov rcx, qword [rsp + 0x118]
mov r8d, esi
mov rdx, rdi
call fcn.00406e09
test eax, eax
je 0x4038ed
add r12d, esi
jmp 0x40386e
mov rdi, qword [0x0042b9f0]
add r12d, esi
sub ebx, esi
cmp dword [rsp + 0x28], 1
jne 0x40379c
jmp 0x4038f3
mov rcx, qword [rsp + 0x118]
mov r8d, esi
mov rdx, rdi
call fcn.00406e09
test eax, eax
je 0x4038ed
sub dword [rsp + 0x3c], esi
add r12d, esi
mov esi, dword [rsp + 0x3c]
test esi, esi
jle 0x4038f3
cmp esi, ebx
mov rcx, rdi
cmovg esi, ebx
mov edx, esi
call fcn.00403667
test eax, eax
jne 0x40387b
mov r12d, 0xfffffffd
jmp 0x4038f3
mov r12d, 0xfffffffc
jmp 0x4038f3
test r13, r13
jne 0x4038d5
xor r12d, r12d
lea rdi, [0x004179c0]
jmp 0x403899
cmp r9d, r12d
mov rcx, r13
cmovle r12d, r9d
mov edx, r12d
call fcn.00403667
test eax, eax
jne 0x4038f3
jmp 0x4038b4
mov r12d, 0xfffffffe
mov eax, r12d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x403be0
Capabilities:
Get common file path

Disassembly:
push r12
push rbx
sub rsp, 0x28
mov rax, qword [0x0040c160]
mov rbx, qword [rax]
lea r12, [rbx + 0xc800]
mov rcx, r12
call fcn.004071f2
mov rcx, r12
call fcn.00406b5c
test eax, eax
je 0x403c32
mov rcx, r12
call fcn.0040717c
mov rcx, r12
call fcn.004069b3
lea rcx, [rbx + 0xc000]
mov rdx, r12
add rsp, 0x28
pop rbx
pop r12
jmp fcn.00406d6e
xor eax, eax
add rsp, 0x28
pop rbx
pop r12
ret

Function at 0x403c3c
Capabilities:
Delete file

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, qword [0x0040c0c0]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x403c5e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx], 0xffffffffffffffff
call fcn.00404245
mov rax, qword [0x0040c160]
mov edx, 7
mov rcx, qword [rax]
add rcx, 0xd000
add rsp, 0x20
pop rbx
jmp fcn.004076b7
Function at 0x406920
Capabilities:
Create directory

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x60
lea rax, [0x0040b7f0]
mov qword [rsp + 0x40], rax
lea rsi, [rsp + 0x38]
mov r12, rcx
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x48], rax
sub rax, 0x10
mov dword [rsp + 0x38], 0x40001
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x20], 0x18
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x406983
xor eax, eax
jmp 0x4069aa
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbx
cmp eax, 0xb7
jne 0x4069aa
mov r8, rsi
mov edx, 0x80000007
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_SetFileSecurityW]
test eax, eax
jne 0x40697f
call rbx
add rsp, 0x60
pop rbx
pop rsi
pop r12
ret

Function at 0x4069b3
Capabilities:
Create directory

Disassembly:
sub rsp, 0x28
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4069ce
add rsp, 0x28
jmp qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
add rsp, 0x28
ret

Function at 0x4069d5
Capabilities:
Create process on windows

Disassembly:
sub rsp, 0x78
xor r8d, r8d
xor r9d, r9d
mov dword [0x0043d1c0], 0x68
lea rax, [rsp + 0x58]
mov rdx, rcx
xor ecx, ecx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x48], rax
lea rax, [0x0043d1c0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x4000000
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov r8d, eax
xor eax, eax
test r8d, r8d
je 0x406a46
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x58]
add rsp, 0x78
ret

Function at 0x406a4b
Capabilities:
Create process on windows

Disassembly:
mov dword [rcx], 0x70
mov qword [rcx + 0x40], 0
jmp qword [sym.imp.SHELL32.dll_ShellExecuteExW]

Function at 0x406c8f
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push r12
sub rsp, 0x20
mov qword [rsp + 0x30], rcx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov r12d, eax
cmp eax, 0xffffffff
je 0x406cb8
mov edx, eax
mov rcx, qword [rsp + 0x30]
and edx, 0xfffffffe
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, r12d
add rsp, 0x20
pop r12
ret

Function at 0x406cc2
Capabilities:
Delete directory
Delete file
Set file attributes

Disassembly:
push r13
push r12
push rbx
sub rsp, 0x20
mov r12, rcx
mov ebx, edx
call fcn.00406c8f
mov r13d, eax
cmp eax, 0xffffffff
jne 0x406ce1
xor ebx, ebx
jmp 0x406d15
mov rcx, r12
test bl, 1
je 0x406d0d
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x406d06
and ebx, 4
jne 0x406cdd
mov edx, r13d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x406d15
mov ebx, 1
jmp 0x406d15
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x406cef
mov eax, ebx
add rsp, 0x20
pop rbx
pop r12
pop r13
ret
Function at 0x406d21
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
sub rsp, 0x40
mov dword [rsp + 0x58], edx
mov ebx, r8d
mov qword [rsp + 0x50], rcx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x58]
cmp eax, 0xffffffff
jne 0x406d48
xor eax, eax
mov dword [rsp + 0x28], eax
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
add rsp, 0x40
pop rbx
ret

Function at 0x406d6e
Capabilities:
Get common file path

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x38
mov ebx, 0x65
movabs rdi, 0x610073006e
mov r12, rcx
mov rsi, rdx
dec ebx
je 0x406dc3
mov qword [rsp + 0x28], rdi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x1a
xor edx, edx
xor r8d, r8d
div ecx
mov r9, r12
mov rcx, rsi
add word [rsp + 0x2c], dx
lea rdx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x406d8c
jmp 0x406dcd
mov word [r12], 0
xor r12d, r12d
mov rax, r12
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop r12
ret

Function at 0x406dda
Capabilities:
Read file on windows

Disassembly:
push rbx
sub rsp, 0x40
mov qword [rsp + 0x20], 0
mov ebx, r8d
lea r9, [rsp + 0x3c]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x406e03
xor eax, eax
cmp dword [rsp + 0x3c], ebx
sete al
add rsp, 0x40
pop rbx
ret

Function at 0x406e09
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x40
mov qword [rsp + 0x20], 0
mov ebx, r8d
lea r9, [rsp + 0x3c]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x406e32
xor eax, eax
cmp dword [rsp + 0x3c], ebx
sete al
add rsp, 0x40
pop rbx
ret

Function at 0x406edf
Capabilities:
Move file

Disassembly:
sub rsp, 0x28
mov r8d, 5
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rax, qword [0x0040c0d0]
inc dword [rax + 0x10]
add rsp, 0x28
ret

Function at 0x406ff7
Capabilities:
Query or enumerate registry value

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x40
mov r12, r8
mov r8d, dword [rsp + 0x80]
mov dword [rsp + 0x30], 0x800
mov rbx, r9
test r8d, r8d
je 0x407020
mov r8d, 0x200
or r8d, 0x20019
lea r9, [rsp + 0x38]
call fcn.00406f5b
test eax, eax
je 0x40703c
mov word [rbx], 0
jmp 0x407086
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, r12
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x38]
mov esi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov word [rbx + 0x7fe], 0
test esi, esi
jne 0x407035
mov eax, dword [rsp + 0x34]
dec eax
cmp eax, 1
ja 0x407035
add rsp, 0x40
pop rbx
pop rsi
pop r12
ret
Function at 0x407602
Capabilities:
Get file attributes

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdx, rcx
lea rcx, [0x0043c1c0]
call fcn.00407161
lea rcx, [0x0043c1c0]
call fcn.00406b86
mov rbx, rax
test rax, rax
jne 0x407630
xor eax, eax
jmp 0x4076af
mov rcx, rax
call fcn.004071f2
mov rax, qword [0x0040c0f0]
test byte [rax], 0x80
je 0x407652
mov ax, word [rbx]
test ax, ax
je 0x40762c
cmp ax, 0x5c
je 0x40762c
lea rsi, [0x0043c1c0]
mov rdi, qword [sym.imp.KERNEL32.dll_lstrlenW]
sub rbx, rsi
sar rbx, 1
mov rcx, rsi
call rdi
cdqe
cmp rax, rbx
jle 0x40768e
mov rcx, rsi
call fcn.004075d4
test rax, rax
je 0x407684
test byte [rax], 0x10
je 0x40762c
mov rcx, rsi
call fcn.00406b1f
jmp 0x407666
lea rcx, [0x0043c1c0]
call fcn.0040717c
lea rcx, [0x0043c1c0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
inc eax
setne al
movzx eax, al
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
Function at 0x4076b7
Capabilities:
Delete file

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x288
mov edi, edx
mov r12, rcx
mov esi, edx
call fcn.00407602
and edi, 4
mov ebp, eax
test sil, 8
je 0x4076fd
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rdx, qword [0x0040c0d0]
cmp eax, 1
adc dword [rdx + 8], 0
jmp 0x4078cc
mov r14d, esi
and r14d, 1
je 0x407718
test eax, eax
je 0x4078b2
test sil, 2
je 0x40786f
mov rdx, r12
lea rcx, [0x0043c9c0]
call fcn.00407161
test r14d, r14d
je 0x407741
lea rdx, str..
lea rcx, [0x0043c9c0]
call sub.KERNEL32.dll_lstrcatW
jmp 0x407749
mov rcx, r12
call fcn.00406b1f
cmp word [r12], 0
jne 0x40775b
cmp word [0x0043c9c0], 0x5c
jne 0x40776a
lea rdx, [0x0040b600]
mov rcx, r12
call sub.KERNEL32.dll_lstrcatW
mov rcx, r12
lea r15, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, r15
lea rcx, [0x0043c9c0]
movsxd rbx, eax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
add rbx, rbx
add rbx, r12
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x407860
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
mov rax, qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov qword [rsp + 0x20], rax
cmp word [rsp + 0x5c], 0x2e
jne 0x4077d4
mov ax, word [rsp + 0x5e]
test ax, ax
je 0x407842
cmp ax, 0x2e
jne 0x4077d4
cmp word [rsp + 0x60], 0
je 0x407842
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.00407161
test byte [rsp + 0x30], 0x10
je 0x4077fe
mov eax, esi
and eax, 3
cmp eax, 3
jne 0x407842
mov edx, esi
mov rcx, r12
call fcn.004076b7
jmp 0x407842
mov edx, edi
mov rcx, r12
call fcn.00406cc2
test eax, eax
jne 0x407835
test edi, edi
je 0x407829
mov rdx, r12
mov ecx, 0xfffffff1
call fcn.00406371
xor edx, edx
mov rcx, r12
call fcn.00406edf
jmp 0x407842
mov rax, qword [0x0040c0d0]
inc dword [rax + 8]
jmp 0x407842
mov rdx, r12
mov ecx, 0xfffffff2
call fcn.00406371
mov rax, qword [rsp + 0x20]
mov rdx, r15
mov rcx, r13
call rax
test eax, eax
jne 0x4077b4
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
test r14d, r14d
je 0x4078cc
mov word [rbx - 2], 0
test ebp, ebp
je 0x4078b2
mov rcx, r12
call fcn.004075d4
test rax, rax
je 0x4078cc
mov rcx, r12
call fcn.0040717c
mov edx, edi
mov rcx, r12
or edx, 1
call fcn.00406cc2
test eax, eax
jne 0x4078be
test edi, edi
je 0x4078b2
mov rdx, r12
mov ecx, 0xfffffff1
call fcn.00406371
xor edx, edx
mov rcx, r12
call fcn.00406edf
jmp 0x4078cc
mov rax, qword [0x0040c0d0]
inc dword [rax + 8]
jmp 0x4078cc
mov rdx, r12
mov ecx, 0xffffffe5
call fcn.00406371
nop
add rsp, 0x288
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x4078e0
Capabilities:
Get common file path

Disassembly:
push r12
sub rsp, 0x260
mov edx, 0x104
lea r12, [rsp + 0x24]
mov qword [rsp + 0x270], rcx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9, qword [rsp + 0x270]
lea edx, [rax - 1]
cmp edx, 0x103
ja 0x407925
cmp word [rsp + rdx*2 + 0x24], 0x5c
sete dl
movzx edx, dl
jmp 0x40792c
xor eax, eax
mov edx, 1
mov eax, eax
add rdx, rdx
add rax, rax
lea rcx, [r12 + rax]
lea rax, [0x0040b600]
lea r8, [rax + rdx]
lea rdx, str._s_S.dll
call qword [sym.imp.USER32.dll_wsprintfW]
mov r8d, 8
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
add rsp, 0x260
pop r12
ret
Function at 0x11110
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rcx, qword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
mov dword [rcx + 0x30], eax
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
mov qword [rcx + 0x38], rax
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov eax, dword [rsp + 0x38]
add rsp, 0x28
ret

Function at 0x111f0
Capabilities:
Create device object

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x118
mov rax, qword [0x00015100]
xor rax, rsp
mov qword [rsp + 0x108], rax
call fcn.00011020
movzx eax, al
test eax, eax
je 0x11244
xor r9d, r9d
mov r8d, 0x58
lea rdx, [0x00013950]
lea rcx, [0x00013980]
call qword [sym.imp.ntoskrnl.exe_RtlAssert]
mov dword [rsp + 0x104], 0
jmp 0x1124f
mov dword [rsp + 0x104], 1
lea r8, [0x000139b0]
lea rdx, [0x000139d0]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_swprintf]
lea r8, [0x000139b0]
lea rdx, [0x000139f0]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.ntoskrnl.exe_swprintf]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea r11, [rsp + 0xb0]
mov qword [rsp + 0x30], r11
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x100
mov r9d, 0x22
lea r8, [rsp + 0x40]
xor edx, edx
mov rcx, qword [rsp + 0x120]
call qword [sym.imp.ntoskrnl.exe_IoCreateDevice]
mov dword [rsp + 0x100], eax
cmp dword [rsp + 0x100], 0
jge 0x112fc
mov eax, dword [rsp + 0x100]
jmp 0x11381
mov rax, qword [rsp + 0xb0]
mov qword [0x00015128], rax
mov rax, qword [rsp + 0xb0]
mov ecx, dword [rax + 0x30]
or ecx, 0x10
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x30], ecx
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x98], 1
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.ntoskrnl.exe_IoCreateSymbolicLink]
mov dword [rsp + 0x100], eax
cmp dword [rsp + 0x100], 0
jge 0x11371
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
mov eax, dword [rsp + 0x100]
jmp 0x11381
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.ntoskrnl.exe_IoRegisterShutdownNotification]
xor eax, eax
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.00013710
add rsp, 0x118
ret
Function at 0x113a0
Capabilities:
Print debug messages

Disassembly:
sub rsp, 0xe8
mov rax, qword [0x00015100]
xor rax, rsp
mov qword [rsp + 0xd8], rax
lea r8, [0x000139b0]
lea rdx, [0x000139d0]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_swprintf]
lea r8, [0x000139b0]
lea rdx, [0x000139f0]
lea rcx, [rsp + 0x90]
call qword [sym.imp.ntoskrnl.exe_swprintf]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x80]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rcx, [rsp + 0x80]
call qword [sym.imp.ntoskrnl.exe_IoDeleteSymbolicLink]
mov dword [rsp + 0xd0], eax
mov rcx, qword [0x00015128]
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x40]
lea rcx, [0x00013a10]
call sub.ntoskrnl.exe_DbgPrint
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.00013710
add rsp, 0xe8
ret

Function at 0x11470
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov dword [rsp + 0x24], 0
mov dword [rsp + 0x20], 0
lea rdi, [0x00015160]
xor eax, eax
mov ecx, 0x20
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x40]
mov qword [0x00015160], rax
mov rax, qword [rsp + 0x48]
movzx eax, word [rax]
mov word [0x00015168], ax
mov rax, qword [rsp + 0x48]
movzx eax, word [rax]
add rax, 2
mov word [0x0001516a], ax
movzx edx, word [0x0001516a]
mov r8d, 0x4d4d4354
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov qword [0x00015170], rax
cmp qword [0x00015170], 0
jne 0x11504
mov dword [rsp + 0x24], 0xc000009a
mov eax, dword [rsp + 0x24]
jmp 0x115be
mov rdx, qword [rsp + 0x48]
lea rcx, [0x00015168]
call qword [sym.imp.ntoskrnl.exe_RtlCopyUnicodeString]
mov dword [rsp + 0x20], 0
jmp 0x1152b
mov eax, dword [rsp + 0x20]
add eax, 1
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0x1b
ja 0x11549
mov edx, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x40]
lea rax, [0x00011160]
mov qword [rcx + rdx*8 + 0x70], rax
jmp 0x11520
mov rcx, qword [rsp + 0x40]
lea rax, [0x000115d0]
mov qword [rcx + 0x68], rax
mov rcx, qword [rsp + 0x40]
call fcn.000135f0
mov byte [0x00015121], 0
movzx eax, byte [0x00015121]
test eax, eax
jne 0x115a8
mov byte [0x00015122], 0
mov dword [0x00015130], 0
xor r8d, r8d
mov edx, 1
lea rcx, [0x00015140]
call qword [sym.imp.ntoskrnl.exe_KeInitializeEvent]
lea rcx, [0x00011cd0]
call qword [sym.imp.ntoskrnl.exe_PsSetLoadImageNotifyRoutine]
lea rcx, [0x00013a40]
call sub.ntoskrnl.exe_DbgPrint
mov rcx, qword [rsp + 0x40]
call fcn.000111f0
add rsp, 0x30
pop rdi
ret
Function at 0x11730
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov rax, qword [rsp + 0x60]
movsxd rax, dword [rax + 0x3c]
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x88]
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x20]
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x1c]
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x24]
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
jmp 0x117b0
mov eax, dword [rsp + 0x28]
add eax, 1
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x18]
cmp dword [rsp + 0x28], eax
jae 0x117f8
mov ecx, dword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + rcx*4]
add rcx, qword [rsp + 0x60]
call fcn.000116d0
cmp eax, dword [rsp + 0x68]
jne 0x117f6
mov ecx, dword [rsp + 0x28]
mov rax, qword [rsp + 0x20]
movzx ecx, word [rax + rcx*2]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4]
add rax, qword [rsp + 0x60]
jmp 0x117fa
jmp 0x117a5
xor eax, eax
add rsp, 0x58
ret