joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140016bd0
Capabilities:
Create process on windows
Query or enumerate registry value

Disassembly:
sub rsp, 0x318
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x300], rax
lea rax, [rsp + 0x50]
lea rdx, str.SOFTWARECanonDIASSETUP
mov r9d, 0x20119
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140016c64
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
lea r9, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf0]
lea rdx, str.Path
xor r8d, r8d
mov dword [rsp + 0x58], 0x208
mov dword [rsp + 0x5c], 1
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x140016c7e
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.140081050
add rsp, 0x318
ret
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x320], rbx
mov qword [rsp + 0x310], rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edx, edx
lea rcx, [rsp + 0x80]
lea r8d, [rdx + 0x68]
call fcn.140080d50
xor r11d, r11d
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x80], 0x68
mov dword [rsp + 0xbc], 1
mov word [rsp + 0xc0], r11w
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
cmp word [rsp + rcx*2 + 0xee], 0x5c
je 0x140016d0e
lea rdx, [0x1400a3ff4]
lea rcx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str.CnxDIAS.EXE
lea rcx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r11, [rsp + 0x60]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
lea rdx, str.__remove
lea rcx, [rsp + 0xf0]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or edx, 0xffffffff
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x140016d9a
lea rdx, [rsp + 0x78]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x320]
mov eax, edi
mov rdi, qword [rsp + 0x310]
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.140081050
add rsp, 0x318
ret

Function at 0x140016e80
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rdx
mov edx, ecx
lea r8, [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
js 0x140016edf
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea rcx, [rsp + 0x48]
mov ebx, eax
call qword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
js 0x140016ed7
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov r8, qword [rcx]
call qword [r8 + 0x28]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov eax, ebx
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x140016ef0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
sub rsp, 0x170
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rbx, rcx
mov dword [rsp + 0x34], edx
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x11c
xor esi, esi
call fcn.140080d50
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x140016f54
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [rsp + 0x50], 2
mov qword [rsp + 0x190], rdi
jne 0x140016f82
cmp dword [rsp + 0x44], 4
jbe 0x140016f82
mov rdx, rbx
mov ecx, 0x26
call fcn.140016e80
test eax, eax
je 0x140016ff1
mov eax, 1
jmp 0x140016ff3
lea rax, [rsp + 0x38]
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersion
mov edi, 1
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], edi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140016ff1
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, str.ProgramFilesDir
xor r8d, r8d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x38]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
cmove esi, edi
mov eax, esi
mov rdi, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140081050
mov rbx, qword [rsp + 0x198]
add rsp, 0x170
pop rsi
ret
Function at 0x140017020
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push rdi
sub rsp, 0x8c0
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x8b0], rax
test rcx, rcx
mov rdi, rcx
je 0x1400171f9
lea rcx, [rsp + 0x6a0]
xor edx, edx
mov r8d, 0x208
mov qword [rsp + 0x8d8], rbx
call fcn.140080d50
lea rcx, [rsp + 0x280]
xor edx, edx
mov r8d, 0x208
call fcn.140080d50
lea rcx, [rsp + 0x280]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x280]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea r8, [rsp + 0x280]
lea rdx, [0x1400a6b80]
lea rcx, [rsp + 0x6a0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x6a0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
mov rbx, rax
je 0x1400171f5
nop
nop
nop
lea rdx, [0x1400a42e0]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400171a7
lea rdx, [0x1400a42d8]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400171a7
mov eax, dword [rsp + 0x30]
test al, 0x10
jne 0x140017162
lea rax, [rsp + 0x5c]
lea r9, [0x1400a3e50]
lea rcx, [rsp + 0x490]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x280]
or r8, 0xffffffffffffffff
mov edx, 0x104
mov qword [rsp + 0x20], rax
call fcn.140083fd0
lea rcx, [rsp + 0x490]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [rsp + 0x30]
test al, 0x10
je 0x1400171a7
lea rax, [rsp + 0x5c]
lea r9, [0x1400a3e50]
lea rcx, [rsp + 0x490]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x280]
or r8, 0xffffffffffffffff
mov edx, 0x104
mov qword [rsp + 0x20], rax
call fcn.140083fd0
lea rcx, [rsp + 0x490]
call fcn.140017020
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1400170e0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, 1
mov rbx, qword [rsp + 0x8d8]
mov rcx, qword [rsp + 0x8b0]
xor rcx, rsp
call fcn.140081050
add rsp, 0x8c0
pop rdi
ret
xor eax, eax
jmp 0x1400171d4
xor eax, eax
jmp 0x1400171dc
Function at 0x140017200
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x170
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x160], rax
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x11c
xor ebx, ebx
call fcn.140080d50
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x1400172db
call fcn.140015a10
cmp eax, 0xa
jne 0x1400172d9
cmp byte [rsp + 0x15a], 1
je 0x1400172d9
lea rcx, [0x1400a6658]
mov dword [rsp + 0x30], ebx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400172d9
lea rdx, str.GetProductInfo
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400172d9
movzx r9d, word [rsp + 0x156]
movzx r8d, word [rsp + 0x154]
mov edx, dword [rsp + 0x48]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x20], rcx
mov ecx, dword [rsp + 0x44]
call rax
test eax, eax
je 0x1400172d9
mov eax, dword [rsp + 0x30]
cmp eax, 0xc
jb 0x1400172d9
cmp eax, 0xe
jbe 0x1400172d4
cmp eax, 0x1d
je 0x1400172d4
cmp eax, 0x26
jbe 0x1400172d9
cmp eax, 0x29
ja 0x1400172d9
mov ebx, 1
mov eax, ebx
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140081050
add rsp, 0x170
pop rbx
ret

