joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404e19
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 0x80
push 1
push 0
push 1
push 0xc0000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x404e4c
xor eax, eax
jmp 0x404e6b
push dword [esi + 8]
mov ecx, dword [esi + 4]
and dword [ebp + 8], 0
push edi
lea edx, [ebp + 8]
call fcn.00404e70
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
pop edi
pop ebp
ret 4

Function at 0x404e70
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xf98]
mov eax, 0x1018
call fcn.00471870
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0xf94], eax
mov eax, dword [ebp + 0xfa0]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xfa4]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
cmp eax, 0xffffffff
je 0x404f6d
test ecx, ecx
je 0x404f6d
test edi, edi
jle 0x404f6d
mov eax, edi
cdq
and edx, 0xfff
add eax, edx
mov esi, eax
sar esi, 0xc
and edi, 0x80000fff
jns 0x404edd
dec edi
or edi, 0xfffff000
inc edi
and dword [ebp - 0x70], 0
and dword [ebp - 0x78], 0
mov dword [ebp - 0x74], ecx
test esi, esi
jle 0x404f30
mov ebx, 0x1000
push ebx
push dword [ebp - 0x74]
lea eax, [ebp - 0x6c]
push eax
call fcn.00473020
add esp, 0xc
push 0
lea eax, [ebp - 0x70]
push eax
push ebx
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x404f6d
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x404f25
mov ecx, dword [ebp - 0x70]
add dword [eax], ecx
add dword [ebp - 0x74], ebx
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], esi
jl 0x404ef1
test edi, edi
jle 0x404f68
push edi
push dword [ebp - 0x74]
lea eax, [ebp - 0x6c]
push eax
call fcn.00473020
add esp, 0xc
push 0
lea eax, [ebp - 0x70]
push eax
push edi
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x404f6d
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x404f68
mov ecx, dword [ebp - 0x70]
add dword [eax], ecx
xor eax, eax
inc eax
jmp 0x404f6f
xor eax, eax
mov ecx, dword [ebp + 0xf94]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047021a
add ebp, 0xf98
leave
ret
Function at 0x405063
Capabilities:
Check if file exists
Delete file

Disassembly:
push 0xc
mov eax, 0x4b018a
call fcn.004711ef
mov esi, ecx
mov dword [ebp - 0x18], esi
mov ebx, 0x4f39f8
push ebx
lea ecx, [ebp - 0x10]
call fcn.004028e9
and dword [ebp - 4], 0
lea eax, [ebp - 0x10]
push eax
call fcn.004010d8
pop ecx
test eax, eax
jne 0x4050b4
push 0x4ce018
call fcn.00404d3e
pop ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040290e
xor eax, eax
call fcn.004712c7
ret 8
mov edi, dword [ebp - 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
call fcn.00404e19
test eax, eax
jne 0x4050d8
push str.UnpackToTempFolder_SaveToFile_Failed__
call fcn.00404d3e
pop ecx
lea ecx, [edi - 0x10]
jmp 0x4050a5
push ebx
lea ecx, [ebp - 0x14]
call fcn.004028e9
lea eax, [ebp - 0x14]
push eax
mov byte [ebp - 4], 1
call fcn.004010d8
mov esi, dword [ebp - 0x14]
pop ecx
push esi
xor ebx, ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40511e
push esi
push str.UnpackToTempFolder_Create_Folder_Failed__Folder_:__s
call fcn.00404d3e
pop ecx
pop ecx
lea ecx, [esi - 0x10]
call fcn.0040290e
jmp 0x4050d3
cmp dword [ebp + 0xc], ebx
je 0x40514a
push ebx
push esi
push edi
call fcn.0046e6f2
add esp, 0xc
test eax, eax
jl 0x405114
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14]
push eax
call fcn.00401d9d
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor ebx, ebx
inc ebx
jmp 0x405158
mov ecx, dword [ebp - 0x18]
push esi
push edi
call fcn.0040536e
test eax, eax
jne 0x405132
lea ecx, [esi - 0x10]
call fcn.0040290e
lea ecx, [edi - 0x10]
call fcn.0040290e
mov eax, ebx
jmp 0x4050ac

Function at 0x40516f
Capabilities:
Delete file

