joyce8/EMBER2024-capa huggingface dataset:
Function at 0x442545
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x2cc
mov eax, 0x4acf54
call fcn.0047f4f6
mov dword [ebp - 0x2d8], ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x2cc], ebx
call fcn.00416d8f
push eax
lea ecx, [ebp - 0x94]
call fcn.00414f02
xor edi, edi
mov dword [ebp - 4], edi
call fcn.00416d95
mov ecx, eax
call fcn.004156d6
test al, al
je 0x442633
push ebx
lea ecx, [ebp - 0x94]
call fcn.00415132
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.00415112
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4425d6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.0045676d
jmp 0x442714
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x4425c2
push esi
mov dword [ebp - 0x2c8], edi
call fcn.004139fb
pop ecx
push 0
mov edi, eax
lea eax, [ebp - 0x2c8]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2c8], esi
je 0x4426ff
push edi
call fcn.00413a04
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.0045676d
jmp 0x442712
call fcn.00416d95
push eax
lea ecx, [ebp - 0x94]
call fcn.00415115
call fcn.00416ec1
test al, al
je 0x442654
call fcn.00416d9b
jmp 0x44266b
push 2
push edi
lea ecx, [ebp - 0x94]
call fcn.00415112
push eax
call fcn.00432050
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x4425c2
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2d4]
push eax
push 1
push dword [ebp - 0x2cc]
push ebx
call fcn.00431a91
add esp, 0x14
test eax, eax
jne 0x4425c2
mov esi, dword [ebp - 0x98]
test esi, esi
je 0x4425c2
push esi
call fcn.004139fb
push 3
push esi
mov edi, eax
push edi
push dword [ebp - 0x2d4]
push ebx
call fcn.00432410
add esp, 0x18
test eax, eax
je 0x4426ef
cmp eax, 0x600
je 0x4426ef
push edi
call fcn.00413a04
pop ecx
call fcn.00416ec1
test al, al
jne 0x44261f
push ebx
call fcn.004318eb
jmp 0x44261e
call fcn.00416ec1
test al, al
jne 0x4426ff
push ebx
call fcn.004318eb
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.0045676d
test edi, edi
jne 0x442786
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocString
push dword [ebp - 0x2cc]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x442782
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x442782
push esi
mov dword [ebp - 0x2d0], edi
call fcn.004139fb
pop ecx
push 0
mov edi, eax
lea eax, [ebp - 0x2d0]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2d0], esi
je 0x44277e
push edi
call fcn.00413a04
pop ecx
xor edi, edi
test edi, edi
jne 0x442786
xor eax, eax
jmp 0x4427a1
mov ecx, dword [ebp - 0x2d8]
push esi
push edi
call fcn.004427a9
push 1
push edi
mov esi, eax
call fcn.004139ed
pop ecx
pop ecx
mov eax, esi
call fcn.0047f4b1
ret 4
Function at 0x44c6df
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [esi + 8]
and edi, 7
je 0x44c703
cmp dword [esi + 8], edi
jge 0x44c6fb
push esi
call fcn.0044a980
pop ecx
mov ecx, edi
shr dword [esi + 0xc], cl
sub dword [esi + 8], edi
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
jle 0x44c72c
mov edi, dword [esi + 0xc]
mov al, byte [esi + 0xc]
sub edx, 8
mov byte [ebp + ecx + 8], al
inc ecx
shr edi, 8
mov dword [esi + 0xc], edi
test edx, edx
jg 0x44c70f
mov dword [esi + 8], edx
cmp ecx, 4
jge 0x44c749
mov edx, dword [esi]
cmp edx, dword [esi + 4]
jb 0x44c737
xor eax, eax
jmp 0x44c73f
mov al, byte [edx]
inc edx
mov dword [esi], edx
movzx eax, al
mov byte [ebp + ecx + 8], al
inc ecx
cmp ecx, 4
jl 0x44c72e
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 0xb]
movzx edi, ah
movzx eax, al
shl edi, 8
add edi, eax
shl ecx, 8
movzx eax, byte [ebp + 0xa]
add ecx, eax
mov eax, edi
xor eax, 0xffff
cmp ecx, eax
je 0x44c77e
push str.zlib_corrupt
call fcn.0044a83b
add esp, 4
jmp 0x44c7bb
mov eax, dword [esi]
add eax, edi
cmp eax, dword [esi + 4]
jbe 0x44c78e
push str.read_past_buffer
jmp 0x44c774
mov eax, dword [esi + 0x10]
add eax, edi
cmp eax, dword [esi + 0x18]
jbe 0x44c7a5
push edi
push esi
call fcn.0044a84a
pop ecx
pop ecx
test eax, eax
je 0x44c7bb
push edi
push dword [esi]
push dword [esi + 0x10]
call fcn.00461ba0
add dword [esi], edi
xor eax, eax
add dword [esi + 0x10], edi
add esp, 0xc
inc eax
pop edi
pop esi
pop ebp
ret