Function at 0x140017300
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x8a0
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x890], rax
lea rcx, [rsp + 0x52]
xor ebx, ebx
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x50], bx
call fcn.140080d50
lea rcx, [rsp + 0x682]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x680], bx
call fcn.140080d50
lea rcx, [rsp + 0x472]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x470], bx
call fcn.140080d50
lea rcx, [rsp + 0x262]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x260], bx
call fcn.140080d50
lea rdx, [rsp + 0x50]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea r9, [rsp + 0x470]
lea rdx, [rsp + 0x680]
lea rcx, [rsp + 0x50]
mov r8d, 0x104
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x104
call fcn.140082440
lea r9, [rsp + 0x470]
lea r8, [rsp + 0x680]
lea rcx, [rsp + 0x50]
mov edx, 0x104
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.140084320
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, [rsp + 0x260]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rcx, [rsp + 0x260]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov ecx, 1
test eax, eax
cmove ebx, ecx
mov eax, ebx
mov rcx, qword [rsp + 0x890]
xor rcx, rsp
call fcn.140081050
add rsp, 0x8a0
pop rbx
ret
Function at 0x140017470
Capabilities:
Check if file exists
Delete file
Get common file path
Move file
Set file attributes

Disassembly:
push rbx
sub rsp, 0x450
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x440], rax
call fcn.140069504
lea rcx, [rsp + 0x232]
xor edx, edx
mov rbx, qword [rax + 8]
mov r8d, 0x206
mov word [rsp + 0x230], 0
call fcn.140080d50
lea rcx, [rsp + 0x22]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], 0
call fcn.140080d50
cmp dword [rbx + 0xb78], 0
je 0x140017578
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea r9, str.UNINSTAL.tmp
lea r8, [rsp + 0x20]
lea rdx, [0x1400a3e08]
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0x20]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rsp + 0x230]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x230]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140017578
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x230]
mov r8d, 2
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x140017596
xor edx, edx
lea rcx, [rsp + 0x20]
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, 1
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140081050
add rsp, 0x450
pop rbx
ret
xor eax, eax
jmp 0x14001757d

