joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404840
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40bd4d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x84
push ebx
push esi
push edi
mov dword [ebp - 4], 1
cmp dword [ebp + 0x10], 0
jne 0x4048af
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x20], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0040af78
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 2
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
lea edx, [ebp + 8]
push edx
call fcn.0040af78
mov dword [ebp - 0x3c], eax
mov byte [ebp - 4], 1
call fcn.00404630
add esp, 0xc
jmp 0x4049e5
cmp dword [ebp + 0x10], 1
jne 0x4048f6
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0040af78
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov byte [ebp - 4], 3
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea edx, [ebp + 8]
push edx
call fcn.0040af78
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 1
call fcn.00404630
add esp, 0xc
jmp 0x4049e5
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0040af78
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x10]
push ecx
call fcn.004044f0
add esp, 0xc
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], 0
push 0x40d908
lea ecx, [ebp + 8]
call fcn.004023e0
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x404970
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString
jmp 0x404a00
push 2
push 0
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.00402370
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
push eax
call fcn.00404580
add esp, 4
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x14]
push ecx
push 4
push 1
lea edx, [ebp - 0x1c]
push edx
call dword [sym.imp.MSVCRT.dll_fwrite]
add esp, 0x10
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
push 1
lea ecx, [ebp - 0x10]
call fcn.004023e0
push eax
call dword [sym.imp.MSVCRT.dll_fwrite]
add esp, 0x10
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x404c90
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40bdb1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x16c
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
push connect
lea ecx, [ebp - 0x18]
call fcn.00403140
mov dword [ebp - 4], 0
push str.SoftwareCintel
lea ecx, [ebp - 0x18]
call fcn.00403280
test eax, eax
jne 0x404cfa
push str.Software
lea ecx, [ebp - 0x18]
call fcn.00403280
test eax, eax
je 0x404cfa
push str.Cintel
lea ecx, [ebp - 0x18]
call fcn.00403220
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
add eax, 0xd0
push eax
push str.LogPath
lea ecx, [ebp - 0x18]
call fcn.004035c0
push 0x410054
push str.LCryptType
lea ecx, [ebp - 0x18]
call fcn.00403480
lea ecx, [ebp - 0x18]
call fcn.004032d0
mov ecx, dword [ebp - 0x10]
add ecx, 0xd0
call fcn.004023b0
test eax, eax
je 0x404ddc
push 0
push 0x1a
lea ecx, [ebp - 0x120]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
push str.cincc_
lea edx, [ebp - 0x120]
push edx
lea ecx, [ebp - 0x124]
call sub.MFC42.DLL_CString::CString_1
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x130], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x130]
push ecx
lea edx, [ebp - 0x128]
push edx
call sub.MFC42.DLL_operator
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x138], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x138]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0xd0
call sub.MFC42.DLL_CString::operator_1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x128]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x124]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004031c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4056b0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40bfd5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
push ebx
push esi
push edi
mov dword [ebp - 0x90], 0
mov dword [ebp - 4], 3
lea ecx, [ebp + 0x14]
call fcn.004023e0
push eax
push 0x80
lea eax, [ebp - 0x8c]
push eax
push 0x40d4bc
lea ecx, [ebp + 0x10]
call fcn.004023e0
push eax
lea ecx, [ebp + 0xc]
call fcn.004023e0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x8c]
push ecx
mov ecx, dword [ebp + 8]
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [ebp - 0x90]
or edx, 1
mov dword [ebp - 0x90], edx
mov byte [ebp - 4], 2
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x10]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x14]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x407cf0
Capabilities:
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40c4c2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
push 0x40dd9c
call fcn.004039e0
add eax, 0xcc
push eax
lea eax, [ebp - 0x14]
push eax
call sub.MFC42.DLL_operator
mov dword [ebp - 4], 0
push str.CCUpdate.cfg
call fcn.004039e0
add eax, 0xcc
push eax
lea ecx, [ebp - 0x18]
push ecx
call sub.MFC42.DLL_operator
mov byte [ebp - 4], 1
push 0
lea ecx, [ebp - 0x18]
call fcn.004023e0
push eax
lea ecx, [ebp - 0x14]
call fcn.004023e0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x407da2
lea ecx, [ebp - 0x14]
call fcn.004023e0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp - 0x1c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x1c]
jmp 0x407dc7
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x408d20
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40c6a2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push 0
mov ecx, 0x4100bc
call fcn.004023e0
push eax
mov ecx, dword [0x41005c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
cmp dword [ebp - 0x14], 0
jg 0x408d9e
mov ecx, dword [ebp - 0x10]
add ecx, 0x160
call sub.MFC42.DLL_CString::Empty
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x40dea8
call sub.MFC42.DLL_CString::CString_1
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x10]
call fcn.0040a6f0
xor eax, eax
jmp 0x408eaf
mov edx, dword [ebp - 0x14]
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov ecx, 0x4100bc
call fcn.004023e0
push eax
mov eax, dword [0x41005c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::CString_2
mov dword [ebp - 4], 0
cmp dword [ebp - 0x18], 0
jne 0x408e05
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x2c]
jmp 0x408eaf
mov ecx, dword [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0040afc6
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [ebp - 0x1c]
call fcn.004023b0
test eax, eax
jne 0x408e96
push 0x5c
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::ReverseFind
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
push ecx
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::Left
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.004039e0
mov ecx, eax
add ecx, 0xcc
call sub.MFC42.DLL_CString::operator_1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x34]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 0x38], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x38]
jmp 0x408eaf
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4091b0
Capabilities:
Enumerate processes
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push ebx
push esi
push edi
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x120]
push eax
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x128], 0x128
lea ecx, [ebp - 0x128]
push ecx
mov edx, dword [ebp - 0x12c]
push edx
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x40925d
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x104]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x409246
mov edx, dword [ebp - 0x120]
push edx
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x130], eax
push 0
mov eax, dword [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
lea ecx, [ebp - 0x128]
push ecx
mov edx, dword [ebp - 0x12c]
push edx
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x409206
mov eax, dword [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4099e0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40c7cb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
push str.UpdateInfo
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 1
push str.FileNumber
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004023e0
push eax
push 0
lea ecx, [ebp - 0x18]
call fcn.004023e0
push eax
lea ecx, [ebp - 0x14]
call fcn.004023e0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x409a90
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40c821
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd4
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xa0], 0
mov dword [ebp - 4], 1
push str.FileList
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 3
mov eax, dword [ebp + 0x10]
add eax, 1
push eax
push str.FILE_d
lea ecx, [ebp - 0x18]
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [ebp + 0xc]
call fcn.004023e0
push eax
push 0x80
lea edx, [ebp - 0x98]
push edx
push 0x40d4bc
lea ecx, [ebp - 0x18]
call fcn.004023e0
push eax
lea ecx, [ebp - 0x14]
call fcn.004023e0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x9c]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x98]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
cmp eax, 1
jae 0x409b74
push 0x40df44
mov ecx, dword [ebp - 0x10]
add ecx, 0x160
call fcn.0040afc6
lea ecx, [ebp - 0x9c]
call sub.MFC42.DLL_CString::Empty
lea edx, [ebp - 0x9c]
push edx
mov ecx, dword [ebp + 8]
call fcn.0040af78
mov eax, dword [ebp - 0xa0]
or al, 1
mov dword [ebp - 0xa0], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9c]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1001696a
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
movzx eax, byte [ebp + 8]
test eax, eax
je 0x100169ba
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [eax], 0
jmp 0x1001699a
mov eax, dword [ebp - 8]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
cmp dword [eax], 2
jg 0x100169b8
mov byte [ebp - 1], 0
movzx eax, byte [ebp - 1]
test eax, eax
je 0x100169b6
push 0
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
jmp 0x1001698f
jmp 0x100169d3
push 0
push 0
push 0
push 0
push 0
push 0
push 0x199
push 0
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov esp, ebp
pop ebp
ret
Function at 0x100178ba
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10081506
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x1001794c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
push dword [eax]
mov eax, dword [ebp - 0x28]
push dword [eax]
lea eax, [ebp - 0x48]
push eax
call fcn.10015765
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
and dword [ebp - 4], 0
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
call fcn.10017f14
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.10017f49
jmp 0x1001796c
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
test eax, eax
je 0x1001796c
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x1001dedd
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x1001df38
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov dword [eax], 0
jmp 0x1001df19
mov eax, dword [ebp - 4]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
cmp dword [eax], 1
jge 0x1001df36
mov eax, dword [ebp - 4]
push dword [eax]
mov ecx, dword [ebp - 0x10]
call fcn.10017cfb
mov dword [eax], 0xaeef
jmp 0x1001df0e
jmp 0x1001df42
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_EqualSid]
mov esp, ebp
pop ebp
ret

Function at 0x1001e481
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1001e496
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x1001e4a0
push 0
push 0
call dword [sym.imp.USER32.dll_UnregisterClassA]
pop ebp
ret
Function at 0x1002c0c9
Capabilities:
Get file attributes
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1002c0de
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x1002c0f7
push 0
push 0
push 0
push 0
push 0
push 0
push 0x199
push 0
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
pop ebp
ret

Function at 0x1002c195
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1002c1dc
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx]
add ecx, dword [eax]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x1002c1ff
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
test eax, eax
je 0x1002c1ff
push 0x2a9
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esp, ebp
pop ebp
ret

Function at 0x1002c203
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1002c21d
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x1002c284
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
push dword [eax]
push dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push dword [eax]
push 0x678d
mov eax, dword [ebp - 0x24]
push dword [eax]
push 0x68a6
push 0
mov eax, dword [ebp - 0x28]
push dword [eax]
call fcn.10029f91
add esp, 0x20
mov esp, ebp
pop ebp
ret

Function at 0x1002cb7c
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1002cb9f
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
and dword [eax], 0
jmp 0x1002cba9
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_EqualSid]
mov esp, ebp
pop ebp
ret
Function at 0x1002f8bb
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 4], 0
push 0xcc7
push 1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
call fcn.1002d95a
add esp, 0x10
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
cmp eax, 0x5a4d
je 0x1002f8f0
xor eax, eax
jmp 0x1002fa75
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
cmp dword [eax], 0x4550
je 0x1002f90e
xor eax, eax
jmp 0x1002fa75
push 0x3b34
push 0x1397
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 1
call fcn.1002d9b3
add esp, 0x14
cmp dword [ebp - 0xc], 0
jne 0x1002f937
xor eax, eax
jmp 0x1002fa75
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push 0x5049
push 0x73a1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x15ba
push 1
call fcn.1002da2e
add esp, 0x24
lea eax, [ebp - 4]
push eax
push 1
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 8]
push eax
call fcn.1002e8ad
add esp, 0x10
push 1
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 8]
push eax
push 0x507f
call fcn.1002e932
add esp, 0x14
cmp dword [ebp - 0x14], 0
je 0x1002f9c4
push 0x2eb0
push 0x5bbe
push 0x111c
push dword [ebp - 4]
push 0x3a22
push dword [ebp - 0x14]
push 1
push 0x6b92
call fcn.10029f91
add esp, 0x20
push dword [ebp - 4]
call fcn.1002d517
pop ecx
test eax, eax
jne 0x1002f9d8
xor eax, eax
jmp 0x1002fa75
push 0xc1
push 0x1ceb
push 0x496
push dword [ebp - 4]
push 0x67fe
push 0x368c
push 0x2f38
push 0x28c8
push 0
call fcn.100287ae
add esp, 0x24
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp dword [eax + 0x28], 0
je 0x1002fa5d
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
add ecx, dword [eax + 0x28]
mov dword [ebp - 0x18], ecx
jne 0x1002fa27
xor eax, eax
jmp 0x1002fa75
push 0
push 1
push 0xdeadbeef
call dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x1002fa40
xor eax, eax
jmp 0x1002fa75
push 1
push 0x1fcf
push 0x4e46
lea eax, [ebp - 4]
push eax
push 0x4e30
call fcn.1002e9a0
add esp, 0x14
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x1002fa6e
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
jmp 0x1002fa72
and dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov esp, ebp
pop ebp
ret