joyce8/EMBER2024-capa huggingface dataset:
Function at 0x423b58
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push dword [ebp + 8]
call fcn.004d0956
mov dword [ebp - 4], eax
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004974ed
push dword [ebp + 8]
mov esi, eax
push esi
call fcn.004d0abc
mov eax, dword [ebp - 4]
xor edi, edi
add esp, 0x10
xor ebx, ebx
inc edi
test eax, eax
js 0x423bd2
push 0x5c
pop ecx
cmp word [esi + ebx*2], cx
jne 0x423bc9
xor eax, eax
push esi
mov word [esi + ebx*2], ax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x423bbf
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x423bd0
mov eax, dword [ebp - 4]
push 0x5c
pop ecx
mov word [esi + ebx*2], cx
inc ebx
cmp ebx, eax
jle 0x423b9c
jmp 0x423bd2
xor edi, edi
push esi
call fcn.0045ac20
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x423be2
Capabilities:
Delete directory
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1608
call fcn.00497510
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push edi
push 0x208
push 0
push eax
call fcn.004c9210
push esi
lea eax, [ebp - 0x20c]
push 0x520e68
push eax
call fcn.00409c80
lea eax, [ebp - 0x20c]
push eax
call fcn.004d0956
add esp, 0x1c
lea ecx, [eax - 1]
test ecx, ecx
jle 0x423c4f
push 0x5c
pop ecx
cmp word [ebp + eax*2 - 0x20e], cx
je 0x423c4f
mov word [ebp + eax*2 - 0x20c], cx
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0xbe4]
push str._s.
push eax
call fcn.00409c80
add esp, 0xc
lea eax, [ebp - 0x1604]
push eax
lea eax, [ebp - 0xbe4]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x423d4e
push 0x2e
pop ebx
lea eax, [ebp - 0x1604]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x423d4e
cmp word [ebp - 0x15d8], bx
je 0x423c8c
cmp word [ebp - 0x15d6], 0
je 0x423c8c
cmp word [ebp - 0x15d6], bx
jne 0x423cc8
cmp word [ebp - 0x15d4], 0
je 0x423c8c
test byte [ebp - 0x1604], 0x10
je 0x423d12
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.004c9210
lea eax, [ebp - 0x15d8]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push str._s_s_
push eax
call fcn.00409c80
lea eax, [ebp - 0x414]
push eax
call fcn.00423be2
add esp, 0x20
lea eax, [ebp - 0x15d8]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x13b4]
push 0x524514
push eax
call fcn.00409c80
push ecx
push ecx
lea eax, [ebp - 0x13b4]
mov ecx, esp
push eax
call fcn.00409cb0
call fcn.004242f9
add esp, 0x18
jmp 0x423c8c
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x20
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004974f6
mov esp, ebp
pop ebp
ret
Function at 0x423d76
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x20c]
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
push esi
push 0x1a
push eax
push esi
call fcn.00424286
lea eax, [ebp - 0x20c]
push eax
call fcn.004d0956
add esp, 0x14
test eax, eax
je 0x423e2e
lea eax, [ebp - 0x20c]
push 0x520de8
push eax
call fcn.004d0a4b
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.004d0a4b
lea eax, [ebp - 0x20c]
push 0x520de8
push eax
call fcn.004d0a4b
add esp, 0x18
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x423e07
lea eax, [ebp - 0x20c]
push eax
call fcn.00423b58
pop ecx
cmp word [ebp - 0x20c], si
je 0x423e1f
lea eax, [ebp - 0x20c]
push eax
call fcn.004d0956
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
call fcn.00407fd0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004974f6
mov esp, ebp
pop ebp
ret

Function at 0x423f67
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x560598]
test al, al
jne 0x424000
push ebx
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x20c]
xor ebx, ebx
inc ebx
push ebx
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x423ff7
lea eax, [ebp - 0x20c]
push eax
call fcn.004d0492
lea eax, [ebp - 0x20c]
mov dword [esp], str.config_systemprofile
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
jne 0x423fef
lea eax, [ebp - 0x20c]
push str.documents_and_settingslocalservice
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
je 0x423ff7
mov byte [0x560598], bl
jmp 0x423ffd
mov bl, byte [0x560598]
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004974f6
mov esp, ebp
pop ebp
ret
Function at 0x42400e
Capabilities:
Check if file exists