Function at 0x45030b
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x30
mov eax, 0x4ad44e
call fcn.0047f4c2
xor esi, esi
mov dword [ebp - 0x18], 0x104
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
call fcn.00454f70
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], esi
call fcn.00454fa4
test eax, eax
mov edi, 0xf013f
lea eax, [ebp - 0x10]
push eax
jne 0x45034b
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 0x4503ad
push esi
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push esi
push esi
push esi
push 0x4af848
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x450388
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4503ad
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
push esi
push esi
push dword [ebp + 8]
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.00454f83
call fcn.0047f49c
ret 8
Function at 0x4504d9
Capabilities:
Read .ini file

Disassembly:
push 0x82c
mov eax, 0x4ad48b
call fcn.0047f4f6
mov edi, ecx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x830], eax
mov eax, dword [ebp + 0x10]
push 0x800
mov dword [ebp - 0x82c], eax
lea eax, [ebp - 0x810]
push ecx
push eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x838], esi
mov dword [ebp - 0x834], ecx
call fcn.00462120
lea eax, [edi + 0x6c]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x450533
mov eax, dword [eax]
push eax
push 0x400
lea eax, [ebp - 0x810]
push eax
push ebx
push dword [ebp - 0x82c]
push dword [ebp - 0x830]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x810]
mov ecx, esi
push eax
call fcn.00404610
and dword [ebp - 4], 0
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x834], 1
jb 0x450579
mov eax, dword [esi]
jmp 0x45057b
mov eax, esi
push ebx
push eax
call fcn.0046b213
pop ecx
pop ecx
test eax, eax
jne 0x4505c7
cmp byte [edi + 1], 0
lea eax, [ebp - 0x828]
push ebx
push dword [ebp - 0x82c]
mov ecx, edi
push dword [ebp - 0x830]
push eax
je 0x4505ab
call fcn.004503e9
jmp 0x4505b0
call fcn.004504a3
push eax
mov ecx, esi
call fcn.0040a220
push 0
push 1
lea ecx, [ebp - 0x828]
call fcn.00411240
mov eax, esi
call fcn.0047f4b1
ret 0x10
Function at 0x45115b
Capabilities:
Read .ini file

