joyce8/EMBER2024-capa huggingface dataset:
Function at 0x413646
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
lea eax, [ebp - 8]
push esi
push eax
push 0x20019
xor esi, esi
push esi
push edx
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4136b6
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0xc]
push esi
push esi
push dword [ebp + 8]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 8]
push eax
pop esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or esi, esi
jne 0x4136b6
push dword [ebp + 0x18]
lea ecx, [ebp - 0x40c]
push dword [ebp + 0x14]
call fcn.00406cb7
push dword [ebp + 0x10]
lea ecx, [ebp - 0x40c]
push dword [ebp + 0xc]
call fcn.00406d3c
mov al, 1
jmp 0x4136b8
xor al, al
pop esi
push ebp
pop esp
pop ebp
ret

Function at 0x4136bd
Capabilities:
Set registry value

Disassembly:
push ebp
push esp
pop ebp
push ecx
push ebx
lea eax, [ebp - 4]
push eax
push edx
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x41370d
push esi
lea ecx, [ebp + 0xc]
call fcn.0040247c
push eax
lea ecx, [ebp + 0xc]
call fcn.00401fab
push eax
push dword [ebp + 0x24]
push 0
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 4]
push eax
pop esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or esi, esi
pop esi
sete bl
jmp 0x41370f
xor bl, bl
lea ecx, [ebp + 0xc]
call fcn.00401fd8
mov al, bl
pop ebx
push ebp
pop esp
pop ebp
ret

Function at 0x41371e
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x41375c
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 0x14]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or esi, esi
pop esi
sete al
jmp 0x41375e
xor al, al
mov esp, ebp
pop ebp
ret

Function at 0x413762
Capabilities:
Set registry value

Disassembly:
push ebp
push esp
pop ebp
push ecx
push ebx
lea eax, [ebp - 4]
push eax
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
or eax, eax
jne 0x4137b4
push esi
lea ecx, [ebp + 0xc]
call fcn.0040247c
lea ecx, [ebp + 0xc]
lea eax, [eax*2 + 2]
push eax
call fcn.00401f04
push eax
push 1
push 0
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
pop esi
sete bl
jmp 0x4137b6
xor bl, bl
lea ecx, [ebp + 0xc]
call fcn.00401f09
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4137c5
Capabilities:
Set registry value

Disassembly:
push ebp
push esp
pop ebp
push ecx
lea eax, [ebp - 4]
push eax
push edx
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x413807
push esi
push 4
lea eax, [ebp + 0xc]
push eax
push 4
push 0
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 4]
push eax
pop esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or esi, esi
pop esi
sete al
jmp 0x413809
xor al, al
mov esp, ebp
pop ebp
ret

Function at 0x41380d
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
or eax, eax
jne 0x41384b
push esi
push 4
lea eax, [ebp + 0xc]
push eax
push 4
push 0
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
push eax
pop esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or esi, esi
pop esi
sete al
jmp 0x41384d
xor al, al
mov esp, ebp
pop ebp
ret

Function at 0x413851
Capabilities:
Set registry value

Disassembly:
push ebp
push esp
pop ebp
push ecx
lea eax, [ebp - 4]
push eax
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
or eax, eax
jne 0x41388f
push esi
push 8
lea eax, [ebp + 0xc]
push eax
push 0xb
push 0
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or esi, esi
pop esi
sete al
jmp 0x413891
xor al, al
push ebp
pop esp
pop ebp
ret