Function at 0x1400175a0
Capabilities:
Enumerate files on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x6a0
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x690], rax
xor ebx, ebx
test rcx, rcx
mov rdi, rcx
jne 0x1400175d1
or eax, 0xffffffff
jmp 0x14001769f
lea rcx, [rsp + 0x480]
xor edx, edx
mov r8d, 0x208
call fcn.140080d50
lea rcx, [rsp + 0x270]
xor edx, edx
mov r8d, 0x208
call fcn.140080d50
lea rcx, [rsp + 0x270]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x270]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea r8, [rsp + 0x270]
lea rdx, [0x1400a6b80]
lea rcx, [rsp + 0x480]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x480]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
mov rdi, rax
je 0x14001769d
lea rdx, [0x1400a42e0]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x140017682
lea rdx, [0x1400a42d8]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x140017682
add ebx, 1
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140017653
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, ebx
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.140081050
mov rbx, qword [rsp + 0x6b8]
add rsp, 0x6a0
pop rdi
ret
Function at 0x140018320
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x270
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x260], rax
xor ebx, ebx
mov ebp, edx
mov qword [rsp + 0x40], rcx
mov esi, ebx
call fcn.140069504
mov rcx, qword [rsp + 0x40]
test rcx, rcx
mov rdi, qword [rax + 8]
jne 0x1400183a1
lea rax, [rsp + 0x40]
lea rdx, str.SOFTWARECanonPortSetPortSetUser
mov r9d, 0x2011f
xor r8d, r8d
mov rcx, 0xffffffff80000002
lea esi, [rbx + 1]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001839c
xor eax, eax
jmp 0x140018426
mov rcx, qword [rsp + 0x40]
test ebp, ebp
jne 0x1400183dd
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
lea edx, [rbp + 1]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x48], 0x104
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x140018415
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rdi + 0x5b8]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140018415
mov rdx, qword [rdi + 0x5b8]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ebx, 1
test esi, esi
je 0x140018424
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140081050
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x140018450
Capabilities:
Check if file exists
Delete directory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x660
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x650], rax
call fcn.140069504
lea rcx, [rsp + 0x232]
xor edi, edi
mov rbx, qword [rax + 8]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x230], di
call fcn.140080d50
lea rcx, [rsp + 0x20]
xor edx, edx
mov r8d, 0x208
call fcn.140080d50
lea rcx, [rsp + 0x440]
xor edx, edx
mov r8d, 0x208
call fcn.140080d50
lea rcx, [rsp + 0x20]
mov edx, 0x208
call fcn.140016ef0
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.Canon_
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea rcx, [rsp + 0x20]
mov esi, 1
test eax, eax
cmove edi, esi
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.InstRestore
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea rcx, [rsp + 0x20]
test eax, eax
cmove edi, esi
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x440]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rdx, qword [rbx + 0x5b8]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rsp + 0x440]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.color_
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
test edi, edi
jne 0x140018601
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1400185bf
lea rcx, [rsp + 0x20]
call fcn.140017020
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea rcx, [rsp + 0x440]
call fcn.1400175a0
cmp eax, esi
jne 0x1400185ef
lea rcx, [rsp + 0x230]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1400185ef
lea rcx, [rsp + 0x230]
call fcn.140017020
lea rcx, [rsp + 0x440]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, esi
jmp 0x140018603
mov eax, edi
mov rcx, qword [rsp + 0x650]
xor rcx, rsp
call fcn.140081050
lea r11, [rsp + 0x660]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x1400186b0
Capabilities:
Delete registry key
Query or enumerate registry value

Disassembly:
push rbx
sub rsp, 0x270
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x260], rax
xor ebx, ebx
call fcn.140069504
lea r11, [rsp + 0x40]
lea rdx, str.SOFTWARECanonPortSetPortSetUser
mov r9d, 0x2011f
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140018769
mov rcx, qword [rsp + 0x40]
lea edx, [rbx + 1]
call fcn.140018320
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x48], 0x104
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x14001875a
lea rdx, str.SOFTWARECanonPortSetPortSetUser
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov ebx, 1
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x14001876e
mov eax, 1
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140081050
add rsp, 0x270
pop rbx
ret
Function at 0x140018f60
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x40
call fcn.140069504
mov rcx, qword [rax + 8]
call fcn.14007442c
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
xor edi, edi
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test rax, rax
mov rbp, rax
je 0x140019028
lea r8d, [rdi + 4]
lea rdx, str.SPOOLER
mov rcx, rax
mov qword [rsp + 0x60], rsi
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
test rax, rax
mov rsi, rax
je 0x14001900a
mov qword [rsp + 0x58], rbx
mov ebx, edi
nop
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp eax, 1
je 0x140018ff6
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
add ebx, 1
cmp ebx, 0xa
jb 0x140018fc0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rbx, qword [rsp + 0x58]
jmp 0x14001901a
mov edi, dword [rsp + 0x24]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rbx, qword [rsp + 0x58]
jmp 0x14001901a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x424
cmp eax, ecx
cmove edi, ecx
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rsi, qword [rsp + 0x60]
lea rcx, [rsp + 0x50]
call fcn.140018910
mov rbp, qword [rsp + 0x68]
mov eax, edi
add rsp, 0x40
pop rdi
ret