Disassembly:
push 0x23c
mov eax, 0x4ad528
call fcn.0047f4f6
mov ebx, ecx
call fcn.004503bd
lea edi, [ebx + 0x84]
push eax
mov ecx, edi
call fcn.00440d9d
mov esi, str.XinSuZip.ini
push esi
call fcn.0046b275
pop ecx
push eax
push esi
mov ecx, edi
call fcn.00407960
push str.xsgf
push 0x4bb58c
push str.AppInfo
lea eax, [ebp - 0x248]
mov ecx, ebx
push eax
call fcn.00450479
and dword [ebp - 4], 0
lea esi, [ebx + 0x9c]
lea eax, [ebp - 0x248]
cmp esi, eax
je 0x4511d1
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00407cc0
push str.xsgf
mov ecx, esi
call fcn.00451745
test eax, eax
jne 0x45124d
push 0x208
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.00462120
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x4511fe
mov edi, dword [edi]
push edi
push 0x104
lea eax, [ebp - 0x218]
mov edi, str.xsgf
push eax
push edi
push 0x4bb58c
push str.AppInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x218], 0
jne 0x45122f
xor eax, eax
jmp 0x45123c
lea eax, [ebp - 0x218]
push eax
call fcn.0046b275
pop ecx
push eax
lea eax, [ebp - 0x218]
mov ecx, esi
push eax
call fcn.00407de0
jmp 0x451252
mov edi, str.xsgf
push edi
mov ecx, esi
call fcn.00451745
test eax, eax
jne 0x451315
push 0x208
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.00462120
add esp, 0xc
lea eax, [ebx + 0x3c]
lea ecx, [ebp - 0x230]
push eax
call fcn.00450104
push str.XinSuZip.ini
mov byte [ebp - 4], 1
call fcn.0046b275
pop ecx
push eax
push str.XinSuZip.ini
lea ecx, [ebp - 0x230]
call fcn.00407960
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push edi
push 0x4bb58c
push str.AppInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x218], 0
jne 0x4512e6
xor eax, eax
jmp 0x4512f3
lea eax, [ebp - 0x218]
push eax
call fcn.0046b275
pop ecx
push eax
lea eax, [ebp - 0x218]
mov ecx, esi
push eax
call fcn.00407de0
push 0
push 1
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0
call fcn.00411240
push edi
mov ecx, esi
call fcn.00451745
test eax, eax
jne 0x451351
push edi
push 0x4bb58c
push str.AppInfo
lea eax, [ebp - 0x230]
mov ecx, ebx
push eax
call fcn.004504d9
push eax
mov ecx, esi
call fcn.0040a220
push 0
push 1
lea ecx, [ebp - 0x230]
call fcn.00411240
push 0
push 1
lea ecx, [ebp - 0x248]
call fcn.00411240
call fcn.0047f4b1
ret
Function at 0x454ff0
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push esi
push 0x4b284c
mov esi, ecx
call ebx
mov dword [esi], eax
test eax, eax
je 0x455070
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 0x45506f
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 0x455272
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

Function at 0x455eb7
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.0046b275
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.004139fb
push dword [ebp + 8]
mov esi, eax
push esi
call fcn.0046b253
mov eax, dword [ebp - 4]
xor edi, edi
add esp, 0x10
xor ebx, ebx
inc edi
test eax, eax
js 0x455f31
push 0x5c
pop ecx
cmp word [esi + ebx*2], cx
jne 0x455f28
xor eax, eax
push esi
mov word [esi + ebx*2], ax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x455f1e
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x455f2f
mov eax, dword [ebp - 4]
push 0x5c
pop ecx
mov word [esi + ebx*2], cx
inc ebx
cmp ebx, eax
jle 0x455efb
jmp 0x455f31
xor edi, edi
push esi
call fcn.00413a04
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x455f41
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x4d82a4]
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.004563cc
lea eax, [ebp - 0x20c]
push eax
call fcn.0046b275
add esp, 0x14
test eax, eax
je 0x455ff9
lea eax, [ebp - 0x20c]
push 0x4af844
push eax
call fcn.0046b1e2
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0046b1e2
lea eax, [ebp - 0x20c]
push 0x4af844
push eax
call fcn.0046b1e2
add esp, 0x18
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x455fd2
lea eax, [ebp - 0x20c]
push eax
call fcn.00455eb7
pop ecx
cmp word [ebp - 0x20c], si
je 0x455fea
lea eax, [ebp - 0x20c]
push eax
call fcn.0046b275
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
call fcn.00407de0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413a09
mov esp, ebp
pop ebp
ret

Function at 0x4560ad
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x4d82a4]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x4de94c]
test al, al
jne 0x456146
push ebx
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.00462120
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 0x45613d
lea eax, [ebp - 0x20c]
push eax
call fcn.0046b47c
lea eax, [ebp - 0x20c]
mov dword [esp], str.config_systemprofile
push eax
call fcn.004614d4
pop ecx
pop ecx
test eax, eax
jne 0x456135
lea eax, [ebp - 0x20c]
push str.documents_and_settingslocalservice
push eax
call fcn.004614d4
pop ecx
pop ecx
test eax, eax
je 0x45613d
mov byte [0x4de94c], bl
jmp 0x456143
mov bl, byte [0x4de94c]
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00413a09
mov esp, ebp
pop ebp
ret
Function at 0x456154
Capabilities:
Check if file exists