Function at 0x413971
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push 2
push 0
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
or eax, eax
je 0x41398d
xor al, al
jmp 0x41399f
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
neg eax
sbb al, al
inc al
push ebp
pop esp
pop ebp
ret
Function at 0x4139a3
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xabb4
call fcn.004575f0
push ebx
push esi
push edi
push 0x208
sub esi, esi
lea eax, [ebp - 0x4a0]
push esi
push eax
push ecx
pop ebx
call fcn.00436dd0
add esp, 0xc
mov dword [ebp - 0x14], 0x104
lea eax, [ebp - 0x50]
mov dword [ebp - 4], esi
mov dword [ebp - 8], 0x3fff
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 4]
push eax
push esi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x4a0]
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov eax, dword [ebp - 4]
test eax, eax
je 0x413a81
or eax, eax
je 0x413a81
lea eax, [ebp - 0x50]
mov dword [ebp - 0x18], 0xff
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x298]
push eax
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
or eax, eax
jne 0x413a7b
push 0x467130
lea ecx, [ebp - 0x34]
call fcn.0040417e
push eax
lea edx, [ebp - 0x298]
lea ecx, [ebp - 0x68]
call fcn.004042fc
pop ecx
push eax
mov ecx, 0x4754b0
call fcn.0040325d
lea ecx, [ebp - 0x68]
call fcn.00401f09
lea ecx, [ebp - 0x34]
call fcn.00401f09
inc esi
cmp esi, dword [ebp - 4]
jb 0x413a1b
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x413bc3
xor esi, esi
test eax, eax
je 0x413bc3
xor eax, eax
mov byte [ebp - 0x5c], 0
lea edi, [ebp - 0x5b]
mov dword [ebp - 0xc], 0x2710
stosd dword es:[edi], eax
mov dword [ebp - 8], 0x3fff
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
sub eax, eax
mov word [ebp - 0xabb0], ax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x2bb0]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xabb0]
push eax
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
or eax, eax
jne 0x413bb9
push 0xa
lea eax, [ebp - 0x5c]
push eax
push dword [ebp - 0x1c]
call fcn.00441dc1
add esp, 0xc
lea ecx, [ebp - 0x80]
push 0x467130
call fcn.0040417e
push eax
lea edx, [ebp - 0xabb0]
lea ecx, [ebp - 0x34]
call fcn.004042fc
pop ecx
push eax
mov ecx, 0x4754c8
call fcn.0040325d
lea ecx, [ebp - 0x34]
call fcn.00401f09
lea ecx, [ebp - 0x80]
call fcn.00401f09
push 0x4660c0
lea ecx, [ebp - 0x34]
call fcn.00402093
push eax
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x80]
call fcn.004052fd
pop ecx
push eax
mov ecx, 0x4754e0
call fcn.00403376
lea ecx, [ebp - 0x80]
call fcn.00401fd8
lea ecx, [ebp - 0x34]
call fcn.00401fd8
push str._regsplt_
lea ecx, [ebp - 0x98]
call fcn.00402093
push eax
push dword [ebp - 0xc]
lea eax, [ebp - 0x2bb0]
push eax
lea ecx, [ebp - 0x34]
call fcn.004020b7
mov edx, eax
lea ecx, [ebp - 0x80]
call fcn.00402ea1
pop ecx
push eax
mov ecx, 0x475578
call fcn.00403376
lea ecx, [ebp - 0x80]
call fcn.00401fd8
lea ecx, [ebp - 0x34]
call fcn.00401fd8
lea ecx, [ebp - 0x98]
call fcn.00401fd8
inc esi
cmp esi, dword [ebp - 0x10]
jb 0x413a96
pop edi
pop esi
pop ebx
push ebp
pop esp
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
or 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
push ecx
pop eax
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]
or 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]
push eax
pop esi
mov ebp, dword [sym.imp.KERNEL32.dll_FreeLibrary]
sub 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
or eax, eax
jne 0x414de1
push esi
call ebp
push edi
pop esi
test esi, esi
je 0x414e1d
push edi
pop ebx
push dword [esp + ebx*8 + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + ebx*8 + 0x14], eax
or eax, eax
je 0x414e02
inc ebx
cmp ebx, 3
jl 0x414de7
jmp 0x414e07
push esi
call ebp
mov esi, edi
or 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
push eax
pop ecx
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
push ebx
pop esi
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]
push esp
pop esi
lea edx, [ebp + 8]
lea ecx, [ebp - 0x30]
push eax
push 0x474ee0
call fcn.00402f31
pop ecx
push eax
pop edx
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
push ebp
pop esp
pop ebp
ret
Function at 0x417c2d
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
push esp
pop ebp
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
push eax
pop edx
lea ecx, [ebp - 0x6c]
call fcn.004052fd
pop ecx
push eax
pop edx
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
push esp
pop ecx
push esi
call fcn.00402093
push 0x70
push edi
pop ecx
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
push esp
pop ecx
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
push ebp
pop esp
pop ebp
ret
Function at 0x41a9f4
Capabilities:
Stop service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x20
sub ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 0x20
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
push eax
pop edi
test edi, edi
jne 0x41aa2c
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41aa4a
lea eax, [ebp - 0x1c]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
or eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41aa5b
Capabilities:
Query service status
Start service
Stop service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x11
sub ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 0xf003f
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
push eax
pop edi
or edi, edi
jne 0x41aa96
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41aae7
lea eax, [ebp - 0x1c]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x41aab7
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push edi
call esi
mov bl, 2
jmp 0x41aae7
lea eax, [ebp - 0x1c]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp dword [ebp - 0x18], 1
jne 0x41aab7
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
neg eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 3
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41aaf8
Capabilities:
Pause service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x40
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 0x40
lea ecx, [ebp + 8]
push eax
pop esi
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
push eax
pop edi
test edi, edi
jne 0x41ab30
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41ab4e
lea eax, [ebp - 0x1c]
push eax
push 2
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
or eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
push ebp
pop esp
pop ebp
ret
Function at 0x41ab5f
Capabilities:
Continue service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x40
sub ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 0x40
lea ecx, [ebp + 8]
push eax
pop esi
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
push eax
pop edi
test edi, edi
jne 0x41ab97
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41abb5
lea eax, [ebp - 0x1c]
push eax
push 3
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
push ebp
pop esp
pop ebp
ret

