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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x690
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x680], rax
xor eax, eax
mov rbx, rdx
mov rdi, rcx
mov r9, rcx
lea rsi, str.PrinterDriverData
lea rdx, str._s_s_s
lea rcx, [rsp + 0x60]
lea r8, str.SystemCurrentControlSetControlPrintPrinters
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x50], eax
mov byte [rsp + 0x54], al
call qword [sym.imp.USER32.dll_wsprintfW]
lea r11, [rsp + 0x40]
lea rdx, [rsp + 0x60]
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140015261
lea rax, [rsp + 0x30]
lea rdx, str.SystemCurrentControlSetControlPrintPrinters
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140015310
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140015257
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140015261
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x30]
jmp 0x14001530a
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x48]
lea r9, [rsp + 0x4c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, str.PrinterID
xor r8d, r8d
mov dword [rsp + 0x48], 4
mov dword [rsp + 0x4c], 3
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400152e5
lea rcx, [rsp + 0x50]
mov eax, dword [rcx]
mov dword [rbx], eax
movzx eax, byte [rcx + 4]
mov rcx, qword [rsp + 0x40]
mov byte [rbx + 4], al
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400152ce
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400152de
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x140015312
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140015300
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140015310
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rcx, qword [rsp + 0x680]
xor rcx, rsp
call fcn.140081050
lea r11, [rsp + 0x690]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x140015340
Capabilities:
Delete registry key
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push rbx
sub rsp, 0x90
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x48]
mov rbx, rcx
lea rdx, str.EnumRootPrinter
mov r9d, 0xf003f
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140015390
xor eax, eax
jmp 0x140015551
mov rcx, qword [rsp + 0x48]
xor eax, eax
mov qword [rsp + 0xa0], rsi
xor esi, esi
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x68]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
xor edx, edx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0xa8], rdi
mov dword [rsp + 0x40], 0x10
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rax
mov edi, esi
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x140015531
nop
nop
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x58]
lea rdx, [rsp + 0x68]
mov r9d, 0xf003f
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400154bd
mov rcx, qword [rsp + 0x58]
xor eax, eax
lea r9, [rsp + 0x50]
mov dword [rsp + 0x60], eax
mov byte [rsp + 0x64], al
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
lea rdx, str.PrinterID
xor r8d, r8d
mov dword [rsp + 0x44], 4
mov dword [rsp + 0x50], 3
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400154b2
movzx eax, byte [rbx]
mov r8d, dword [rsp + 0x44]
mov edx, esi
cmp byte [rsp + 0x60], al
jne 0x1400154ad
lea rax, [rsp + 0x60]
mov r9, rbx
lea rcx, [rsp + 0x60]
sub r9, rax
cmp edx, r8d
jge 0x1400154ad
movzx eax, byte [r9 + rcx + 1]
add rcx, 1
add edx, 1
cmp byte [rcx], al
je 0x140015497
cmp edx, r8d
je 0x140015516
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x48]
xor eax, eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
add edi, 1
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x68]
mov edx, edi
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x40], 0x10
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x140015400
jmp 0x140015531
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x48]
lea rdx, [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xa0]
mov eax, 1
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140081050
add rsp, 0x90
pop rbx
ret
Function at 0x140015bf0
Capabilities:
Get file version info

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x160
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov r13, rdx
lea rdx, [rsp + 0x40]
xor edi, edi
mov ebp, r8d
mov r12, rcx
mov dword [rsp + 0x40], edi
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
mov esi, eax
je 0x140015d54
lea edx, [rax + 0x64]
mov ecx, 0x40
mov qword [rsp + 0x1a0], rbx
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
test rax, rax
mov rbx, rax
je 0x140015d4c
mov r9, rax
mov r8d, esi
xor edx, edx
mov rcx, r12
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x140015d41
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.VarFileInfoTranslation
mov rcx, rbx
call sub.VERSION.dll_VerQueryValueW
cmp dword [rsp + 0x30], 4
jne 0x140015cc0
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rax + 2]
movzx edx, byte [rax + 3]
movzx r9d, byte [rax]
movzx r8d, byte [rax + 1]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
lea rdx, str.StringFileInfo_02x_02x_02x_02x_
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x140015cd2
lea rdx, str.StringFileInfo040904e4_
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.ProductVersion
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call sub.VERSION.dll_VerQueryValueW
cmp dword [rsp + 0x30], edi
je 0x140015d41
cmp ebp, 1
jne 0x140015d2e
mov rcx, qword [rsp + 0x38]
mov dx, 0x2e
call fcn.1400804a0
test rax, rax
je 0x140015d2e
lea rcx, [rax + 2]
mov dx, 0x2e
call fcn.1400804a0
test rax, rax
je 0x140015d2e
mov word [rax], di
mov rdx, qword [rsp + 0x38]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edi, 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, edi
mov rbx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140081050
add rsp, 0x160
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140015d80
Capabilities:
Create process on windows
Query or enumerate registry value