Disassembly:
push 0xc54
mov eax, 0x51aac3
call fcn.00497fa4
mov edi, dword [ebp + 8]
lea eax, [ebp - 0xc40]
mov ebx, dword [ebp + 0xc]
mov esi, 0x208
and dword [ebp - 0xc60], 0
push esi
push 0
push eax
call fcn.004c9210
push esi
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.004c9210
push esi
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.004c9210
push esi
lea eax, [ebp - 0xa38]
push 0
push eax
call fcn.004c9210
push esi
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004c9210
push esi
xor esi, esi
lea eax, [ebp - 0x420]
push esi
push eax
call fcn.004c9210
xor eax, eax
mov dword [ebp - 0xc44], 7
add esp, 0x48
mov dword [ebp - 0xc48], esi
mov word [ebp - 0xc58], ax
push esi
push 0x1a
lea eax, [ebp - 0xc40]
mov dword [ebp - 4], esi
push eax
push esi
call fcn.00424286
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.004d0abc
lea eax, [ebp - 0x218]
push eax
call fcn.004d0956
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.004c9893
add esp, 0x24
test eax, eax
jne 0x424112
lea eax, [ebp - 0xc58]
push ebx
push eax
call fcn.00423d76
pop ecx
pop ecx
lea eax, [ebp - 0xc58]
mov ecx, edi
push eax
call fcn.00420676
push esi
push 1
jmp 0x424273
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.004d0abc
lea eax, [ebp - 0x830]
push 0x525098
push eax
call fcn.004d0a4b
add esp, 0x10
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ecx, ecx
inc ecx
test eax, eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x628]
cmovne esi, ecx
push eax
call fcn.004d0abc
lea eax, [ebp - 0x628]
push str.LocalLow
push eax
call fcn.004d0a4b
add esp, 0x10
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ecx, ecx
test eax, eax
push 1
pop eax
cmovne ecx, eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0xa38]
mov dword [ebp - 0xc5c], ecx
push eax
call fcn.004d0abc
lea eax, [ebp - 0xa38]
push str.Roaming
push eax
call fcn.004d0a4b
add esp, 0x10
lea eax, [ebp - 0xa38]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ecx, ecx
test eax, eax
push 1
pop eax
cmovne ecx, eax
test esi, esi
je 0x424250
cmp dword [ebp - 0xc5c], 0
je 0x424250
test ecx, ecx
je 0x424250
push ebx
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x420]
push 0x520dec
push eax
call fcn.00409c80
add esp, 0x10
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x424220
lea eax, [ebp - 0x420]
push eax
call fcn.00423b58
pop ecx
cmp word [ebp - 0x420], 0
jne 0x42422e
xor eax, eax
jmp 0x42423b
lea eax, [ebp - 0x420]
push eax
call fcn.004d0956
pop ecx
push eax
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0xc58]
call fcn.00407fd0
jmp 0x42425f
lea eax, [ebp - 0xc58]
push ebx
push eax
call fcn.00423d76
pop ecx
pop ecx
lea eax, [ebp - 0xc58]
mov ecx, edi
push eax
call fcn.00420676
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0xc58]
call fcn.0040c620
mov eax, edi
call fcn.00497f5f
ret
Function at 0x425165
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push esi
push str.kernel32.dll
mov esi, ecx
call ebx
mov dword [esi], eax
test eax, eax
je 0x4251e5
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetNativeSystemInfo
push eax
call edi
push str.IsWow64Process
push dword [esi]
mov dword [esi + 8], eax
call edi
push str.Wow64DisableWow64FsRedirection
push dword [esi]
mov dword [esi + 0xc], eax
call edi
push str.Wow64RevertWow64FsRedirection
push dword [esi]
mov dword [esi + 0x18], eax
call edi
push str.GetSystemWow64DirectoryW
push dword [esi]
mov dword [esi + 0x14], eax
call edi
push str.advapi32.dll
mov dword [esi + 0x10], eax
call ebx
mov dword [esi + 4], eax
test eax, eax
je 0x4251e4
mov ebx, str.Wow64RevertWow64FsRedirection
push ebx
push eax
call edi
push ebx
push dword [esi + 4]
mov dword [esi + 0x20], eax
call edi
mov dword [esi + 0x1c], eax
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
ret
Function at 0x427243
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x30
mov eax, 0x519c04
call fcn.00497f70
xor esi, esi
mov dword [ebp - 0x18], 0x104
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
call fcn.004250e5
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], esi
call fcn.00425119
test eax, eax
mov edi, 0xf013f
lea eax, [ebp - 0x10]
push eax
jne 0x427283
mov edi, 0xf003f
push edi
push esi
push str.SoftWare
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4272e3
push esi
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push esi
push esi
push esi
push dword [ebp + 8]
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x4272be
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4272e3
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x10]
push esi
push esi
push dword [ebp + 0xc]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x10]
call esi
lea ecx, [ebp - 0x3c]
call fcn.004250f8
call fcn.00497f4a
ret 0xc
Function at 0x42776b
Capabilities:
Get common file path

