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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x260
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
push edi
call fcn.7cfdc918
cmp eax, 0xffffffff
je 0x7cfdc99d
imul eax, eax, 0x1c
mov ecx, dword [esi + 0x104]
mov bl, byte [ecx + eax + 0x10]
jmp 0x7cfdca3d
mov al, byte [edi + 2]
cmp al, byte [esi + 0x54]
je 0x7cfdc9ae
mov eax, dword [esi + 0x50]
lea eax, [eax + edi + 4]
jmp 0x7cfdc9b1
lea eax, [edi + 4]
lea ecx, [ebp - 0x58]
push 0x27
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_Ordinal_24]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x260]
push 0x7cf3ccdc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 4]
mov bl, 0x80
push eax
lea eax, [ebp - 0x260]
push eax
push ParseURLA
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x7cfdca3d
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp + 8]
push eax
push 0
push 0
push 0x7cf404e8
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
test eax, eax
jne 0x7cfdca34
push 8
call dword [sym.imp.SHLWAPI.dll_Ordinal_461]
test al, 8
je 0x7cfdca31
cmp dword [ebp + 8], 0x50
ja 0x7cfdca31
mov dword [ebp + 8], 0x51
mov bl, byte [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov al, bl
pop esi
pop ebx
leave
ret 4

Function at 0x7cfdd1da
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
push esi
mov esi, dword [ebp + 8]
push edi
push 0x10
pop ecx
mov edi, 0x7cf40438
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x7cfdd27f
lea eax, [ebp - 0x80]
push 0x27
push eax
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_Ordinal_24]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x120]
push 0x7cf40570
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp + 8]
mov esi, ParseURLA
mov dword [ebp + 8], 0x2a
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x120]
push 0
push eax
push esi
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x7cfdd27f
cmp dword [ebp - 4], 1
jne 0x7cfdd27f
lea eax, [ebp - 0x30]
push 0x7cf40548
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x7cfdd27f
push 0xa
push 0x7cf351f8
push 1
push eax
lea eax, [ebp - 0x120]
push eax
push esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
pop edi
pop esi
leave
ret 4

Function at 0x7cfdd95b
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push esi
xor esi, esi
push edi
lea eax, [ebp + 8]
push esi
push eax
push dword [ebp + 8]
mov edi, 0x80004005
call fcn.7cfdd177
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 8], esi
mov word [eax], si
je 0x7cfdd9a9
mov ecx, dword [ebp + 0x14]
add ecx, ecx
mov dword [ebp + 0x10], ecx
lea ecx, [ebp + 0x10]
push ecx
push eax
push esi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
test eax, eax
jne 0x7cfdd9a0
xor edi, edi
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
pop edi
pop esi
pop ebp
ret 0x10
Function at 0x7cfdd9fd
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x810
push ebx
push edi
xor edi, edi
lea eax, [ebp - 4]
push edi
push eax
push dword [ebp + 8]
mov dword [ebp - 8], ecx
mov ebx, 0x80004005
call fcn.7cfdd177
cmp dword [ebp - 4], edi
je 0x7cfddab4
lea eax, [ebp - 0xc]
push esi
push eax
lea eax, [ebp - 0x10]
push eax
push edi
push edi
push 0x7cf4061c
push dword [ebp - 4]
mov dword [ebp - 0xc], 4
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
test eax, eax
mov esi, 0x7cf397d0
jne 0x7cfdda65
push 1
mov ecx, dword [ebp - 8]
push dword [ebp + 0xc]
push esi
push edi
push dword [ebp + 8]
call fcn.7cfdd9b1
mov ebx, eax
cmp ebx, edi
jge 0x7cfddaaa
lea eax, [ebp + 8]
mov dword [ebp + 8], 0x800
push eax
lea eax, [ebp - 0x810]
push eax
push edi
push edi
push 0x7cf3caf0
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
test eax, eax
jne 0x7cfddaaa
cmp word [ebp - 0x810], di
je 0x7cfddaaa
push dword [ebp + 0xc]
lea eax, [ebp - 0x810]
push esi
push eax
call fcn.7cff6557
mov ebx, eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov eax, ebx
pop edi
pop ebx
leave
ret 8