Disassembly:
push 8
mov eax, 0x4b015f
call fcn.004711ef
mov esi, ecx
mov dword [ebp - 0x14], esi
push 0x4f39f8
lea ecx, [ebp - 0x10]
call fcn.004028e9
and dword [ebp - 4], 0
lea eax, [ebp - 0x10]
push eax
call fcn.004010d8
pop ecx
test eax, eax
jne 0x4051b4
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040290e
xor eax, eax
call fcn.004712c7
ret 8
mov edi, dword [ebp - 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
call ebx
push edi
call fcn.00404e19
test eax, eax
jne 0x4051cf
lea ecx, [edi - 0x10]
jmp 0x4051a5
push dword [ebp + 8]
lea ecx, [ebp + 8]
call fcn.00403c4d
mov byte [ebp - 4], 1
mov esi, dword [ebp + 8]
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
cmp dword [ebp + 0xc], 0
je 0x40520a
push 0
push esi
push edi
call fcn.0046e6f2
add esp, 0xc
test eax, eax
jge 0x405231
lea ecx, [esi - 0x10]
call fcn.0040290e
jmp 0x4051ca
mov ecx, dword [ebp - 0x14]
push esi
push edi
call fcn.0040536e
test eax, eax
jne 0x405231
xor ebx, ebx
lea ecx, [esi - 0x10]
call fcn.0040290e
lea ecx, [edi - 0x10]
call fcn.0040290e
mov eax, ebx
jmp 0x4051ac
push edi
call ebx
xor ebx, ebx
inc ebx
jmp 0x40521a
Function at 0x405413
Capabilities:
Enumerate processes

Disassembly:
push ebp
lea ebp, [esp - 0x1b8]
sub esp, 0x238
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x1b4], eax
mov eax, dword [ebp + 0x1c0]
and dword [ebp - 0x7c], 0
push edi
push 0
push 2
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x78], 0x22c
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0xffffffff
je 0x4054a8
lea eax, [ebp - 0x78]
push eax
push edi
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x4054a1
push esi
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
push ebx
lea eax, [ebp - 0x54]
push eax
call esi
test eax, eax
je 0x405499
cmp dword [ebp + 0x1c4], 0
jne 0x405489
push dword [ebp - 0x80]
lea eax, [ebp - 0x54]
push eax
call esi
test eax, eax
je 0x405499
lea eax, [ebp - 0x78]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x405468
jmp 0x4054a0
mov dword [ebp - 0x7c], 1
pop esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 0x1b4]
mov eax, dword [ebp - 0x7c]
xor ecx, ebp
pop edi
call fcn.0047021a
add ebp, 0x1b8
leave
ret
Function at 0x4054f7
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xa0]
sub esp, 0x120
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x9c], eax
mov eax, dword [ebp + 0xb0]
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0xb8]
mov ebx, edx
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xa8]
mov edx, edi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], ebx
call fcn.004054c1
mov ecx, dword [ebp + 0xb8]
mov eax, dword [ebp + 0xac]
mov edx, ebx
call fcn.004054c1
mov ecx, dword [ebp + 0xb8]
mov eax, dword [ebp + 0xb4]
mov edx, dword [ebp - 0x74]
call fcn.004054c1
lea eax, [ebp - 0x6c]
push eax
push 0x101
xor ebx, ebx
push ebx
push edi
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x78], 0x104
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
call esi
test eax, eax
jne 0x4055d6
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
push ebx
push ebx
push dword [ebp - 0x7c]
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4055c8
push dword [ebp - 0x74]
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
test eax, eax
je 0x4055c8
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4055c8
mov dword [ebp - 0x70], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x70], ebx
jne 0x405633
lea eax, [ebp - 0x6c]
push eax
push 0x201
push ebx
push edi
push dword [ebp - 0x80]
call esi
test eax, eax
jne 0x405633
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
push ebx
push ebx
push dword [ebp - 0x7c]
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40562a
push dword [ebp - 0x74]
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
test eax, eax
je 0x40562a
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x40562a
mov dword [ebp - 0x70], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x9c]
mov eax, dword [ebp - 0x70]
pop esi
xor ecx, ebp
pop ebx
call fcn.0047021a
add ebp, 0xa0
leave
ret
Function at 0x40564d
Capabilities:
Enumerate files on windows