Disassembly:
sub rsp, 0x528
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x510], rax
lea rcx, [rsp + 0x300]
xor edx, edx
mov r8d, 0x208
call fcn.140080d50
lea rdx, str.SOFTWARECanonVDCSETUP
lea rcx, [rsp + 0x300]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea r11, [rsp + 0x58]
lea rdx, [rsp + 0x300]
mov r9d, 0x20119
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140015e37
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x54]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf0]
lea rdx, str.Path
xor r8d, r8d
mov dword [rsp + 0x54], 0x208
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x140015e51
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rcx, qword [rsp + 0x510]
xor rcx, rsp
call fcn.140081050
add rsp, 0x528
ret
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x530], rbx
mov qword [rsp + 0x520], 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 rdx, [0x1400a3ff4]
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_lstrcatW]
lea rdx, str.AuVdc.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 0x140015f51
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x530]
mov eax, edi
mov rdi, qword [rsp + 0x520]
mov rcx, qword [rsp + 0x510]
xor rcx, rsp
call fcn.140081050
add rsp, 0x528
ret
Function at 0x140016250
Capabilities:
Create process on windows
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
mov eax, 0x10f0
call fcn.1400a28a0
sub rsp, rax
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x10e0], rax
mov rdi, 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_stop___s___Y
lea rcx, [rsp + 0x8e0]
mov r9, rdi
mov edx, 0x400
mov dword [rsp + 0x70], 0x68
mov word [rsp + 0xb0], 0
mov dword [rsp + 0xac], 1
call fcn.140083fa0
lea r11, [rsp + 0x50]
lea rax, [rsp + 0x70]
lea rdx, [rsp + 0x8e0]
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 rcx, [rsp + 0x4e0]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
mov ebx, eax
je 0x1400163c9
mov rcx, qword [rsp + 0x50]
mov edx, 0xea60
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]
lea rdx, str.SPOOLER
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x1400163c7
call fcn.140069504
mov rcx, qword [rax + 8]
mov dword [rcx + 0xdf8], 1
mov eax, ebx
mov rcx, qword [rsp + 0x10e0]
xor rcx, rsp
call fcn.140081050
mov rbx, qword [rsp + 0x1108]
add rsp, 0x10f0
pop rdi
ret

Function at 0x1400163f0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov edi, ecx
mov ecx, 0x104
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
test rax, rax
mov rbx, rax
jne 0x140016422
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea r8, [rsp + 0x38]
mov edx, edi
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
mov edi, eax
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
jne 0x14001644e
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test edi, edi
jne 0x140016492
cmp qword [rsp + 0x38], 0
je 0x140016492
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x40], 0
call qword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
js 0x140016492
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140016492
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x38]
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x1400164a0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
mov eax, 0x10470
call fcn.1400a28a0
sub rsp, rax
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x10460], rax
mov rax, qword [str.wininit.ini]
mov rbx, rcx
lea rcx, [rsp + 0x20]
mov qword [rcx], rax
mov rax, qword [0x1400a6a38]
mov rdi, rdx
mov qword [rcx + 8], rax
mov rax, qword [0x1400a6a40]
mov rdx, rbx
mov qword [rcx + 0x10], rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [0x1400a6a28]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rsp + 0x40]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r9, [rsp + 0x20]
lea rdx, [rsp + 0x460]
lea rcx, str.RENAME
mov r8d, 0x7fff
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
test eax, eax
mov esi, eax
je 0x1400165e0
xor edi, edi
cmp word [rsp + 0x460], di
je 0x140016591
lea rbx, [rsp + 0x460]
lea rcx, [rsp + 0x40]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x1400165d9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [rdi + rax + 1]
movsxd rax, edi
lea rbx, [rsp + rax*2 + 0x460]
cmp word [rbx], 0
jne 0x140016561
lea rcx, [rsp + rsi*2 + 0x460]
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x460]
lea ecx, [rax + rsi + 1]
mov word [rsp + rcx*2 + 0x460], 0
lea rcx, str.rename
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionW]
jmp 0x1400165f8
mov eax, 1
jmp 0x1400165f8
lea r9, [rsp + 0x20]
lea rcx, str.RENAME
mov r8, rdi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rcx, qword [rsp + 0x10460]
xor rcx, rsp
call fcn.140081050
lea r11, [rsp + 0x10470]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x140016620
Capabilities:
Get common file path