Function at 0x7cfde425
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov cl, byte [eax + 2]
mov dword [ebp - 0xc], esi
cmp cl, byte [esi + 0x54]
je 0x7cfde446
mov ecx, dword [esi + 0x50]
lea eax, [ecx + eax + 4]
jmp 0x7cfde449
add eax, 4
lea ecx, [ebp + 0xc]
push ecx
push 1
push dword [ebp + 0xc]
push 0x7cf356f8
push eax
call dword [sym.imp.SHLWAPI.dll_Ordinal_344]
test eax, eax
mov dword [ebp - 4], eax
jl 0x7cfde4cb
push 4
lea eax, [ebp - 8]
pop edi
and dword [ebp + 8], 0
push eax
lea eax, [ebp + 8]
push eax
push 0
mov esi, 0x7cf357ac
push 0
push esi
mov dword [ebp - 8], edi
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
mov eax, dword [ebp + 0x10]
push edi
mov ecx, eax
and ecx, dword [ebp + 0x14]
not eax
and eax, dword [ebp + 8]
or ecx, eax
lea eax, [ebp + 8]
push eax
push edi
push 0
push esi
push dword [ebp + 0xc]
mov dword [ebp + 8], ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jle 0x7cfde4bc
and eax, 0xffff
or eax, 0x80070000
push dword [ebp + 0xc]
mov dword [ebp - 4], eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp - 0xc]
lea edi, [esi + 0x58]
mov esi, 0x7cf4c670
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 4]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
leave
ret 0x10
Function at 0x7cfde4e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov dl, byte [eax + 2]
cmp dl, byte [ecx + 0x54]
je 0x7cfde4fd
mov ecx, dword [ecx + 0x50]
lea eax, [ecx + eax + 4]
jmp 0x7cfde500
add eax, 4
lea ecx, [ebp + 8]
push ecx
push 0
push 1
push 0x7cf356f8
push eax
call dword [sym.imp.SHLWAPI.dll_Ordinal_344]
test eax, eax
jl 0x7cfde542
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0x7cf357ac
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 4]
and eax, 0x100022
leave
ret 4
Function at 0x7cfdff25
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8e4
or dword [ebp - 0x14], 0xffffffff
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
push edi
push esi
lea eax, [ebp - 0x220]
push esi
xor edi, edi
or dword [ebp - 4], 0xffffffff
push eax
mov dword [ebp - 0x10], 1
mov dword [ebp - 0xc], esi
mov word [ebp - 0x428], si
mov word [ebp - 0x630], si
mov dword [ebp - 8], esi
push esi
push dword [ebx + 0x488]
call fcn.7cf97ea1
test eax, eax
je 0x7cfe0054
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and dword [ebp - 0x14], eax
or dword [ebp - 0xc], eax
cmp edi, esi
jne 0x7cfdffe9
push 0x408
lea eax, [ebp - 0x8e4]
push 0x2b4
push eax
push esi
push dword [ebp - 8]
push dword [ebx + 0x488]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
call fcn.7cf54994
push eax
call sym.SHELL32.dll_SHGetFileInfoW
cmp word [ebp - 0x630], si
lea eax, [ebp - 0x6d0]
push eax
lea eax, [ebp - 0x630]
push eax
jne 0x7cfdffdb
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x7cfdffe9
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov edi, eax
neg edi
sbb edi, edi
neg edi
lea eax, [ebx + 0xdb8]
push 0x30
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.7cf98165
and dword [ebp - 4], eax
cmp dword [ebp - 0x10], esi
je 0x7cfe0040
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
cmp word [ebp - 0x428], si
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x428]
push eax
jne 0x7cfe0032
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x7cfe0040
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x10], eax
inc dword [ebp - 8]
push esi
lea eax, [ebp - 0x220]
push esi
push eax
push dword [ebp - 8]
jmp 0x7cfdff65
test byte [ebp - 2], 2
je 0x7cfe006e
call fcn.7cfb289e
push 1
test eax, eax
pop eax
je 0x7cfe0071
mov dword [ebx + 0x480], eax
jmp 0x7cfe0071
push 1
pop eax
test byte [ebp - 4], 0x10
je 0x7cfe007d
mov dword [ebx + 0x47c], eax
test byte [ebp - 4], 0x40
je 0x7cfe0089
mov dword [ebx + 0x484], eax
test byte [ebp - 0xc], 0x10
je 0x7cfe0095
mov dword [ebx + 0xd94], eax
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push ebx
call fcn.7cf981e0
cmp dword [ebp - 0x10], 0
push 6
lea esi, [ebx + 0x44c]
lea edi, [ebx + 0x464]
pop ecx
rep movsd dword es:[edi], dword [esi]
je 0x7cfe0101
mov esi, 0x105
lea eax, [ebp - 0x220]
push esi
push eax
push 0x2202
push dword [0x7d04cdfc]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x428]
push esi
push eax
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCatBuffW]
lea eax, [ebp - 0x428]
push 0x104
push eax
lea eax, [ebx + 0x3c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
push 0
push ebx
call fcn.7cf982aa
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x7cfe0b40
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x53c
push ebx
push esi
push edi
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
push dword [ebp + 0x18]
mov ebx, ParseURLA
mov dword [ebp - 4], 1
push dword [ebp + 0x14]
push 0
push 0
push dword [ebp + 8]
push ebx
call esi
mov edi, dword [ebp + 0x10]
test eax, eax
jne 0x7cfe0ba6
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp word [eax], cx
je 0x7cfe0ba6
mov edx, dword [edi]
mov dword [ebp + 0x18], edx
lea edx, [ebp + 0x18]
push edx
push dword [ebp + 0xc]
push ecx
push ecx
push eax
push ebx
call esi
test eax, eax
jne 0x7cfe0ba6
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
je 0x7cfe0ba6
mov eax, dword [ebp + 0x18]
jmp 0x7cfe0c2e
mov ebx, dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
and dword [ebp - 4], 0
push ebx
push dword [ebp + 0x14]
call esi
add ebx, 2
lea eax, [ebp - 0x30c]
push ebx
push eax
call esi
lea eax, [ebp - 0x30c]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
lea eax, [ebp - 0x104]
push 0x80
push eax
push 0x2780
push dword [0x7d04cdfc]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x53c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [edi]
add esp, 0xc
shr eax, 1
push eax
lea eax, [ebp - 0x53c]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [edi], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0x14

Function at 0x7cfe33bf
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
add ecx, 0xffffff5c
neg esi
sbb esi, esi
and esi, ecx
mov ecx, dword [esi + 0x80]
lea eax, [esi + 0x80]
push eax
call dword [ecx + 0x18]
mov esi, dword [esi + 0x4c]
test esi, esi
je 0x7cfe33ee
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
pop esi
ret 8
Function at 0x7cfe41ec
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x448
push ebx
mov ebx, ecx
push esi
lea ecx, [ebp - 0xc]
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
push ecx
push eax
push eax
mov dword [edi + 8], eax
push eax
lea eax, [ebp - 8]
mov word [edi], 8
push eax
push 1
push 1
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_GetNamedSecurityInfoW]
mov esi, eax
test esi, esi
jne 0x7cfe43d3
mov eax, dword [ebx + 0x474]
test eax, eax
je 0x7cfe4262
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
je 0x7cfe4262
mov eax, dword [ebx + 0x478]
test eax, eax
je 0x7cfe4262
push eax
call fcn.7cf55cba
push dword [ebp - 0xc]
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x7cfe43c5
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
mov esi, 0x104
je 0x7cfe4293
push esi
lea eax, [ebp - 0x240]
push dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea eax, [ebp - 0x240]
push eax
call fcn.7cfe41be
jmp 0x7cfe42a9
mov edx, dword [ebp + 8]
lea eax, [ebx + 0x480]
movzx ecx, word [edx]
cmp ecx, dword [eax]
jne 0x7cfe42ae
mov eax, dword [ebx + 0x484]
mov dword [ebp + 8], eax
jmp 0x7cfe42ed
mov dword [eax], ecx
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x240]
push eax
push edx
mov dword [ebp - 4], esi
call fcn.7cf555b7
test eax, eax
jne 0x7cfe42d9
lea eax, [ebp - 0x240]
push eax
call fcn.7cfe41be
mov dword [ebp + 8], eax
jmp 0x7cfe42dd
and dword [ebp + 8], 0
push dword [ebp + 8]
lea eax, [ebx + 0x484]
push eax
call dword [sym.imp.COMCTL32.dll_Str_SetPtrW]
lea eax, [ebp - 0x18]
and dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x448]
push eax
mov dword [ebp - 0x10], esi
push dword [ebp - 8]
mov dword [ebp - 0x14], 0x10
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_LookupAccountSidW]
test eax, eax
je 0x7cfe4370
cmp word [ebp - 0x38], 0
je 0x7cfe4365
lea eax, [ebp - 0x38]
push 0x7cf4119c
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpCW]
test eax, eax
je 0x7cfe4365
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x7cf350f8
lea eax, [ebp - 0x240]
push esi
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x14
lea eax, [ebp - 0x240]
jmp 0x7cfe436b
lea eax, [ebp - 0x448]
mov dword [ebp + 0xc], eax
jmp 0x7cfe438f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp - 8]
call fcn.7d03f9b0
test eax, eax
je 0x7cfe4393
mov dword [ebp - 4], 1
xor esi, esi
jmp 0x7cfe4397
and dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
mov ecx, ebx
push eax
mov dword [ebp + 8], eax
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.7cfe417d
push dword [ebp + 8]
call fcn.7cf55cba
cmp dword [ebp - 4], 0
mov dword [edi + 8], eax
je 0x7cfe43c5
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_LocalFree]
test esi, esi
jne 0x7cfe43d3
cmp dword [edi + 8], esi
jne 0x7cfe43d1
push 0xe
pop esi
test esi, esi
jle 0x7cfe43e1
and esi, 0xffff
or esi, 0x80070000
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x7cfe62f9
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
cmp dword [esi + 0x2d4], eax
mov edi, dword [sym.imp.COMCTL32.dll_DPA_CreateEx]
jne 0x7cfe632c
call ebx
push eax
push 0x40
call edi
test eax, eax
mov dword [esi + 0x2d4], eax
je 0x7cfe6362
xor eax, eax
cmp dword [esi + 0x2d8], eax
jne 0x7cfe6347
call ebx
push eax
push 0x40
call edi
test eax, eax
mov dword [esi + 0x2d8], eax
je 0x7cfe6362
xor eax, eax
cmp dword [esi + 0x78], eax
jne 0x7cfe636c
push esi
push eax
push eax
push eax
push eax
push 0x7cfe5bc2
call sub.SHLWAPI.dll_SHCreateWorkerWindowW
test eax, eax
mov dword [esi + 0x78], eax
jne 0x7cfe636c
mov eax, 0x8007000e
jmp 0x7cfe644d
push esi
call fcn.7cfe6118
mov ebx, eax
xor edi, edi
cmp ebx, edi
jge 0x7cfe639d
cmp dword [ebp + 0xc], edi
je 0x7cfe644b
mov ecx, esi
call fcn.7cfe626c
test eax, eax
je 0x7cfe644b
mov eax, dword [esi]
push esi
call dword [eax + 0x20]
jmp 0x7cfe644b
push dword [ebp + 0x14]
lea eax, [ebp + 8]
push dword [ebp + 0x10]
push eax
push esi
call fcn.7cfe5f47
mov ebx, eax
cmp ebx, edi
jl 0x7cfe6441
cmp dword [ebp + 0x10], edi
jl 0x7cfe63c8
mov eax, dword [esi + 0x90]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x64]
cmp dword [ebp + 0x14], edi
je 0x7cfe63dd
push dword [ebp + 0x14]
call sym.SHELL32.dll_ILClone
mov dword [esi + 0x534], eax
jmp 0x7cfe63e3
push esi
call fcn.7cfe66af
mov edx, dword [ebp + 8]
mov eax, dword [esi + 0x90]
push dword [edx + 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
lea eax, [ebp - 4]
inc dword [esi + 0x2a4]
push eax
push edi
push dword [ebp + 8]
mov dword [esi + 0x2b0], edi
push 0x7cfe5c9a
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
je 0x7cfe6425
push eax
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x7cfe644b
push dword [ebp + 8]
dec dword [esi + 0x2a4]
call fcn.7cfe604f
push 0x1021
mov ecx, esi
call fcn.7cfe66f1
jmp 0x7cfe644b
push ebx
mov ecx, esi
call fcn.7cfe6454
mov ebx, eax
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x7cfea78d
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 8], 1
push edi
push dword [ebp + 0xc]
push esi
call fcn.7cfea91a
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpynW]
sub ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
sar ecx, 1
sub edi, ecx
cmp dword [esi + 4], 0
jg 0x7cfea84a
test eax, eax
je 0x7cfea84a
xor esi, esi
mov dword [ebp - 4], 0x7cf419e8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 4]
jne 0x7cfea7fd
mov eax, ecx
push dword [eax]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x7cfea80d
add dword [ebp - 4], 0x14
inc esi
cmp dword [ebp - 4], 0x7cf41b3c
jb 0x7cfea7de
jmp 0x7cfea84a
mov eax, dword [ebp + 0x14]
and dword [ebp - 8], 0
test eax, eax
je 0x7cfea824
lea ecx, [esi + esi*4]
mov ecx, dword [ecx*4 + 0x7cf419f4]
mov dword [eax], ecx
lea esi, [esi + esi*4]
push edi
shl esi, 2
push dword [esi + 0x7cf419f0]
push dword [ebp - 0xc]
call ebx
cmp dword [ebp + 0x18], 0
je 0x7cfea84a
push dword [ebp + 0x1c]
push dword [esi + 0x7cf419f8]
push dword [ebp + 0x18]
call ebx
cmp dword [ebp - 8], 1
jne 0x7cfea86a
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x7cfea85f
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x7cfea86a
and word [eax], 0
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x7cfea8af
lea eax, [ebp - 0x214]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push dword [ebp - 0xc]
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
jne 0x7d050c03
mov eax, 0x80004005
jmp 0x7cfea8b2
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret 0x18
push dword [ebp + 0x10]
lea eax, [ebp - 0x41c]
push eax
push dword [ebp + 0xc]
call ebx
jmp 0x7cfea8af

