joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140089310
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x50
lea rax, vtable.CDirectoryMonitor.0
mov rbx, rcx
xor edi, edi
mov qword [rcx], rax
mov qword [rcx + 0x20], rdi
mov ecx, 0x280
call fcn.14004b164
test rax, rax
je 0x1400893a7
mov qword [rbx + 0x18], rax
mov qword [rax], rax
mov rax, qword [rbx + 0x18]
mov qword [rax + 8], rax
lea rax, [rbx + 0xc]
lea r8, [0x140088ed0]
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov dword [rbx + 8], 1
mov dword [rbx + 0x60], edi
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, [rbx + 0x30]
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea edx, [rdi + 1]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x58], rax
mov rax, rbx
mov rbx, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x60], rdi
call fcn.14004b2d4
lea r11, vtable.std::bad_alloc.0
lea rdx, [0x140132320]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], r11
call fcn.14004d894
int3
Function at 0x140089ce0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r15
sub rsp, 0x8b0
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rsp + 0x890], rax
mov qword [rsp + 0x8f8], rbp
mov rbp, rcx
lea rcx, [rsp + 0x58]
mov rbx, r8
mov r12, rdx
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
lea rdx, [rsp + 0x280]
lea rcx, [rsp + 0x50]
xor r9d, r9d
mov r8d, 0x200
call fcn.1400974f0
lea rcx, [rsp + 0x280]
xor r15d, r15d
mov esi, r15d
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x140089dd1
mov qword [rsp + 0x8a8], r13
mov qword [rsp + 0x8a0], r14
lea rdi, [rsp + 0x280]
lea r14d, [r15 + 0x2e]
lea r13d, [r15 + 0x2d]
movzx eax, word [rdi]
cmp ax, 0x2f
jne 0x140089d9f
mov word [rdi], r13w
jmp 0x140089da9
cmp ax, 0x3a
jne 0x140089da9
mov word [rdi], r14w
lea rcx, [rsp + 0x280]
inc esi
add rdi, 2
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp esi, eax
jl 0x140089d90
mov r14, qword [rsp + 0x8a0]
mov r13, qword [rsp + 0x8a8]
mov edi, 0x104
lea r9, [rsp + 0x280]
lea r8, str.Clipboard_Text___s_.txt
lea rcx, [rsp + 0x680]
mov edx, edi
call section..text
lea r8, [rsp + 0x680]
lea rcx, [rsp + 0x70]
mov rdx, rbp
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
mov qword [rsp + 0x30], r15
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, qword [rsp + 0x8f8]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140089ee0
lea r9, [rsp + 0x40]
lea rdx, [0x1401024b4]
mov r8d, 2
mov rcx, rax
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x40]
mov rdx, r12
lea r8d, [rax + rax]
mov rcx, rsi
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x70]
sub rcx, rbx
nop
lea rax, [rdi + 0x7ffffefa]
test rax, rax
je 0x140089ece
movzx eax, word [rcx + rbx]
test ax, ax
je 0x140089ece
mov word [rbx], ax
add rbx, 2
dec rdi
jne 0x140089ea0
sub rbx, 2
mov eax, r15d
mov word [rbx], r15w
jmp 0x140089ee5
test rdi, rdi
jne 0x140089ed7
sub rbx, 2
mov word [rbx], r15w
mov eax, r15d
jmp 0x140089ee5
mov eax, 0x80004005
mov rcx, qword [rsp + 0x890]
xor rcx, rsp
call fcn.14004ae00
add rsp, 0x8b0
pop r15
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x14008aad0
Capabilities:
Create thread

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov r14d, r9d
mov r15d, r8d
mov rbx, rdx
mov r13, rcx
mov ecx, 0x70
call fcn.14004b164
mov rsi, rax
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14008ab35
lea rcx, [rax + 0x10]
lea rdx, [rsp + 0xa0]
call fcn.14000a680
mov qword [rsi + 0x40], 7
xor ebp, ebp
mov qword [rsi + 0x38], rbp
mov word [rsi + 0x28], bp
jmp 0x14008ab39
xor ebp, ebp
mov esi, ebp
mov qword [rsi], r13
mov rax, qword [r13 + 0x30]
mov qword [rsi + 8], rax
lea r12, [rsi + 0x10]
cmp r12, rbx
je 0x14008ab70
mov rbx, qword [rbx]
mov rdi, qword [rbx]
mov rcx, r12
call fcn.14000a6f0
mov rdx, qword [r12]
mov r9, rbx
mov r8, rdi
mov rdx, qword [rdx]
mov rcx, r12
call fcn.14000be40
mov rdx, qword [r13 + 0x40]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsi + 0x28]
call fcn.140009a30
mov dword [rsi + 0x50], r15d
mov dword [rsi + 0x54], r14d
mov qword [rsi + 0x58], rbp
mov rax, qword [r13 + 0x18]
mov qword [rsi + 0x60], rax
mov eax, dword [r13 + 0x24]
mov dword [rsi + 0x68], eax
mov eax, dword [r13 + 0x28]
mov dword [rsi + 0x6c], eax
mov qword [rsp + 0x90], rbp
mov dword [rsp + 0xa8], ebp
mov rcx, qword [r13 + 0x10]
mov rax, qword [rcx]
lea r8, [rsp + 0x90]
lea rdx, [0x1400fa390]
call qword [rax]
test eax, eax
jne 0x14008ac0b
mov rcx, qword [rsp + 0x90]
mov rax, qword [rcx]
lea rdx, [rsp + 0xa8]
call qword [rax + 0x20]
cmp dword [rsp + 0xa8], 0
jne 0x14008ac15
mov rcx, qword [rsp + 0x90]
mov rax, qword [rcx]
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
cmp dword [rsp + 0xa8], 0
je 0x14008ac78
mov rcx, qword [rsp + 0x90]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x28]
mov rdx, qword [rsp + 0x90]
mov qword [rsi + 0x58], rdx
lock inc dword [r13 + 8]
xor r9d, r9d
mov r8d, 0x2710
lea rdx, [0x140089a40]
mov rcx, qword [r13 + 0x30]
call qword [sym.imp.COMCTL32.dll_SetWindowSubclass]
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], ebp
mov r9, rsi
lea r8, [0x14008a9f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14008ac88
mov rcx, rsi
call fcn.14008a560
mov rcx, rsi
call fcn.14001d2a0
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14008f430
Capabilities:
Set registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x170
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rdi, qword [r8]
xor r14d, r14d
mov r13, rdx
mov rbx, qword [rdi]
mov r12, rcx
mov ebp, r14d
cmp rbx, rdi
je 0x14008f518
nop
lea rdx, [rbx + 0x10]
lea rcx, [rsp + 0x30]
or r9, 0xffffffffffffffff
xor r8d, r8d
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], r14
mov word [rsp + 0x30], r14w
call fcn.140009660
lea r8, [0x140103ac8]
lea rcx, [rsp + 0x60]
mov r9, r13
mov edx, 0x80
mov dword [rsp + 0x20], ebp
call section..text
inc ebp
cmp qword [rsp + 0x48], 8
lea rsi, [rsp + 0x30]
cmovae rsi, qword [rsp + 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, [rsp + 0x60]
mov r9d, 1
add eax, eax
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
test eax, eax
jne 0x14008f53c
cmp qword [rsp + 0x48], 8
jb 0x14008f50c
mov rcx, qword [rsp + 0x30]
call fcn.14004b088
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14008f470
xor eax, eax
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.14004ae00
add rsp, 0x170
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp qword [rsp + 0x48], 8
jb 0x14008f54e
mov rcx, qword [rsp + 0x30]
call fcn.14004b088
mov eax, esi
jmp 0x14008f51a
Function at 0x14008f560
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x580
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rsp + 0x570], rax
mov rsi, r8
mov r12, rdx
mov rbp, rcx
xor r13d, r13d
mov ebx, r13d
movabs r14, 0x666666666666665
nop word [rax + rax]
mov dword [rsp + 0x20], ebx
mov r9, r12
lea r8, str._s_d
mov edx, 0x80
lea rcx, [rsp + 0x70]
call section..text
inc ebx
mov dword [rsp + 0x30], 0x200
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x170]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x14008f638
cmp dword [rsp + 0x34], 1
jne 0x14008f638
lea ecx, [rax - 1]
cmp word [rsp + rcx*2 + 0x170], 0
je 0x14008f641
mov ecx, 0x200
cmp eax, ecx
cmovb ecx, eax
mov word [rsp + rcx*2 + 0x170], r13w
jmp 0x14008f641
mov word [rsp + 0x170], r13w
test edi, edi
jne 0x14008f6e7
mov qword [rsp + 0x58], 7
mov qword [rsp + 0x50], r13
mov word [rsp + 0x40], r13w
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x170]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x40]
call fcn.140009a30
nop
mov rdi, qword [rsi]
lea r8, [rsp + 0x40]
mov rdx, qword [rdi + 8]
mov rcx, rdi
call fcn.14000a770
mov rdx, qword [rsi + 8]
mov rcx, r14
sub rcx, rdx
cmp rcx, 1
jb 0x14008f6da
lea rcx, [rdx + 1]
mov qword [rsi + 8], rcx
mov qword [rdi + 8], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rax
cmp qword [rsp + 0x58], 8
jb 0x14008f5b0
mov rcx, qword [rsp + 0x40]
call fcn.14004b088
jmp 0x14008f5b0
lea rcx, str.list_T__too_long
call fcn.14002ba2c
nop
mov eax, edi
mov rcx, qword [rsp + 0x570]
xor rcx, rsp
call fcn.14004ae00
add rsp, 0x580
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14008f720
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x460
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov rbp, r8
mov rbx, rdx
mov qword [rsp + 0x40], rdx
cmp qword [rdx + 0x18], 8
jb 0x14008f75e
mov rdx, qword [rdx]
mov edi, 0x200
mov dword [rsp + 0x30], edi
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
xor r12d, r12d
mov r8d, dword [rsp + 0x30]
test r8d, r8d
je 0x14008f7ba
cmp dword [rsp + 0x34], 1
jne 0x14008f7ba
lea ecx, [r8 - 1]
cmp word [rsp + rcx*2 + 0x50], r12w
je 0x14008f7c0
cmp r8d, edi
cmovb edi, r8d
mov word [rsp + rdi*2 + 0x50], r12w
jmp 0x14008f7c0
mov word [rsp + 0x50], r12w
test eax, eax
jne 0x14008f7e7
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x50]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.140009a30
nop
cmp qword [rbx + 0x18], 8
jb 0x14008f7f6
mov rcx, qword [rbx]
call fcn.14004b088
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], r12
mov word [rbx], r12w
mov eax, esi
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.14004ae00
add rsp, 0x460
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x1400913a0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
sub rsp, 0x30
mov rax, rdx
mov rbx, rcx
lea rdx, [rcx + 0x1c]
lea rcx, [rsp + 0x58]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rcx
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140091499
cmp byte [rbx + 0x21c], al
je 0x140091479
lea rcx, [rsp + 0x40]
lea rax, [rbx + 0xc]
lea rdx, [0x140103ef8]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x40], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rcx, [rsp + 0x50]
lea rax, [rbx + 0x14]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x58]
lea rdx, [0x140103f10]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x58]
lea rax, [rbx + 0x18]
lea rdx, [0x140103f20]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rax, qword [rbx]
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
mov rcx, qword [rsp + 0x58]
mov dword [rbx + 8], 1
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
add rsp, 0x30
pop rbx
ret
Function at 0x1400914b0
Capabilities:
Set registry value

Disassembly:
push rbx
sub rsp, 0x50
cmp dword [rcx + 8], 0
mov rax, rdx
mov rbx, rcx
je 0x1400915c5
lea rdx, [rcx + 0x1c]
lea rcx, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + 0x78]
xor r8d, r8d
mov qword [rsp + 0x38], rcx
xor ecx, ecx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], ecx
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x1400915c5
cmp byte [rbx + 0x21c], al
je 0x1400915ac
mov rcx, qword [rsp + 0x78]
lea rax, [rbx + 0xc]
lea rdx, [0x140103ec0]
mov r9d, 3
xor r8d, r8d
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r11d, dword [rbx + 0x14]
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x60]
lea rdx, [0x140103ed8]
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x60], r11d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r11d, dword [rbx + 0x18]
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x60]
lea rdx, [0x140103ee8]
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x60], r11d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rax, qword [rbx]
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
add rsp, 0x50
pop rbx
ret
Function at 0x140091cd0
Capabilities:
Enumerate files on windows
Get file system object information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x6a0]
sub rsp, 0x7a0
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rbp + 0x690], rax
mov rdi, rdx
mov rsi, rcx
lea rdx, [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_Shell_GetImageLists]
mov r9, qword [rsp + 0x30]
xor r8d, r8d
mov edx, 0x402
mov rcx, rsi
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x14b
mov rcx, rsi
call qword [sym.imp.USER32.dll_SendMessageW]
lea rax, [rbp + 0x480]
mov rdx, rdi
mov r11d, 0x104
lea rcx, [rbp + 0x480]
sub rdx, rax
nop
lea rax, [r11 + 0x7ffffefa]
test rax, rax
je 0x140091d73
movzx eax, word [rdx + rcx]
test ax, ax
je 0x140091d73
mov word [rcx], ax
add rcx, 2
dec r11
jne 0x140091d50
jmp 0x140091d78
test r11, r11
jne 0x140091d7c
sub rcx, 2
xor eax, eax
lea rdx, [0x140102ae4]
mov word [rcx], ax
lea rcx, [rbp + 0x480]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x480]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140091ea2
lea rdx, [rsp + 0x70]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x140091e99
nop word [rax + rax]
test byte [rsp + 0x70], 0x10
je 0x140091e83
lea rdx, [0x140104098]
lea rcx, [rbp - 0x64]
call qword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
je 0x140091e83
lea rdx, [rbp - 0x64]
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea r8, [rbp + 0x1c0]
xor r9d, r9d
xor edx, edx
mov rcx, rdi
mov dword [rsp + 0x20], 0x4000
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, dword [rbp + 0x1c8]
lea rcx, [rbp - 0x64]
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x58], eax
lea rax, [rbp - 0x64]
mov dword [rsp + 0x38], reloc.SHELL32.dll_ILIsParent
mov qword [rsp + 0x40], 0xffffffffffffffff
mov dword [rsp + 0x60], 1
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x5c], 1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov edx, 0x40b
mov rcx, rsi
mov dword [rsp + 0x50], eax
call qword [sym.imp.USER32.dll_SendMessageW]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140091dd0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rbp + 0x690]
xor rcx, rsp
call fcn.14004ae00
mov rbx, qword [rsp + 0x7d0]
add rsp, 0x7a0
pop rdi
pop rsi
pop rbp
ret

Function at 0x140092d10
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x30
lea rax, [rsp + 0x48]
mov rbx, rcx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], 0
call qword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
js 0x140092d62
mov rdx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.140092a30
mov rcx, qword [rsp + 0x48]
mov ebx, eax
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, ebx
add rsp, 0x30
pop rbx
ret
xor eax, eax
add rsp, 0x30
pop rbx
ret
Function at 0x140092d70
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
lea rax, [rsp + 0x50]
mov rsi, rdx
mov rdi, rcx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x50], 0
call qword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
js 0x140092de3
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov qword [rsp + 0x40], rbx
call fcn.140092a30
mov rcx, qword [rsp + 0x50]
mov ebx, eax
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test ebx, ebx
mov rbx, qword [rsp + 0x40]
je 0x140092de3
mov qword [rsi], 0
xor eax, eax
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_ILRemoveLastID]
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_ILClone]
mov qword [rsi], rax
mov rsi, qword [rsp + 0x48]
xor eax, eax
add rsp, 0x30
pop rdi
ret

Function at 0x140092e10
Capabilities:
Get common file path

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
push rdi
sub rsp, 0x150
xor eax, eax
mov edi, ecx
lea rcx, [rsp + 0x38]
mov rbx, rdx
mov qword [r11 + 0x20], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov qword [r11 + 0x18], rax
call qword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x140092ef8
lea rax, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
mov edx, edi
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
js 0x140092eed
mov rcx, qword [rsp + 0x30]
lea r9, [rsp + 0x170]
lea r8, [rsp + 0x178]
lea rdx, [0x1400fa1e0]
call qword [sym.imp.SHELL32.dll_SHBindToParent]
test eax, eax
js 0x140092ee2
mov rcx, qword [rsp + 0x178]
mov rdx, qword [rsp + 0x170]
lea r9, [rsp + 0x40]
mov rax, qword [rcx]
mov r8d, 0x8000
call qword [rax + 0x58]
test eax, eax
js 0x140092ed4
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + 0x40]
mov r9d, 0x104
mov r8, rbx
call qword [sym.imp.SHLWAPI.dll_StrRetToBufW]
mov rcx, qword [rsp + 0x178]
mov rax, qword [rcx]
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
mov rbx, qword [rsp + 0x160]
add rsp, 0x150
pop rdi
ret

Function at 0x140092f10
Capabilities:
Create process on windows

Disassembly:
mov r11, rsp
sub rsp, 0x98
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 0x70
mov dword [rsp + 0x24], ILClone
mov qword [r11 - 0x70], rcx
mov qword [r11 - 0x38], rax
xor eax, eax
mov qword [r11 - 0x68], rdx
mov dword [rsp + 0x50], 5
lea rcx, [r11 - 0x78]
mov qword [r11 - 0x60], rax
mov qword [r11 - 0x40], rax
mov qword [r11 - 0x58], r8
mov qword [r11 - 0x50], r9
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
add rsp, 0x98
ret
Function at 0x140093920
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rsi
push r12
sub rsp, 0x680
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rsp + 0x670], rax
mov qword [rsp + 0x20], rcx
mov rsi, rdx
mov qword [rsp + 0x6b0], rbp
mov rbp, rcx
lea r9, str.SoftwareClassesCLSID
lea r8, [0x1401041e0]
lea rcx, [rsp + 0x270]
xor r12d, r12d
mov edx, 0x200
mov ebx, r12d
call section..text
lea r11, [rsp + 0x40]
lea rdx, [rsp + 0x270]
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140093a6e
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x48]
lea rdx, [0x1401041f0]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140093a63
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x6b8], rdi
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x38]
mov edi, 0x104
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], edi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [rsp + 0x30]
mov r11d, eax
test edx, edx
je 0x140093a37
cmp dword [rsp + 0x38], 1
jne 0x140093a37
lea eax, [rdx - 1]
cmp word [rsp + rax*2 + 0x60], bx
je 0x140093a3d
cmp edx, edi
cmovb edi, edx
mov word [rsp + rdi*2 + 0x60], r12w
jmp 0x140093a3d
mov word [rsp + 0x60], r12w
mov rdi, qword [rsp + 0x6b8]
test r11d, r11d
jne 0x140093a58
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbx, rax
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call qword [sym.imp.ole32.dll_CLSIDFromString]
mov rbp, qword [rsp + 0x6b0]
test eax, eax
jne 0x140093ac6
xor edx, edx
lea rax, [rsp + 0x38]
lea r9, [0x1400fa340]
lea rcx, [rsp + 0x50]
lea r8d, [rdx + 1]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x20], rax
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x140093ac6
mov rax, qword [rsp + 0x38]
mov qword [rsi], rbx
mov qword [rsi + 8], rax
mov eax, 1
jmp 0x140093ad7
test rbx, rbx
je 0x140093ad4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, r12d
mov rcx, qword [rsp + 0x670]
xor rcx, rsp
call fcn.14004ae00
add rsp, 0x680
pop r12
pop rsi
pop rbx
ret