Disassembly:
push 0xc54
mov eax, 0x4adac0
call fcn.0047f4f6
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.00462120
push esi
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.00462120
push esi
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00462120
push esi
lea eax, [ebp - 0xa38]
push 0
push eax
call fcn.00462120
push esi
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00462120
push esi
xor esi, esi
lea eax, [ebp - 0x420]
push esi
push eax
call fcn.00462120
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.004563cc
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0046b253
lea eax, [ebp - 0x218]
push eax
call fcn.0046b275
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.004628d8
add esp, 0x24
test eax, eax
jne 0x456258
lea eax, [ebp - 0xc58]
push ebx
push eax
call fcn.00455f41
pop ecx
pop ecx
lea eax, [ebp - 0xc58]
mov ecx, edi
push eax
call fcn.00455a38
push esi
push 1
jmp 0x4563b9
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.0046b253
lea eax, [ebp - 0x830]
push str.Local
push eax
call fcn.0046b1e2
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.0046b253
lea eax, [ebp - 0x628]
push str.LocalLow
push eax
call fcn.0046b1e2
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.0046b253
lea eax, [ebp - 0xa38]
push str.Roaming
push eax
call fcn.0046b1e2
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 0x456396
cmp dword [ebp - 0xc5c], 0
je 0x456396
test ecx, ecx
je 0x456396
push ebx
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x420]
push str._s_s_
push eax
call fcn.00408c70
add esp, 0x10
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x456366
lea eax, [ebp - 0x420]
push eax
call fcn.00455eb7
pop ecx
cmp word [ebp - 0x420], 0
jne 0x456374
xor eax, eax
jmp 0x456381
lea eax, [ebp - 0x420]
push eax
call fcn.0046b275
pop ecx
push eax
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0xc58]
call fcn.00407de0
jmp 0x4563a5
lea eax, [ebp - 0xc58]
push ebx
push eax
call fcn.00455f41
pop ecx
pop ecx
lea eax, [ebp - 0xc58]
mov ecx, edi
push eax
call fcn.00455a38
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0xc58]
call fcn.00411240
mov eax, edi
call fcn.0047f4b1
ret
Function at 0x45643f
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push 0x2a0
mov eax, 0x4adb10
call fcn.0047f4f6
lea eax, [ebp + 8]
xor edi, edi
push eax
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], edi
call fcn.00450104
xor ebx, ebx
mov esi, 0x4bbb14
inc ebx
push esi
mov byte [ebp - 4], bl
call fcn.0046b275
pop ecx
push eax
push esi
lea ecx, [ebp - 0x58]
call fcn.00407960
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x2a8]
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4565bc
lea eax, [ebp - 0x2a8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4565bc
push 0x2e
pop eax
cmp word [ebp - 0x27c], ax
je 0x45649f
cmp word [ebp - 0x27a], 0
je 0x45649f
cmp word [ebp - 0x27a], ax
jne 0x4564de
cmp word [ebp - 0x278], 0
je 0x45649f
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], edi
mov word [ebp - 0x40], ax
cmp word [ebp - 0x27c], ax
jne 0x4564fb
mov eax, edi
jmp 0x456508
lea eax, [ebp - 0x27c]
push eax
call fcn.0046b275
pop ecx
push eax
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x40]
call fcn.00407de0
test byte [ebp - 0x2a8], 0x10
lea eax, [ebp + 8]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
push eax
je 0x456572
call fcn.00450104
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x28]
call fcn.00407850
push 0x4af844
call fcn.0046b275
pop ecx
push eax
push 0x4af844
lea ecx, [ebp - 0x28]
call fcn.00407960
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00450104
call fcn.0045643f
jmp 0x45659d
call fcn.00450104
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x28]
call fcn.00407850
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00450104
call fcn.00456608
add esp, 0x18
lea ecx, [ebp - 0x28]
push edi
push ebx
call fcn.00411240
push edi
push ebx
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00411240
jmp 0x45649f
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x4565ee
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 4
cmovae eax, dword [ebp + 8]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push edi
push ebx
lea ecx, [ebp - 0x58]
call fcn.00411240
push edi
push ebx
lea ecx, [ebp + 8]
call fcn.00411240
call fcn.0047f4b1
ret
Function at 0x45704c
Capabilities:
Create process on windows

Disassembly:
push 0x88
mov eax, 0x4adc70
call fcn.0047f4f6
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x94]
mov edi, dword [ebp + 0xc]
push 0x44
pop ebx
push ebx
push 0
push eax
call fcn.00462120
push 0x10
lea eax, [ebp - 0x50]
mov dword [ebp - 0x94], ebx
push 0
push eax
call fcn.00462120
add esp, 0x18
xor edx, edx
xor eax, eax
mov dword [ebp - 0x18], edx
mov word [ebp - 0x28], ax
push 7
pop ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edx
mov word [ebp - 0x40], ax
or ebx, 0xffffffff
mov byte [ebp - 4], 1
test edi, edi
je 0x45712a
cmp word [edi], dx
jne 0x4570bb
mov eax, edx
jmp 0x4570c2
push edi
call fcn.0046b275
pop ecx
push eax
push edi
lea ecx, [ebp - 0x40]
call fcn.00407de0
cmp dword [ebp - 0x30], 0
je 0x45712a
mov edi, 0x4bbd28
push edi
call fcn.0046b275
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28]
call fcn.00407de0
xor edi, edi
cmp word [esi], di
jne 0x4570f3
mov eax, edi
jmp 0x4570fa
push esi
call fcn.0046b275
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00407960
mov esi, 0x4bbd2c
push esi
call fcn.0046b275
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00407960
push ebx
push edi
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00407850
jmp 0x457146
xor edi, edi
cmp word [esi], di
jne 0x457135
mov eax, edi
jmp 0x45713c
push esi
call fcn.0046b275
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00407de0
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push str.CreateRunProcess__s_
call fcn.00481940
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
pop ecx
cmovae eax, dword [ebp - 0x28]
pop ecx
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x94]
push ecx
push edi
push edi
push edi
push 1
push edi
push edi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x45718b
mov esi, edi
jmp 0x4571b6
cmp byte [ebp + 0x10], 0
je 0x4571a3
cmp dword [ebp + 0x14], 0
cmovg ebx, dword [ebp + 0x14]
push ebx
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x50]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x4c]
call esi
xor esi, esi
inc esi
push edi
push 1
lea ecx, [ebp - 0x40]
call fcn.00411240
push edi
push 1
lea ecx, [ebp - 0x28]
call fcn.00411240
mov eax, esi
call fcn.0047f4b1
ret
Function at 0x457310
Capabilities:
Enumerate processes

Disassembly:
push 0x260
mov eax, 0x4adcec
call fcn.0047f4f6
mov eax, dword [ebp + 8]
test eax, eax
je 0x45740c
push eax
lea ecx, [ebp - 0x40]
call fcn.00404610
lea eax, [ebp - 0x40]
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.00456d61
mov edi, 0x22c
lea eax, [ebp - 0x26c]
push edi
push ebx
push eax
call fcn.00462120
add esp, 0x10
push ebx
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, 0xffffffff
je 0x4573fd
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x26c], edi
push eax
push esi
call sub.KERNEL32.dll_Process32FirstW
jmp 0x4573f2
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
cmp word [ebp - 0x248], ax
jne 0x45739c
mov eax, ebx
jmp 0x4573a9
lea eax, [ebp - 0x248]
push eax
call fcn.0046b275
pop ecx
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x28]
call fcn.00407de0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
call fcn.00456d61
pop ecx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00451715
test eax, eax
je 0x457412
push ebx
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], bl
call fcn.00411240
lea eax, [ebp - 0x26c]
push eax
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x45737f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, ebx
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.00411240
mov eax, esi
call fcn.0047f4b1
ret
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x264]
lea ecx, [ebp - 0x28]
push ebx
push 1
call fcn.00411240
jmp 0x4573ff

Function at 0x45824e
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push dword [ebp + 8]
mov esi, ecx
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 0xb7
neg eax
sbb eax, eax
inc eax
mov dword [esi + 4], eax
pop esi
pop ebp
ret 4