Function at 0x7cfec272
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
lea eax, [ebp - 4]
mov dword [ebp - 4], 0x104
push eax
lea eax, [ebp - 0x20c]
push eax
push 0
push dword [ebp + 8]
push 2
push 0x40
call dword [sym.imp.SHLWAPI.dll_AssocQueryStringByKeyW]
test eax, eax
jl 0x7cfec2b9
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 6
sub al, 6
neg al
sbb eax, eax
inc eax
jmp 0x7cfec2bb
xor eax, eax
leave
ret 4
Function at 0x7cfec2bf
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
cmp eax, dword [ebp + 0x18]
mov dword [ebp - 4], ecx
jae 0x7cfec3cf
mov edx, dword [ebp + 0x14]
lea eax, [eax + eax*2]
push edi
mov edi, dword [sym.imp.SHLWAPI.dll_StrDupW]
push esi
lea esi, [edx + eax*4 + 8]
jmp 0x7cfec2ef
xor ecx, ecx
push ecx
push ecx
push ecx
lea eax, [ebp - 8]
push ecx
push eax
lea eax, [ebp - 0x210]
mov dword [ebp - 8], 0x104
push eax
push dword [ebp - 4]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x7cfec3ca
push eax
lea eax, [ebp - 0x210]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.COMCTL32.dll_Ordinal_402]
test eax, eax
jge 0x7cfec3bb
lea eax, [ebp - 0x210]
push eax
call fcn.7cf59024
test eax, eax
jne 0x7cfec3bb
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.7cfec21d
test eax, eax
je 0x7cfec3bb
push dword [ebp + 0x14]
call fcn.7cfec272
test eax, eax
jne 0x7cfec3bb
lea eax, [ebp - 0x210]
push 0x104
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push 4
push 0x42
call dword [sym.imp.SHLWAPI.dll_AssocQueryStringByKeyW]
test eax, eax
jl 0x7cfec3ac
lea eax, [ebp - 0x210]
push eax
call edi
mov dword [esi - 8], eax
xor eax, eax
cmp dword [ebp + 0x10], eax
je 0x7cfec39a
push dword [ebp + 0x10]
call edi
mov dword [esi - 4], eax
mov eax, dword [ebp + 0x14]
and dword [ebp + 0x14], 0
inc dword [ebp + 0x1c]
mov dword [esi], eax
add esi, 0xc
cmp dword [ebp + 0x14], 0
je 0x7cfec3bb
push dword [ebp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0x1c]
inc dword [ebp - 4]
cmp eax, dword [ebp + 0x18]
jb 0x7cfec2ed
mov eax, dword [ebp + 0x1c]
pop esi
pop edi
leave
ret 0x18
Function at 0x7cff1d4d
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
push ebx
push esi
lea eax, [ebp - 0x208]
push edi
xor ebx, ebx
push eax
push ebx
push dword [ebp + 8]
call fcn.7cf8d266
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x208]
push eax
call edi
mov esi, dword [ebp + 0x10]
mov ecx, 0x101
sub ecx, eax
lea eax, [ebp - 0x208]
push eax
mov dword [esi], ecx
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
push ebx
push ebx
lea eax, [ebp + 8]
push ebx
push eax
push ebx
push ebx
lea eax, [ebp - 0x208]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x7cff1db9
mov eax, dword [ebp + 8]
cmp dword [esi], eax
jbe 0x7cff1dc0
mov dword [esi], eax
jmp 0x7cff1dc0
mov dword [ebp + 8], 0xff
cmp dword [ebp + 0xc], ebx
je 0x7cff1e26
lea eax, [ebp - 0x208]
push 0x104
push eax
push dword [ebp + 0xc]
call fcn.7cf4e858
lea eax, [ebp - 0x208]
push eax
call edi
cmp dword [esi], eax
jae 0x7cff1de8
mov dword [esi], eax
push dword [ebp + 0xc]
call fcn.7cf500d2
test eax, eax
jne 0x7cff1e17
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
call edi
sub dword [esi], eax
cmp dword [ebp + 8], 0xc
mov eax, dword [esi]
ja 0x7cff1e17
push 8
pop ecx
cmp eax, ecx
jbe 0x7cff1e17
mov dword [esi], ecx
push dword [ebp + 0xc]
call fcn.7cf4ec47
test eax, eax
je 0x7cff1e26
add dword [esi], 0xfffffff4
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0xc

Function at 0x7cff2a1d
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
and dword [ebp - 4], 0
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x488], 0
je 0x7cff2ad1
lea eax, [ebp - 8]
push eax
push 0
push dword [esi + 0x48c]
push dword [esi + 0x18]
call fcn.7cf69f6a
cmp eax, 0xffffffff
je 0x7cff2ae4
lea edi, [esi + 0x228]
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 8]
call fcn.7cf4d635
push eax
push dword [esi + 0xc]
call fcn.7cf8d266
push dword [ebp - 8]
call sym.SHELL32.dll_ILFree
lea eax, [ebp - 0x210]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
jne 0x7cff2abb
push dword [esi + 0x48c]
push dword [esi + 0x18]
call dword [sym.imp.COMCTL32.dll_Ordinal_156]
lea eax, [ebp - 8]
push eax
push 0
push dword [esi + 0x48c]
push dword [esi + 0x18]
call fcn.7cf69f6a
cmp eax, 0xffffffff
jne 0x7cff2a5e
jmp 0x7cff2ae4
inc dword [esi + 0x48c]
push eax
mov dword [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x7cff2ae4
lea eax, [esi + 0x228]
push eax
push dword [esi + 0x18]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
leave
ret