Disassembly:
push 0x240
mov eax, 0x51b03a
call fcn.00497fa4
mov ebx, ecx
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x218]
push 0x208
xor esi, esi
mov dword [ebp - 0x24c], edi
push esi
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x218]
push esi
push 0x19
push eax
push esi
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call esi
test eax, eax
je 0x427862
and dword [ebp - 0x220], 0
xor eax, eax
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
cmp word [ebp - 0x218], ax
je 0x4277e7
lea eax, [ebp - 0x218]
push eax
call fcn.004d0956
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00407fd0
and dword [ebp - 4], 0
push 0x520de8
call fcn.004d0956
pop ecx
push eax
push 0x520de8
lea ecx, [ebp - 0x230]
call fcn.0040a6a0
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push edi
cmovae eax, dword [ebp - 0x230]
mov ecx, ebx
push eax
call fcn.004273ce
mov edi, eax
lea ecx, [ebp - 0x230]
push 0
push 1
test edi, edi
je 0x427853
call fcn.0040c620
mov eax, edi
jmp 0x427914
or dword [ebp - 4], 0xffffffff
call fcn.0040c620
mov edi, dword [ebp - 0x24c]
push 0
push 0x10
lea eax, [ebp - 0x218]
push eax
push 0
call esi
test eax, eax
je 0x427912
and dword [ebp - 0x238], 0
xor eax, eax
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
cmp word [ebp - 0x218], ax
je 0x4278a9
lea eax, [ebp - 0x218]
push eax
call fcn.004d0956
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00407fd0
mov esi, 0x520de8
mov dword [ebp - 4], 1
push esi
call fcn.004d0956
pop ecx
push eax
push esi
lea ecx, [ebp - 0x248]
call fcn.0040a6a0
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
push edi
cmovae eax, dword [ebp - 0x248]
mov ecx, ebx
push eax
call fcn.004273ce
push 0
lea ecx, [ebp - 0x248]
mov esi, eax
push 1
call fcn.0040c620
test esi, esi
je 0x427912
mov eax, esi
jmp 0x427914
xor eax, eax
call fcn.00497f5f
ret 4
Function at 0x42791c
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x428], eax
xor edi, edi
lea eax, [ebp - 0x418]
mov dword [ebp - 0x418], edi
push eax
push 9
push edi
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
push reloc.WS2_32.dll_accept
mov esi, edi
mov dword [ebp - 0x41c], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x42796f
xor eax, eax
jmp 0x427a6e
push ebx
push 0x208
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x20c]
mov ebx, edi
push 0x104
push eax
push edi
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x427a5b
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x427a41
push 0x208
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0x420], 0x104
push eax
call fcn.004c9210
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebp - 0x424], eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x424]
push eax
push 0
push str.DisplayName
push dword [ebp - 0x41c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x427a39
push dword [ebp - 0x428]
lea eax, [ebp - 0x414]
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
push 1
pop eax
cmovne esi, eax
push dword [ebp - 0x41c]
call edi
push 0x104
lea eax, [ebp - 0x20c]
inc ebx
push eax
push ebx
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x4279ab
push dword [ebp - 0x418]
call edi
mov eax, esi
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004974f6
mov esp, ebp
pop ebp
ret 4
Function at 0x428439
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x428], eax
push 0x208
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x418], ebx
push ebx
push eax
mov esi, ebx
mov dword [ebp - 0x41c], ebx
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push 0x109
push ebx
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x428584
push 0x104
lea eax, [ebp - 0x20c]
push eax
push ebx
jmp 0x42855e
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x428550
push 0x208
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0x420], 0x104
push eax
call fcn.004c9210
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebp - 0x424], eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x424]
push eax
push 0
push str.DisplayName
push dword [ebp - 0x41c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x428548
push dword [ebp - 0x428]
lea eax, [ebp - 0x414]
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
push 1
pop eax
cmovne esi, eax
push dword [ebp - 0x41c]
call edi
push 0x104
lea eax, [ebp - 0x20c]
inc ebx
push eax
push ebx
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x4284ba
push dword [ebp - 0x418]
call edi
test esi, esi
jne 0x428679
xor ebx, ebx
lea eax, [ebp - 0x418]
push eax
push 9
push ebx
push 0x525008
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x428679
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0
jmp 0x42865d
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x42864f
push 0x208
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0x424], 0x104
push eax
call fcn.004c9210
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x420]
push eax
push 0
push str.DisplayName
push dword [ebp - 0x41c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x428647
push dword [ebp - 0x428]
lea eax, [ebp - 0x414]
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
push 1
pop eax
cmovne esi, eax
push dword [ebp - 0x41c]
call edi
push 0x104
lea eax, [ebp - 0x20c]
inc ebx
push eax
push ebx
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x4285b9
push dword [ebp - 0x418]
call edi
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004974f6
mov esp, ebp
pop ebp
ret 4
Function at 0x428867
Capabilities:
Check if file exists
Get common file path
Get startup folder

Disassembly:
push 0x83c
mov eax, 0x51b1c0
call fcn.00497fa4
mov edi, ecx
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x218]
push 0x208
xor ebx, ebx
push ebx
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x218]
push ebx
push 0x1a
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor eax, eax
mov dword [ebp - 0x834], 7
mov dword [ebp - 0x838], ebx
mov word [ebp - 0x848], ax
cmp word [ebp - 0x218], ax
je 0x4288d2
lea eax, [ebp - 0x218]
push eax
call fcn.004d0956
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x848]
call fcn.00407fd0
mov dword [ebp - 4], ebx
mov ebx, str.MicrosoftInternet_ExplorerQuick_LaunchUser_PinnedTaskBar_
push ebx
call fcn.004d0956
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x848]
call fcn.0040a6a0
xor ebx, ebx
cmp word [esi], bx
jne 0x42890c
mov eax, ebx
jmp 0x428913
push esi
call fcn.004d0956
pop ecx
push eax
push esi
lea ecx, [ebp - 0x848]
call fcn.0040a6a0
mov esi, str..lnk
push esi
call fcn.004d0956
pop ecx
push eax
push esi
lea ecx, [ebp - 0x848]
call fcn.0040a6a0
cmp dword [ebp - 0x834], 8
lea eax, [ebp - 0x848]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x848]
push eax
call esi
test eax, eax
je 0x428a21
push 0x208
lea eax, [ebp - 0x830]
push ebx
push eax
call fcn.004c9210
push 0x208
lea eax, [ebp - 0x628]
push ebx
push eax
call fcn.004c9210
cmp dword [ebp - 0x834], 8
lea eax, [ebp - 0x848]
cmovae eax, dword [ebp - 0x848]
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.004d0abc
add esp, 0x20
lea eax, [ebp - 0x628]
mov ecx, edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00427129
push 0x208
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea eax, [ebp - 0x420]
push eax
call fcn.004d0956
pop ecx
test eax, eax
jne 0x428a0f
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.004d0abc
pop ecx
pop ecx
lea eax, [ebp - 0x420]
push eax
call esi
test eax, eax
je 0x428a21
xor esi, esi
inc esi
jmp 0x428a23
mov esi, ebx
push ebx
push 1
lea ecx, [ebp - 0x848]
call fcn.0040c620
mov eax, esi
call fcn.00497f5f
ret 4
Function at 0x428a3b
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x560599]
test al, al
jne 0x428ad4
push ebx
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x20c]
xor ebx, ebx
inc ebx
push ebx
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x428acb
lea eax, [ebp - 0x20c]
push eax
call fcn.004d0492
lea eax, [ebp - 0x20c]
mov dword [esp], str.config_systemprofile
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
jne 0x428ac3
lea eax, [ebp - 0x20c]
push str.documents_and_settingslocalservice
push eax
call fcn.004c936a
pop ecx
pop ecx
test eax, eax
je 0x428acb
mov byte [0x560599], bl
jmp 0x428ad1
mov bl, byte [0x560599]
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004974f6
mov esp, ebp
pop ebp
ret
Function at 0x4295b3
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push esi
push edi
push 0x208
xor esi, esi
mov edi, ecx
push esi
push eax
call fcn.004c9210
add esp, 0xc
lea eax, [ebp - 0x20c]
push esi
push 0x17
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x42961e
lea eax, [ebp - 0x20c]
push 0x520de8
push eax
call fcn.004d0a4b
pop ecx
pop ecx
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
call fcn.00428ae2
mov esi, eax
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004974f6
mov esp, ebp
pop ebp
ret 4

Function at 0x42aa6f
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
mov ebx, dword [ebp + 8]
mov eax, ecx
push esi
push edi
mov dword [ebp - 4], eax
lea edi, [eax + 0x210]
mov esi, dword [edi]
mov dword [ebp - 8], edi
cmp esi, dword [eax + 0x214]
je 0x42ab3c
lea edi, [esi + 0x28]
lea ecx, [ebx + 0xa8]
mov dword [ebp + 8], edi
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x524a2c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub edi, 0xffffff80
push edi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x524a2c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebx + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x524a2c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x524a2c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebx + 0xa8]
push edi
push eax
call fcn.004d0bf0
mov edi, dword [ebp + 8]
pop ecx
pop ecx
test eax, eax
jne 0x42ab18
lea eax, [ebx + 0x28]
push edi
push eax
call fcn.004d0bf0
pop ecx
pop ecx
test eax, eax
je 0x42ab59
mov eax, 0x1b0
lea ecx, [ebx + 0xa8]
add edi, eax
add esi, eax
mov eax, dword [ebp - 4]
mov dword [ebp + 8], edi
cmp esi, dword [eax + 0x214]
jne 0x42aaa2
mov edi, dword [ebp - 8]
lea eax, [ebx + 0xa8]
push eax
call fcn.004d09c0
pop ecx
test eax, eax
je 0x42ab59
push ebx
mov ecx, edi
call fcn.0042b49b
mov al, 1
jmp 0x42ab5b
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x42b3de
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x55d3e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov ebx, 0x114
push edi
push ebx
xor edi, edi
mov eax, dword [esi + 0x210]
mov dword [esi + 0x214], eax
lea eax, [ebp - 0x118]
push edi
push eax
call fcn.004c9210
add esp, 0xc
mov dword [ebp - 0x118], ebx
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x108], 2
jne 0x42b43f
mov ecx, esi
call fcn.0042ae35
jmp 0x42b454
mov ebx, edi
test edi, edi
jne 0x42b454
mov ecx, esi
call fcn.0042ad10
inc ebx
mov edi, eax
cmp ebx, 0xa
jl 0x42b441
mov eax, dword [esi + 0x214]
mov ecx, 0x1b0
sub eax, dword [esi + 0x210]
cdq
idiv ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004974f6
mov esp, ebp
pop ebp
ret

Function at 0x42b847
Capabilities:
Hash data with md5

Disassembly:
xor eax, eax
mov byte [ecx + 0x68], al
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], eax
mov dword [ecx], 0x67452301
mov dword [ecx + 4], 0xefcdab89
mov dword [ecx + 8], 0x98badcfe
mov dword [ecx + 0xc], 0x10325476
ret