Disassembly:
push 0x1d8
mov eax, 0x4af615
call fcn.00471258
mov eax, dword [ebp + 8]
xor ebx, ebx
push eax
mov esi, ecx
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1ac], ebx
call fcn.004715c0
pop ecx
lea ecx, [ebp - 0x1c4]
mov dword [ebp - 0x1cc], eax
call fcn.0040a6e2
push esi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], ebx
call fcn.0040a69e
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 1
call fcn.0040a721
xor edi, edi
inc edi
jmp 0x405855
cmp dword [ebp - 0x1ac], ebx
jne 0x40587c
lea eax, [ebp - 0x1c4]
push eax
push dword [ebp - 0x1b8]
lea ecx, [ebp - 0x1dc]
call fcn.0040ad2d
lea ecx, [ebp - 0x1dc]
call fcn.0040ad5f
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040b78f
lea eax, [ebp - 0x1c4]
push eax
mov byte [ebp - 4], 2
push dword [ebp - 0x1b8]
lea ecx, [ebp - 0x1d4]
call fcn.0040ad2d
mov esi, dword [ebp - 0x1d0]
push dword [ebp - 0x1b4]
lea ecx, [esi + 0x1c]
mov eax, esi
call fcn.0040af31
mov eax, dword [ebp - 0x1b4]
pop ecx
lea edx, [ebp - 0x1bc]
push edx
lea ecx, [eax - 0x1c]
push eax
push ecx
call fcn.0040af6f
sub dword [ebp - 0x1b4], 0x1c
add esp, 0xc
lea eax, [ebp - 0x1c4]
push eax
push esi
lea ecx, [ebp - 0x1e4]
call fcn.0040ad2d
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x48]
call fcn.0040b78f
push str..
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.0040a7a6
cmp dword [ebp - 0x30], 0x10
mov eax, dword [ebp - 0x44]
jae 0x405776
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x1a8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40584b
test byte [ebp - 0x1a8], 0x10
je 0x405805
cmp byte [ebp - 0x17c], 0x2e
jne 0x4057ba
cmp byte [ebp - 0x17b], bl
je 0x405826
cmp byte [ebp - 0x17b], 0x2e
jne 0x4057ba
cmp byte [ebp - 0x17a], bl
je 0x405826
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x64]
call fcn.0040b78f
push 0x4ce13c
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 4
call fcn.0040a7a6
lea eax, [ebp - 0x17c]
push eax
lea ecx, [ebp - 0x64]
call fcn.0040a7a6
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x1c4]
call fcn.0040a721
push ebx
push edi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.0040b7ed
jmp 0x405826
mov eax, dword [ebp - 0x1cc]
dec eax
push eax
push dword [ebp - 0x1c8]
lea eax, [ebp - 0x17c]
push eax
call fcn.0048bb25
add esp, 0xc
test eax, eax
je 0x40583e
lea eax, [ebp - 0x1a8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40578f
jmp 0x405844
mov dword [ebp - 0x1ac], edi
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.0040b7ed
push ebx
push edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], bl
call fcn.0040b7ed
mov eax, dword [ebp - 0x1b4]
sub eax, dword [ebp - 0x1b8]
push 0x1c
cdq
pop ecx
idiv ecx
test eax, eax
jne 0x4056ae
lea ecx, [ebp - 0x1c4]
call fcn.0040a8bb
push dword [ebp - 0x1c4]
call fcn.0046d88b
mov eax, dword [ebp - 0x1ac]
pop ecx
call fcn.004712db
ret
Function at 0x405a3d
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push 0x238
mov eax, 0x4af95e
call fcn.00471258
mov eax, dword [ebp + 8]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0x240], eax
mov eax, dword [ebp + 0x48]
mov dword [ebp - 0x238], eax
xor esi, esi
inc esi
mov dword [ebp - 4], esi
mov eax, dword [ebp + 0x20]
xor ebx, ebx
lea edi, [eax - 1]
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x228], ebx
cmp eax, edi
ja 0x405a8a
call fcn.0046fa8d
cmp dword [ebp + 0x24], 0x10
mov eax, dword [ebp + 0x10]
jae 0x405a96
lea eax, [ebp + 0x10]
cmp byte [eax + edi], 0x5c
je 0x405aaa
push 0x5c
mov ebx, esi
lea edi, [ebp + 0xc]
call fcn.0040a7c3
xor ebx, ebx
cmp dword [ebp + 0x24], 0x10
mov eax, dword [ebp + 0x10]
jae 0x405ab6
lea eax, [ebp + 0x10]
lea ecx, [ebp - 0x228]
push ecx
push 0x20019
push ebx
push eax
push dword [ebp - 0x224]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x405c12
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x224]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x228]
mov dword [ebp - 0x224], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x405c06
cmp dword [ebp - 0x224], ebx
je 0x405c06
mov dword [ebp - 0x244], esi
mov dword [ebp - 0x22c], ebx
jbe 0x405c06
mov edi, 0x104
cmp dword [ebp - 0x230], ebx
jne 0x405c06
push 0x103
lea eax, [ebp - 0x117]
push ebx
push eax
mov byte [ebp - 0x118], bl
call fcn.004701a0
add esp, 0xc
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x22c]
mov dword [ebp - 0x23c], edi
push dword [ebp - 0x228]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x405bee
cmp dword [ebp + 0x40], 0x10
mov eax, dword [ebp + 0x2c]
jae 0x405b87
lea eax, [ebp + 0x2c]
push dword [ebp + 0x3c]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.0048bb25
add esp, 0xc
test eax, eax
jne 0x405bee
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x244]
push eax
push dword [ebp - 0x240]
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x228]
mov dword [ebp - 0x234], edi
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x405bee
push dword [ebp - 0x238]
lea ecx, [ebp - 0x220]
call fcn.0040564d
pop ecx
mov dword [ebp - 0x230], eax
inc dword [ebp - 0x22c]
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x224]
jb 0x405b26
push dword [ebp - 0x228]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
push esi
lea ecx, [ebp + 0xc]
call fcn.0040b7ed
push ebx
push esi
lea ecx, [ebp + 0x28]
call fcn.0040b7ed
mov eax, dword [ebp - 0x230]
call fcn.004712db
ret
Function at 0x405d0c
Capabilities:
Check if file exists
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x3a8]
sub esp, 0x428
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x3a4], eax
push ebx
push esi
push 4
mov esi, ecx
pop ecx
mov ebx, edx
push 0x23
pop eax
mov edx, esi
mov dword [ebp - 0x74], ebx
call fcn.004054c1
push 4
pop ecx
push 0xb
pop eax
mov edx, ebx
call fcn.004054c1
push 4
pop ecx
push 8
pop eax
mov edx, edi
call fcn.004054c1
lea eax, [ebp - 0x68]
push eax
push 0x20019
xor ebx, ebx
push ebx
push esi
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x405e53
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x64]
push eax
push ebx
push ebx
lea eax, [ebp - 0x7c]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x68]
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x64], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x405e53
mov dword [ebp - 0x60], ebx
cmp dword [ebp - 0x64], ebx
jbe 0x405e53
mov esi, 0x200
cmp dword [ebp - 0x6c], ebx
jne 0x405e53
push 0x1ff
lea eax, [ebp + 0x1a5]
push ebx
push eax
mov byte [ebp + 0x1a4], bl
call fcn.004701a0
add esp, 0xc
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x1a4]
push eax
push dword [ebp - 0x60]
mov dword [ebp - 0x78], esi
push dword [ebp - 0x68]
mov dword [ebp - 0x70], esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x405e44
push 0xa
push dword [ebp - 0x74]
lea eax, [ebp + 0x1a4]
push eax
call fcn.0048bb25
add esp, 0xc
test eax, eax
jne 0x405e44
push edi
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
test eax, eax
je 0x405e44
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x405e44
mov dword [ebp - 0x6c], 1
inc dword [ebp - 0x60]
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x64]
jb 0x405db6
mov ecx, dword [ebp + 0x3a4]
mov eax, dword [ebp - 0x6c]
pop esi
xor ecx, ebp
pop ebx
call fcn.0047021a
add ebp, 0x3a8
leave
ret
Function at 0x405e6d
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x19c]
sub esp, 0x21c
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x198], eax
mov eax, dword [ebp + 0x1a4]
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x74], eax
push 0x14
xor ecx, ecx
pop eax
mov edx, edi
mov dword [ebp - 0x80], esi
call fcn.004054c1
push 5
xor ecx, ecx
pop eax
mov edx, ebx
call fcn.004054c1
push 0x12
xor ecx, ecx
pop eax
mov edx, esi
call fcn.004054c1
mov edx, dword [ebp - 0x74]
push 0x11
xor ecx, ecx
pop eax
call fcn.004054c1
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x94]
push eax
lea eax, [ebp - 0x78]
push eax
push ebx
push edi
mov esi, 0x104
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x78], 1
mov dword [ebp - 0x7c], esi
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x405f53
lea eax, [ebp + 0x94]
push eax
lea eax, [ebp - 0x70]
push esi
push eax
call fcn.00477d98
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
add esp, 0xc
push dword [ebp - 0x80]
lea eax, [ebp + 0x94]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x405f3c
lea eax, [ebp + 0x94]
push eax
call edi
test eax, eax
je 0x405f3c
xor eax, eax
inc eax
jmp 0x405f55
push dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
call esi
test eax, eax
je 0x405f53
lea eax, [ebp - 0x70]
push eax
call edi
test eax, eax
jne 0x405f37
xor eax, eax
mov ecx, dword [ebp + 0x198]
pop edi
xor ecx, ebp
pop esi
call fcn.0047021a
add ebp, 0x19c
leave
ret
Function at 0x40605d
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x1a8
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x74], eax
push ebx
push esi
push edi
push 6
pop ecx
mov esi, 0x4ce140
lea edi, [ebp + 0x58]
rep movsd dword es:[edi], dword [esi]
push 0x1a
mov ebx, 0x104
mov ecx, 0xd3a
pop eax
lea edx, [ebp + 0x58]
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x130], ebx
movsw word es:[edi], word [esi]
call fcn.004054c1
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x12c]
push eax
push str.ExeString
lea eax, [ebp + 0x58]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x4060ef
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4060ef
xor eax, eax
inc eax
jmp 0x4061fa
push ebx
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.004701a0
push 0xf
pop ecx
lea eax, [ebp + 0x1c]
mov esi, 0x4ce168
lea edi, [ebp + 0x1c]
push eax
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x130], ebx
rep movsd dword es:[edi], dword [esi]
call fcn.004715c0
add esp, 0x10
mov ecx, 0xd3c
lea edx, [ebp + 0x1c]
call fcn.004054c1
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x12c]
push eax
push 0x4cdf92
lea eax, [ebp + 0x1c]
push eax
push closesocket
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x406176
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x4060e7
push ebx
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.004701a0
add esp, 0xc
push 0xf
pop ecx
mov esi, 0x4ce1a4
lea edi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
push 0x3d
mov ecx, 0xd3c
pop eax
lea edx, [ebp - 0x24]
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x130], ebx
movsb byte es:[edi], byte [esi]
call fcn.004054c1
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x12c]
push eax
push 0x4cdf92
lea eax, [ebp - 0x24]
push eax
push closesocket
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x4061f8
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x4060e7
xor eax, eax
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047021a
add ebp, 0x78
leave
ret
Function at 0x40620c
Capabilities:
Check if file exists
Enumerate files on windows
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x89c
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
push eax
push 0x26
lea ecx, [ebp - 0x230]
push ecx
push eax
mov dword [ebp - 0x894], eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x4063cf
mov esi, 0x4ce1e4
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x4ce1f8
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, 0xd3e
push 0x11
mov ecx, esi
pop eax
lea edx, [ebp - 0x28]
call fcn.004054c1
push 0xe
mov ecx, esi
pop eax
lea edx, [ebp - 0x14]
call fcn.004054c1
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x28]
push eax
call edi
mov esi, eax
inc esi
mov ebx, 0x3fffffff
cmp esi, ebx
jle 0x40629d
and dword [ebp - 0x89c], 0
jmp 0x4062ba
lea eax, [esi + esi]
call fcn.00476aa0
mov eax, esp
push 3
push esi
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0040b46b
mov dword [ebp - 0x89c], eax
lea eax, [ebp - 0x14]
push eax
call edi
mov esi, eax
inc esi
cmp esi, ebx
jle 0x4062d0
and dword [ebp - 0x898], 0
jmp 0x4062ed
lea eax, [esi + esi]
call fcn.00476aa0
mov eax, esp
push 3
push esi
lea ecx, [ebp - 0x14]
push ecx
push eax
call fcn.0040b46b
mov dword [ebp - 0x898], eax
push dword [ebp - 0x89c]
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x230]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 0x4ce208
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x640]
push eax
call edi
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x640]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4063c9
test byte [ebp - 0x890], 0x10
je 0x4063a4
cmp word [ebp - 0x864], 0x2e
jne 0x40636d
cmp word [ebp - 0x862], 0
je 0x4063a4
cmp word [ebp - 0x862], 0x2e
jne 0x40636d
cmp word [ebp - 0x860], 0
je 0x4063a4
lea eax, [ebp - 0x864]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x438]
push eax
call edi
push dword [ebp - 0x898]
lea eax, [ebp - 0x438]
push eax
call esi
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4063b8
lea eax, [ebp - 0x890]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40633c
jmp 0x4063c2
mov dword [ebp - 0x894], 1
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x894]
lea esp, [ebp - 0x8a8]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047021a
leave
ret