Function at 0x140019040
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x40
mov rbx, rcx
call fcn.140069504
mov rcx, qword [rax + 8]
call fcn.14007442c
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
xor edi, edi
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test rax, rax
mov rbp, rax
je 0x140019101
lea r8d, [rdi + 4]
mov rdx, rbx
mov rcx, rax
mov qword [rsp + 0x50], rsi
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
test rax, rax
mov rsi, rax
je 0x1400190e3
mov ebx, edi
nop
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp eax, 1
je 0x1400190d4
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
add ebx, 1
cmp ebx, 0x96
jb 0x1400190a0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1400190f3
mov edi, dword [rsp + 0x24]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1400190f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x424
cmp eax, ecx
cmove edi, ecx
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rsi, qword [rsp + 0x50]
lea rcx, [rsp + 0x58]
call fcn.140018910
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov eax, edi
add rsp, 0x40
pop rdi
ret
Function at 0x140021630
Capabilities:
Create process on windows
Get common file path

Disassembly:
push rbx
mov eax, 0x10f0
call fcn.1400a28a0
sub rsp, rax
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x10e0], rax
mov rbx, rcx
lea rcx, [rsp + 0xe0]
xor edx, edx
mov r8d, 0x400
call fcn.140080d50
lea rcx, [rsp + 0x4e0]
xor edx, edx
mov r8d, 0x400
call fcn.140080d50
lea rcx, [rsp + 0xe0]
mov edx, 0x200
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rcx, [rsp + 0xe0]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea r9, str.cmd.exe
lea r8, [rsp + 0xe0]
lea rdx, [0x1400a3e50]
lea rcx, [rsp + 0x4e0]
call qword [sym.imp.USER32.dll_wsprintfW]
xor edx, edx
lea rcx, [rsp + 0x70]
lea r8d, [rdx + 0x68]
call fcn.140080d50
lea r8, str._C_net_start___s___Y
lea rcx, [rsp + 0x8e0]
mov r9, rbx
mov edx, 0x400
mov dword [rsp + 0x70], 0x68
mov word [rsp + 0xb0], 0
mov dword [rsp + 0xac], 1
call fcn.140083fa0
xor edx, edx
mov rcx, rbx
call fcn.14001fdf0
lea r11, [rsp + 0x50]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
lea rdx, [rsp + 0x8e0]
lea rcx, [rsp + 0x4e0]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x140021795
mov edx, 1
mov rcx, rbx
call fcn.14001fdf0
mov rcx, qword [rsp + 0x50]
mov edx, 0xea60
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rcx, qword [rsp + 0x10e0]
xor rcx, rsp
call fcn.140081050
add rsp, 0x10f0
pop rbx
ret

Function at 0x140021df0
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x450
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rbp, rdx
mov rsi, rcx
xor edi, edi
call fcn.140015a10
add eax, 0xfffffffe
cmp eax, 1
ja 0x140021ece
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x140021e9a
lea r8, [rsp + 0x20]
lea rdx, str._sSVRAPI.DLL
lea rcx, [rsp + 0x230]
mov qword [rsp + 0x480], rbx
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
mov rbx, rax
je 0x140021e90
lea rdx, str.NetShareDel
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x140021eb5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov rbx, qword [rsp + 0x480]
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140081050
add rsp, 0x450
pop rdi
pop rsi
pop rbp
ret
xor r8d, r8d
mov rdx, rbp
mov rcx, rsi
call rax
mov ecx, 1
test eax, eax
cmove edi, ecx
mov eax, edi
jmp 0x140021e92
mov eax, 1
jmp 0x140021e9a