Disassembly:
push r15
mov eax, 0x1690
call fcn.1400a28a0
sub rsp, rax
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x1660], rax
mov r15, rcx
call fcn.140015a10
cmp eax, 2
je 0x14001666a
cmp eax, 3
je 0x14001666a
lea rcx, [rsp + 0x1450]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x140016671
xor eax, eax
jmp 0x140016854
lea r8, [rsp + 0x1450]
lea rdx, str._spsapi.dll
lea rcx, [rsp + 0x1240]
mov qword [rsp + 0x16b0], rbp
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0x1240]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
mov rbp, rax
je 0x14001688b
mov qword [rsp + 0x16a8], rbx
lea rdx, str.EnumProcesses
mov rcx, rax
mov qword [rsp + 0x1678], r13
mov qword [rsp + 0x1670], r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.EnumProcessModules
mov rcx, rbp
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetModuleBaseNameW
mov rcx, rbp
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rbx, rbx
mov r14, rax
je 0x140016887
test r13, r13
je 0x140016887
test rax, rax
je 0x140016887
mov qword [rsp + 0x16b8], rsi
lea r8, [rsp + 0x20]
lea rcx, [rsp + 0x30]
mov edx, 0x1000
mov qword [rsp + 0x1688], rdi
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x1680], r12
call rbx
mov r12d, dword [rsp + 0x20]
shr r12d, 2
mov edi, 0
je 0x140016811
lea rsi, [rsp + 0x30]
nop
nop
nop
mov r8d, dword [rsi]
xor edx, edx
mov ecx, 0x410
call qword [sym.imp.KERNEL32.dll_OpenProcess]
test rax, rax
mov rbx, rax
je 0x140016801
xor eax, eax
lea r9, [rsp + 0x24]
lea rdx, [rsp + 0x28]
lea r8d, [rax + 8]
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x24], eax
call r13
test eax, eax
je 0x1400167f8
lea rcx, [rsp + 0x1032]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x1030], 0
call fcn.140080d50
mov rdx, qword [rsp + 0x28]
lea r8, [rsp + 0x1030]
mov r9d, 0x208
mov rcx, rbx
call r14
lea rcx, [rsp + 0x1030]
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x14001686e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add edi, 1
add rsi, 4
cmp edi, r12d
jb 0x140016770
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov rdi, qword [rsp + 0x1688]
mov r12, qword [rsp + 0x1680]
mov rsi, qword [rsp + 0x16b8]
mov r13, qword [rsp + 0x1678]
mov rbx, qword [rsp + 0x16a8]
mov r14, qword [rsp + 0x1670]
mov rbp, qword [rsp + 0x16b0]
mov rcx, qword [rsp + 0x1660]
xor rcx, rsp
call fcn.140081050
add rsp, 0x1690
pop r15
ret
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
jmp 0x14001681c
xor eax, eax
jmp 0x140016834
xor eax, eax
jmp 0x14001684c
Function at 0x140016890
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
sub rsp, 0x40
mov ebp, ecx
mov ebx, 1
mov dword [rsp + 0x68], 0
xor edi, edi
call fcn.140069504
lea rdx, str.Console
mov rsi, qword [rax + 8]
lea rax, [rsp + 0x30]
mov r9d, 0xf003f
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov dword [rsi + 0xdf0], edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400169bc
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x70]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x68]
lea rdx, str.LoadConIme
xor r8d, r8d
mov dword [rsp + 0x78], 4
mov dword [rsp + 0x70], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400169a0
test ebp, ebp
mov dword [rsp + 0x70], 4
je 0x140016947
cmp dword [rsp + 0x68], edi
je 0x14001694b
mov dword [rsp + 0x68], edi
mov edi, ebx
jmp 0x14001694b
mov dword [rsp + 0x68], ebx
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x68]
lea rdx, str.LoadConIme
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x1400169a0
test edi, edi
je 0x1400169a2
mov dword [rsi + 0xdf0], ebx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
xor ebx, ebx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400169d0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x90
mov rax, qword [0x1400e71f0]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov rbp, rdx
lea rax, [rsp + 0x38]
mov rsi, rcx
lea rdx, str.SOFTWARECanonVDCSETUP
mov r12d, 2
xor r13d, r13d
mov r9d, 0x20119
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
mov ebx, r12d
mov edi, r13d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140016b9a
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, str.Version
xor r8d, r8d
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x30], 1
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140016ad8
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x48]
lea rdx, str.Version
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140016ad8
lea rcx, [rsp + 0x48]
mov rdx, rsi
call fcn.14002cc30
test eax, eax
jle 0x140016abd
lea ebx, [r12 - 1]
jmp 0x140016ad8
lea rcx, [rsp + 0x48]
mov rdx, rsi
call fcn.14002cc30
test eax, eax
jns 0x140016ad3
mov ebx, r13d
jmp 0x140016ad8
mov edi, 1
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, str.BuildNumber
xor r8d, r8d
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x34], r13d
mov dword [rsp + 0x30], 1
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140016b84
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x68]
lea rdx, str.BuildNumber
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140016b6d
cmp edi, 1
jne 0x140016b8b
lea rcx, [rsp + 0x68]
mov rdx, rbp
call fcn.14002cc30
mov rcx, qword [rsp + 0x38]
mov ebx, r13d
test eax, eax
setns bl
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x140016b9d
cmp edi, 1
jne 0x140016b8b
mov rcx, qword [rsp + 0x38]
mov ebx, r12d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x140016b9d
cmp edi, 1
cmove ebx, r12d
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x140016b9d
mov eax, r12d
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140081050
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret