joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140001000
Capabilities:
Allocate or change rwx memory
Create process on windows
Create process suspended
Resume thread
Use process replacement

Disassembly:
push rbx
sub rsp, 0x500
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x4e0], rax
movsxd rbx, dword [0x3c]
xorps xmm1, xmm1
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
movups xmmword [rsp + 0x70], xmm1
mov qword [rsp + 0xd0], rax
movups xmmword [rsp + 0x80], xmm1
movups xmmword [rsp + 0x90], xmm1
movups xmmword [rsp + 0xa0], xmm1
movups xmmword [rsp + 0xb0], xmm1
movups xmmword [rsp + 0xc0], xmm1
cmp dword [rbx], 0x4550
jne 0x140001254
mov r8d, 0x104
mov qword [rsp + 0x4f0], r15
lea rdx, [rsp + 0xe0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor r15d, r15d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0xe0]
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rax
xor r8d, r8d
mov qword [rsp + 0x38], r15
xor edx, edx
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], r15d
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x14000124c
lea edx, [r15 + 8]
mov qword [rsp + 0x520], rdi
xor ecx, ecx
lea r9d, [r15 + 4]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, rax
mov rdi, rax
mov dword [rax + 0x30], 0x10000b
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x140001244
mov r8d, dword [rbx + 0x50]
mov r9d, 0x3000
mov rdx, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x510], rbp
mov qword [rsp + 0x518], rsi
mov qword [rsp + 0x4f8], r14
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r9d, dword [rbx + 0x54]
xor r8d, r8d
mov rcx, qword [rsp + 0x50]
mov rdx, rax
mov rbp, rax
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov esi, r15d
cmp r15w, word [rbx + 6]
jae 0x1400011f7
mov qword [rsp + 0x528], r12
mov r12d, 0x3c
nop dword [rax]
movsxd rax, dword [r12]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], r15
mov edx, dword [rax + rsi*8 + 0xf3]
mov r9d, dword [rax + rsi*8 + 0xf7]
add rdx, rbp
mov r8d, dword [rax + rsi*8 + 0xfb]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov rdx, qword [rdi + 0x88]
lea r8, [rbx + 0x30]
mov rcx, qword [rsp + 0x50]
add rdx, 8
mov r9d, 8
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
movzx eax, word [rbx + 6]
inc rsi
cmp rsi, rax
jb 0x140001190
mov r12, qword [rsp + 0x528]
mov eax, dword [rbx + 0x28]
mov rdx, rdi
add rax, rbp
mov qword [rdi + 0x80], rax
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_SetThreadContext]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [rsp + 0x50]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r14, qword [rsp + 0x4f8]
xor eax, eax
mov rsi, qword [rsp + 0x518]
mov rbp, qword [rsp + 0x510]
mov rdi, qword [rsp + 0x520]
mov r15, qword [rsp + 0x4f0]
mov rcx, qword [rsp + 0x4e0]
xor rcx, rsp
call fcn.140001510
add rsp, 0x500
pop rbx
ret
Function at 0x180001680
Capabilities:
Query or enumerate registry value

Disassembly:
sub rsp, 0x38
lea rax, [rsp + 0x58]
lea rdx, [0x180001d20]
mov r9d, 1
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x48], 4
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 0
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x180001713
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x48]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [0x180001d40]
xor r8d, r8d
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x58]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
mov rbx, qword [rsp + 0x30]
jne 0x180001713
cmp dword [rsp + 0x40], 0
jne 0x180001de8
xor eax, eax
add rsp, 0x38
ret
mov eax, 1
add rsp, 0x38
ret

Function at 0x180001830
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x1800240b0]
and qword [rbp + 0x18], 0
movabs rbx, 0x2b992ddfa232
cmp rax, rbx
je 0x180001eeb
mov rbx, qword [rsp + 0x48]
not rax
mov qword [0x180024030], rax
add rsp, 0x20
pop rbp
ret
lea rcx, [rbp + 0x18]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
xor qword [rbp + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
xor qword [rbp + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, eax
shl rax, 0x18
xor qword [rbp + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [rbp + 0x10]
mov eax, eax
xor rax, qword [rbp + 0x10]
xor rax, rcx
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x10], rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [rbp + 0x20]
shl rax, 0x20
movabs rcx, 0xffffffffffff
xor rax, qword [rbp + 0x20]
xor rax, qword [rbp + 0x10]
and rax, rcx
movabs rcx, 0x2b992ddfa233
cmp rax, rbx
cmove rax, rcx
mov qword [0x1800240b0], rax
jmp 0x18000185c

Function at 0x180001f90
Capabilities:
Terminate process

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
add rsp, 0x20
pop rbx
jmp qword [sym.imp.KERNEL32.dll_TerminateProcess]
Function at 0x18000308c
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x590]
sub rsp, 0x690
mov rax, qword [0x1800240b0]
xor rax, rsp
mov qword [rbp + 0x580], rax
mov eax, dword [0x180020834]
xor r14d, r14d
mov r12d, r8d
lea edi, [r14 + 0x41]
mov dword [rsp + 0x50], eax
movzx eax, word [0x180020838]
lea ebx, [rdi - 0x40]
mov r15, rdx
mov r13, rcx
mov esi, ebx
mov word [rsp + 0x54], ax
test r12d, esi
je 0x1800032cd
lea rcx, [0x180003310]
movzx edx, di
call qword [sym.imp.ntdll.dll_DbgPrint]
lea r8, [rsp + 0x50]
lea rcx, [rbp + 0x370]
mov edx, 0x104
mov word [rsp + 0x50], di
call fcn.1800035e0
test eax, eax
js 0x1800032cd
lea rdx, [0x180020840]
lea rcx, [rbp + 0x370]
mov r8d, 0x104
call fcn.18001a2a4
test eax, eax
je 0x1800032cd
lea r9, [rsp + 0x30]
lea rcx, [rbp + 0x370]
mov r8d, ebx
xor edx, edx
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1800032c8
lea r8, [0x180020858]
lea rcx, [rsp + 0x60]
mov edx, 0xff
call fcn.1800035e0
test eax, eax
js 0x1800031d9
lea rcx, [rbp + 0x160]
call fcn.180015940
test eax, eax
je 0x1800031d9
lea r8, [0x180020830]
lea rcx, [rsp + 0x60]
mov edx, 0xff
call fcn.180003560
test eax, eax
js 0x1800031d9
lea r8, [rbp + 0x160]
lea rcx, [rsp + 0x60]
mov edx, 0xff
call fcn.180003560
test eax, eax
js 0x1800031d9
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.SETUPAPI.dll_SetupGetLineCountW]
cmp eax, 0xffffffff
jne 0x18000320e
lea r8, [0x180020858]
lea rcx, [rsp + 0x60]
mov edx, 0xff
call fcn.1800035e0
test eax, eax
js 0x1800032bf
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.SETUPAPI.dll_SetupGetLineCountW]
cmp eax, 0xffffffff
je 0x1800032bf
lea r9, [rsp + 0x38]
lea r8, [0x180003330]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
jmp 0x1800032b7
and qword [rsp + 0x20], 0
lea r8, [rbp + 0x160]
lea rcx, [rsp + 0x38]
mov r9d, 0x104
mov edx, 1
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x1800032a0
lea rdx, [rbp + 0x160]
lea rcx, [0x180003348]
call qword [sym.imp.ntdll.dll_DbgPrint]
mov rdx, qword [r15 + 0xa0]
mov rcx, qword [r15 + 8]
lea r8, [rbp + 0x160]
call fcn.1800149fc
test eax, eax
je 0x1800032a0
lea r8, [rsp + 0x50]
mov rdx, rbx
mov rcx, r13
call fcn.180003360
mov r14d, 1
mov qword [r15 + 0x98], rax
lea r8, [rsp + 0x38]
lea rdx, [0x180003330]
lea rcx, [rsp + 0x38]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextMatchLineW]
test eax, eax
jne 0x18000322d
mov rcx, rbx
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov ebx, 1
add di, bx
add esi, esi
cmp di, 0x5a
jbe 0x1800030e7
mov eax, r14d
mov rcx, qword [rbp + 0x580]
xor rcx, rsp
call fcn.180001ac0
mov rbx, qword [rsp + 0x6e0]
add rsp, 0x690
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x180003360
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x5f0]
sub rsp, 0x6f0
mov rax, qword [0x1800240b0]
xor rax, rsp
mov qword [rbp + 0x5e0], rax
mov rsi, r8
mov r14, rcx
mov rdi, rdx
mov r15d, 0xff
lea r8, [0x180003540]
lea rcx, [rbp - 0x40]
mov edx, r15d
xor ebx, ebx
call fcn.1800035e0
test eax, eax
js 0x180003404
lea rcx, [rbp + 0x1c0]
call fcn.180015940
test eax, eax
je 0x180003404
lea r8, [0x180020830]
lea rcx, [rbp - 0x40]
mov edx, r15d
call fcn.180003560
test eax, eax
js 0x180003404
lea r8, [rbp + 0x1c0]
lea rcx, [rbp - 0x40]
mov edx, r15d
call fcn.180003560
test eax, eax
js 0x180003404
lea rdx, [rbp - 0x40]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupGetLineCountW]
cmp eax, 0xffffffff
jne 0x180003435
lea r8, [0x180003540]
lea rcx, [rbp - 0x40]
mov rdx, r15
call fcn.1800035e0
test eax, eax
js 0x180003510
lea rdx, [rbp - 0x40]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupGetLineCountW]
cmp eax, 0xffffffff
je 0x180003510
lea r15, [0x180003550]
lea r9, [rbp - 0x60]
lea rdx, [rbp - 0x40]
mov r8, r15
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x180003510
mov edi, 0x104
lea r8, [rbp + 0x1c0]
lea rcx, [rbp - 0x60]
mov edx, 1
mov r9d, edi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x180003510
lea rcx, [rbp + 0x3d0]
mov r8, rsi
mov edx, edi
call fcn.1800035e0
test eax, eax
js 0x180003510
lea rdx, [rbp + 0x1c0]
lea rcx, [rbp + 0x3d0]
mov r8d, edi
call fcn.18001a2a4
test eax, eax
je 0x180003510
mov edi, 0x70
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8d, edi
call sub.msvcrt.dll_memset
lea rax, [rbp + 0x3d0]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x34], 0x4040
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x60], 5
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x18000350c
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x180003510
mov rbx, qword [rbp - 0x68]
mov rax, rbx
mov rcx, qword [rbp + 0x5e0]
xor rcx, rsp
call fcn.180001ac0
mov rbx, qword [rsp + 0x730]
add rsp, 0x6f0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x18000c804
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x1f8]
sub rsp, 0x2f0
mov rax, qword [0x1800240b0]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
xor esi, esi
mov rdi, rcx
lea rcx, [rsp + 0x62]
lea r8d, [rsi + 0x7e]
xor edx, edx
mov qword [rsp + 0x50], rsi
mov word [rsp + 0x60], si
call sub.msvcrt.dll_memset
lea rcx, [rbp - 0x1e]
xor edx, edx
mov r8d, 0x1fe
mov word [rbp - 0x20], si
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x50]
lea rdx, [0x18000ca20]
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 0x18000c9a1
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x48]
lea rdx, [0x18000cab8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x48], 0x80
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, 0x410
test eax, eax
jne 0x18000c8e8
lea r8, [rsp + 0x60]
mov edx, ebx
mov rcx, rdi
mov word [rbp - 0x22], si
call fcn.1800035e0
jmp 0x18000c935
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rsi
xor r9d, r9d
xor edx, edx
mov ecx, 0x1100
mov r8d, 0x800f0248
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
je 0x18000c935
mov r8, qword [rsp + 0x40]
mov rdx, rbx
mov rcx, rdi
call fcn.1800035e0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x48]
lea rdx, [0x18000cad0]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x48], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18000c994
lea r8, [0x18000cae8]
mov rdx, rbx
mov rcx, rdi
mov word [rbp + 0x1de], si
call fcn.180003560
lea r8, [rbp - 0x20]
mov rdx, rbx
mov rcx, rdi
call fcn.180003560
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x18000c9f0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rsi
xor r9d, r9d
xor edx, edx
mov ecx, 0x1100
mov r8d, 0x800f0248
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
je 0x18000c9f0
mov r8, qword [rsp + 0x40]
mov edx, 0x410
mov rcx, rdi
call fcn.1800035e0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.180001ac0
lea r11, [rsp + 0x2f0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x18000fef0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
mov rbp, rsp
sub rsp, 0x30
and dword [rcx], 0
lea rax, [rbp + 0x20]
mov rbx, rcx
lea rdx, [0x180020cb0]
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x18000fffd
and dword [rbp + 0x10], eax
mov rcx, qword [rbp + 0x20]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
lea rdx, [0x180010008]
xor r9d, r9d
xor r8d, r8d
mov dword [rbp + 0x18], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18000ff70
cmp dword [rbp + 0x10], eax
je 0x18000ff70
or dword [rbx], 8
mov rcx, qword [rbp + 0x20]
and dword [rbp + 0x10], 0
lea rax, [rbp + 0x18]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
lea rdx, [0x180010028]
xor r9d, r9d
xor r8d, r8d
mov dword [rbp + 0x18], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18000ffb0
cmp dword [rbp + 0x10], eax
je 0x18000ffb0
or dword [rbx], 4
mov rcx, qword [rbp + 0x20]
and dword [rbp + 0x10], 0
lea rax, [rbp + 0x18]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
lea rdx, [0x180010050]
xor r9d, r9d
xor r8d, r8d
mov dword [rbp + 0x18], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18000fff3
cmp dword [rbp + 0x10], eax
je 0x18000fff3
or dword [rbx], 0x220
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rbp
ret
Function at 0x180011bd0
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x3b8]
sub rsp, 0x4b0
mov rax, qword [0x1800240b0]
xor rax, rsp
mov qword [rbp + 0x3a0], rax
xor eax, eax
mov rbx, rdx
mov qword [rsp + 0x20], rdx
mov edi, eax
mov rsi, rcx
call fcn.18001022c
test eax, eax
jne 0x180011dfd
lea rcx, [rbp + 0x190]
mov r8, rbx
mov edx, 0x104
call fcn.1800035e0
test eax, eax
js 0x180011dfd
lea rdx, [0x1800247f8]
lea rcx, [rbp + 0x190]
mov r8d, 0x104
call fcn.18001a2a4
test eax, eax
je 0x180011dfd
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
mov qword [rsp + 0x30], rax
cmp rax, 0xffffffffffffffff
je 0x180011dfd
mov rdx, qword [rsp + 0x20]
mov rcx, rsi
call fcn.1800123e8
lea edx, [rdi + 2]
test eax, eax
je 0x180011ca4
mov rcx, qword [rsi + 8]
mov r8d, edx
mov rdx, qword [rsi + 0xa0]
call qword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
mov rcx, rsi
call fcn.18001022c
xor edx, edx
test eax, eax
jne 0x180011d9b
test byte [rsp + 0x40], 0x10
je 0x180011d85
movzx ecx, word [rsp + 0x6c]
movzx eax, word [0x180020830]
sub ecx, eax
jne 0x180011cdf
movzx ecx, word [rsp + 0x6e]
movzx eax, word [0x180020832]
sub ecx, eax
test ecx, ecx
je 0x180011d85
movzx ecx, word [rsp + 0x6c]
movzx eax, word [0x180020d18]
sub ecx, eax
jne 0x180011d15
movzx ecx, word [rsp + 0x6e]
movzx eax, word [0x180020d1a]
sub ecx, eax
jne 0x180011d15
movzx ecx, word [rsp + 0x70]
movzx eax, word [0x180020d1c]
sub ecx, eax
test ecx, ecx
je 0x180011d85
lea rax, [rsp + 0x6c]
or rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], dx
jne 0x180011d22
add bx, bx
movzx eax, bx
mov qword [rsp + 0x38], rax
lea rcx, [rax + 0x20]
call qword [sym.imp.msvcrt.dll_malloc]
mov qword [rsp + 0x28], rax
test rax, rax
je 0x180011dfd
mov r8, qword [rsp + 0x38]
lea rcx, [rax + 0x18]
mov word [rax + 8], bx
add bx, 2
lea rdx, [rsp + 0x6c]
add r8, 2
mov word [rax + 0xa], bx
mov qword [rax + 0x10], rcx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov qword [rax], rdi
mov rdi, rax
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x180011ca4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x180011df8
mov r8, qword [rsp + 0x20]
lea rcx, [rbp + 0x190]
mov edx, 0x104
mov rbx, rdi
call fcn.1800035e0
test eax, eax
js 0x180011df8
mov rdx, qword [rdi + 0x10]
lea rcx, [rbp + 0x190]
mov r8d, 0x104
call fcn.18001a2a4
test eax, eax
je 0x180011df8
mov rdi, qword [rdi]
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
lea rdx, [rbp + 0x190]
mov rcx, rsi
call fcn.180011bd0
test rdi, rdi
jne 0x180011da6
mov rcx, qword [rbp + 0x3a0]
xor rcx, rsp
call fcn.180001ac0
lea r11, [rsp + 0x4b0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x180014fa8
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x5b0]
sub rsp, 0x6b0
mov rax, qword [0x1800240b0]
xor rax, rsp
mov qword [rbp + 0x5a0], rax
xor eax, eax
mov rdi, rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r8
mov rsi, rdx
lea rcx, [rbp + 0x392]
xor edx, edx
mov r8d, 0x206
mov ebx, eax
mov word [rbp + 0x390], ax
call sub.msvcrt.dll_memset
xor eax, eax
lea rcx, [rbp + 0x182]
xor edx, edx
mov r8d, 0x206
mov word [rbp + 0x180], ax
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8d, 0x250
call sub.msvcrt.dll_memset
lea rcx, [rbp + 0x390]
mov r8, rdi
mov edx, 0x104
call fcn.1800035e0
test eax, eax
jns 0x18001504e
movzx ebx, ax
jmp 0x18001519e
lea rdx, [0x180020ab0]
lea rcx, [rbp + 0x390]
mov r8d, 0x104
call fcn.18001a2a4
test eax, eax
jne 0x180015078
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x18001519e
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18001506b
lea rdx, [0x180020830]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
test eax, eax
je 0x180015170
lea rdx, [0x180020d18]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
test eax, eax
je 0x180015170
mov r8, qword [rsp + 0x28]
lea rcx, [rbp + 0x180]
mov edx, 0x104
call fcn.1800035e0
test eax, eax
js 0x180015192
lea rdx, [rsp + 0x5c]
lea rcx, [rbp + 0x180]
mov r8d, 0x104
call fcn.18001a2a4
test eax, eax
je 0x180015188
test byte [rsp + 0x30], 0x10
jne 0x180015156
lea rcx, [rsp + 0x5c]
mov edx, 0x2e
call qword [sym.imp.msvcrt.dll_wcsrchr]
test rax, rax
je 0x180015170
lea rdx, [0x180020d20]
mov rcx, rax
call qword [sym.imp.msvcrt.dll__wcsicmp]
test eax, eax
jne 0x180015170
mov rcx, rsi
call qword [0x180027998]
mov rdx, qword [rsp + 0x20]
lea rcx, [rbp + 0x180]
call rsi
test eax, eax
jne 0x180015170
mov ebx, 0x3e3
jmp 0x180015195
mov r8, qword [rsp + 0x20]
lea rcx, [rbp + 0x180]
mov rdx, rsi
call fcn.180014fa8
mov ebx, eax
test eax, eax
jne 0x180015195
lea rdx, [rsp + 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x180015093
jmp 0x180015195
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x180015195
movzx ebx, ax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, ebx
mov rcx, qword [rbp + 0x5a0]
xor rcx, rsp
call fcn.180001ac0
mov rbx, qword [rsp + 0x6d0]
add rsp, 0x6b0
pop rdi
pop rsi
pop rbp
ret
Function at 0x1800151c8
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xd0
mov rax, qword [0x1800240b0]
xor rax, rsp
mov qword [rbp + 0x47], rax
xor ebx, ebx
lea rax, [rbp - 0x19]
lea r9, [rbp - 0x35]
mov dword [rsp + 0x38], ebx
mov qword [rsp + 0x30], rbx
lea r8, [0x1800152d0]
mov dword [rsp + 0x28], 0x10
mov dword [rbp - 0x39], ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDevicePropertyW]
test eax, eax
je 0x1800152ad
cmp dword [rbp - 0x35], 0xd
jne 0x1800152ad
lea r8d, [rbx + 0x27]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x19]
call qword [sym.imp.SETUPAPI.dll_pSetupStringFromGuid]
test eax, eax
jne 0x1800152ad
lea rax, [rbp - 0x29]
lea rdx, [0x1800152f0]
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 0x1800152ad
mov rcx, qword [rbp - 0x29]
lea rax, [rbp - 0x31]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x39]
lea rdx, [rbp - 9]
xor r8d, r8d
mov dword [rbp - 0x31], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [rbp - 0x39]
test eax, eax
cmovne ecx, ebx
mov dword [rbp - 0x39], ecx
mov rcx, qword [rbp - 0x29]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rbp - 0x39]
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.180001ac0
mov rbx, qword [rsp + 0xf0]
add rsp, 0xd0
pop rbp
ret