Function at 0x41abc6
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 2
xor ebx, ebx
mov byte [ebp - 1], cl
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 2
lea ecx, [ebp + 8]
push eax
pop esi
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
or edi, edi
jne 0x41abff
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41ac43
movzx eax, byte [ebp - 1]
or ecx, 0xffffffff
sub eax, ebx
je 0x41ac1c
sub eax, 1
je 0x41ac18
sub eax, 1
jne 0x41ac1f
push 3
jmp 0x41ac1e
push 2
jmp 0x41ac1e
push 4
pop ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
push edi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41ac65
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
lea ecx, [esp + 4]
mov dl, 0x30
push esi
push str.alarm.wav
call fcn.0040d936
pop ecx
lea ecx, [esp + 8]
call fcn.00401f04
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
or eax, eax
jne 0x41acf0
mov esi, 0x475968
mov edx, 0x4660a4
mov ecx, esi
call fcn.00405b05
test al, al
je 0x41acde
sub esp, 0x18
cmp byte [0x474ad2], 0
mov ecx, esp
push 0x46c92c
je 0x41acc8
call fcn.00402093
mov ecx, 0x475980
jmp 0x41acd2
call fcn.00402093
mov ecx, 0x475598
push 0xa1
call fcn.00404aa1
jmp 0x41ad00
lea ecx, [esp + 8]
call fcn.00401f04
push eax
pop edx
push esi
pop ecx
call fcn.0041c440
lea ecx, [esp + 8]
call fcn.00401f04
push eax
pop ecx
call fcn.0041ad0e
lea ecx, [esp + 8]
call fcn.00401f09
pop esi
push ebp
pop esp
pop ebp
ret

Function at 0x41ad63
Capabilities:
Check if file exists

Disassembly:
push ebx
push ecx
mov ecx, 0x475968
mov bl, dl
call fcn.00401fc0
test bl, bl
je 0x41ad7b
pop ebx
jmp fcn.0041ac65
mov byte [0x474ad3], 1
pop ebx
ret
Function at 0x41af95
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
push ecx
push ecx
pop edi
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]
or eax, eax
je 0x41b0d6
call fcn.00401f04
push eax
pop edx
mov ecx, esi
call fcn.0041c440
push str._alias_audio
push edi
pop edx
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]
or 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
or 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]
or eax, eax
jne 0x41b195
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x41b0cc
mov eax, dword [0x474ad4]
or 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
push esp
pop ecx
push edi
call fcn.00402093
push 0xaa
push ebp
pop ecx
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