joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1005350
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x1012d50]
mov dword [ebp - 4], eax
mov eax, dword [0x10121dc]
cmp eax, 0xffffffff
je 0x1005374
test eax, eax
setne al
jmp 0x10053de
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x108], 2
jne 0x10053d5
cmp dword [ebp - 0x114], 5
jb 0x10053d5
and dword [ebp - 0x11c], 0
push 0
push 4
lea eax, [ebp - 0x11c]
push eax
push 0x1a
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x101242c]
test eax, eax
jl 0x10053d5
cmp dword [ebp - 0x11c], 0
je 0x10053d5
xor eax, eax
inc eax
mov dword [0x10121dc], eax
jmp 0x10053de
and dword [0x10121dc], 0
xor al, al
mov ecx, dword [ebp - 4]
call fcn.0100f222
leave
ret

Function at 0x1006302
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x1012d50]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], eax
push edi
mov byte [ebp - 0x205], 1
xor ebx, ebx
jmp 0x10063c5
mov eax, dword [esi]
add esi, 4
push dword [esi]
mov dword [ebp - 0x20c], ebx
push eax
lea eax, [ebp - 0x204]
push 0x100
push eax
call fcn.01005ad6
add esp, 0x10
add esi, 4
test eax, eax
jl 0x10063e0
mov eax, dword [esi]
push ebx
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x20c]
push eax
push ebx
push 0x2001f
push ebx
push ebx
push ebx
lea eax, [ebp - 0x204]
add esi, 4
mov edi, dword [esi]
push eax
push 0x80000000
add esi, 4
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x10063b3
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
push edi
push 1
push ebx
push dword [ebp - 0x210]
push dword [ebp - 0x20c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x10063b9
mov byte [ebp - 0x205], bl
push dword [ebp - 0x20c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esi], ebx
jne 0x1006329
mov al, byte [ebp - 0x205]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100f222
leave
ret
xor al, al
jmp 0x10063d3

Function at 0x10063e9
Capabilities:
Delete registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x204
mov eax, dword [0x1012d50]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], eax
mov bl, 1
jmp 0x100644c
mov eax, dword [esi]
add esi, 4
push dword [esi]
push eax
lea eax, [ebp - 0x204]
push 0x100
push eax
call fcn.01005ad6
add esp, 0x10
test eax, eax
jl 0x100645f
lea eax, [ebp - 0x204]
push eax
push 0x80000000
add esi, 0xc
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
cmp eax, 0x3fa
je 0x100644c
cmp eax, 2
je 0x100644c
test eax, eax
je 0x100644c
xor bl, bl
cmp dword [esi], 0
jne 0x1006405
mov al, bl
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.0100f222
leave
ret
xor al, al
jmp 0x1006453
Function at 0x1006991
Capabilities:
Delete registry key
Delete registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x1012d50]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 4], eax
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xa8], 0x1011148
mov ebx, 0x10013e4
push dword [ebx]
mov esi, 0x1011020
push 0x10018a0
push 0x28
push 0x1013150
call fcn.01005ad6
add esp, 0x10
cmp eax, edi
jl 0x1006b1b
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
cmp eax, edi
je 0x1006a02
push eax
push 0x28
push 0x1012d68
call fcn.01004215
cmp eax, edi
jl 0x1006b1b
cmp dword [0x1011020], edi
je 0x1006a69
lea ecx, [esi + 4]
cmp dword [ecx], edi
je 0x1006a65
cmp dword [esi + 8], edi
je 0x1006a65
mov eax, dword [esi]
mov esi, ecx
mov ecx, dword [esi]
push ecx
push eax
lea eax, [ebp - 0xa4]
push 0x50
push eax
add esi, 4
call fcn.01005ad6
add esp, 0x10
cmp eax, edi
jl 0x1006b1b
lea eax, [ebp - 0xa4]
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
cmp eax, 0x3fa
je 0x1006a62
cmp eax, 2
je 0x1006a62
cmp eax, edi
je 0x1006a62
inc dword [ebp - 0xac]
add esi, 0xc
cmp dword [esi], edi
jne 0x1006a0a
add dword [ebp - 0xa8], 4
add ebx, 0x10
cmp ebx, 0x10013f4
jl 0x10069be
mov esi, 0x2001f
call fcn.01005350
movzx ebx, al
cmp ebx, edi
je 0x1006a95
mov esi, 0x2011f
lea eax, [ebp - 0xa8]
push eax
push esi
push edi
mov edi, 0x1001838
push edi
mov esi, 0x80000002
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1006adc
test ebx, ebx
jne 0x1006abf
push 0x1001810
jmp 0x1006ac4
push 0x10017f8
push dword [ebp - 0xa8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [ebp - 0xa8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x1006ae8
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
jmp section..htext
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100f222
leave
ret
Function at 0x1006fb6
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x810
mov eax, dword [0x1012d50]
push edi
push 0x103
push 0x1012e08
push dword [0x10131a0]
xor edi, edi
mov dword [ebp - 4], eax
mov word [0x101300e], di
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1006ff8
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100713f
cmp dword [0x101107c], edi
push esi
mov word [0x101300e], di
mov dword [ebp - 0x80c], edi
mov esi, 0x1011078
je 0x100711d
push ebx
push 4
pop ebx
mov edi, 0x401
mov eax, dword [esi]
add esi, ebx
test eax, eax
jne 0x100710d
mov ecx, dword [esi]
add esi, ebx
mov edx, dword [esi]
add esi, ebx
mov eax, dword [esi]
add esi, ebx
test eax, eax
je 0x1007051
push eax
push edx
push ecx
lea eax, [ebp - 0x808]
push edi
push eax
call fcn.01005ad6
add esp, 0x14
jmp 0x1007063
push edx
push ecx
lea eax, [ebp - 0x808]
push edi
push eax
call fcn.01005ad6
add esp, 0x10
xor ecx, ecx
cmp eax, ecx
jge 0x1007077
inc dword [ebp - 0x80c]
add esi, 8
jmp 0x1007110
push ecx
lea eax, [ebp - 0x810]
push eax
push ecx
push 0x2001f
push ecx
push ecx
push ecx
lea eax, [ebp - 0x808]
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x10070a4
inc dword [ebp - 0x80c]
mov eax, dword [esi]
test eax, eax
je 0x10070fc
add esi, ebx
push dword [esi]
push eax
lea eax, [ebp - 0x808]
push edi
push eax
call fcn.01005ad6
add esp, 0x10
add esi, ebx
test eax, eax
jl 0x10070f4
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x808]
push eax
push 1
push 0
push 0
push dword [ebp - 0x810]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x10070ff
inc dword [ebp - 0x80c]
jmp 0x10070ff
add esi, 8
push dword [ebp - 0x810]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1007110
add esi, 0x14
cmp dword [esi + 4], 0
jne 0x1007020
xor edi, edi
pop ebx
push edi
push edi
push 0x1000
push 0x8000000
call dword [0x101235c]
mov eax, dword [ebp - 0x80c]
neg eax
sbb eax, eax
and eax, 0x80004005
pop esi
mov ecx, dword [ebp - 4]
pop edi
call fcn.0100f222
leave
ret
Function at 0x100714f
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x80c
mov eax, dword [0x1012d50]
push ebx
push esi
xor ebx, ebx
cmp dword [0x101107c], ebx
mov dword [ebp - 4], eax
push edi
mov esi, 0x101107c
je 0x1007233
mov edi, 0x401
mov ecx, dword [esi]
add esi, 4
mov edx, dword [esi]
add esi, 4
mov eax, dword [esi]
add esi, 4
cmp eax, ebx
je 0x10071a5
push eax
push edx
push ecx
lea eax, [ebp - 0x808]
push edi
push eax
call fcn.01005ad6
add esp, 0x14
jmp 0x10071b7
push edx
push ecx
lea eax, [ebp - 0x808]
push edi
push eax
call fcn.01005ad6
add esp, 0x10
cmp eax, ebx
jl 0x1007254
lea eax, [ebp - 0x80c]
push eax
push 0x20008
push ebx
lea eax, [ebp - 0x808]
push eax
push 0x80000000
mov dword [ebp - 0x80c], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1007228
push 0x50
lea eax, [ebp - 0x808]
push eax
push ebx
push dword [ebp - 0x80c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
cmp eax, 0x103
jne 0x1007216
push 0x10015b8
push dword [ebp - 0x80c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
push dword [ebp - 0x80c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x80c], ebx
add esi, 0xc
cmp dword [esi], ebx
jne 0x100717d
push ebx
push ebx
push 0x1000
push 0x8000000
call dword [0x101235c]
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100f222
leave
ret
mov eax, 0x80004005
jmp 0x1007247
Function at 0x1007260
Capabilities:
Get geographical location
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x824
mov eax, dword [0x1012d50]
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], eax
xor eax, eax
mov ecx, 0x200
lea edi, [ebp - 0x81a]
mov word [ebp - 0x81c], bx
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
cmp edi, 0x641
mov dword [ebp - 0x820], ebx
mov esi, 0x401
jb 0x10072c3
push ebx
push esi
lea eax, [ebp - 0x81c]
push eax
push edi
push 0xffffffffffffffff
call sub.msi.dll_MsiDecomposeDescriptorW
cmp eax, ebx
mov dword [ebp - 0x824], eax
jne 0x100735a
call dword [sym.imp.KERNEL32.dll_GetACP]
push 0x1001984
mov dword [ebp - 0x824], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x1001968
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x1007314
call eax
push 0xa
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x820], eax
push ecx
movzx eax, ax
push 0x20001004
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1007314
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x824], eax
push ebx
push esi
lea eax, [ebp - 0x81c]
push eax
movzx eax, word [ebp - 0x820]
push eax
push edi
push ebx
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
cmp eax, ebx
je 0x1007340
mov word [ebp + eax*2 - 0x820], bx
jmp 0x100735a
push edi
push 0x1001944
lea eax, [ebp - 0x81c]
push esi
push eax
call fcn.01005ad6
add esp, 0x10
test eax, eax
jl 0x10073d6
cmp dword [0x10131b8], ebx
mov eax, dword [0x10136d4]
jne 0x1007389
cmp eax, ebx
je 0x1007370
cmp eax, 0xffffffff
jne 0x1007389
push ebx
push dword [ebp - 0x824]
lea eax, [ebp - 0x81c]
push 0x30
push ebx
push eax
push ebx
call sub.msi.dll_MsiProvideQualifiedComponentExW
jmp 0x10073d6
cmp eax, ebx
je 0x10073d6
cmp eax, 0xffffffff
je 0x10073d6
push ebx
lea eax, [ebp - 0x820]
push eax
lea eax, [ebp - 0x81c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
shl eax, 1
push eax
lea eax, [ebp - 0x81c]
push eax
push dword [0x10136d4]
call esi
push ebx
lea eax, [ebp - 0x820]
push eax
push 4
push 0x1001514
push dword [0x10136d4]
call esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100f222
leave
ret
Function at 0x1007509
Capabilities:
Identify system language via api

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x1012d50]
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x58]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x64], eax
push ebx
inc edi
lea eax, [ebp - 0x48]
mov esi, 0x1388
push esi
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], eax
call fcn.0100573c
test al, al
je 0x10075f1
push ebx
push esi
lea ecx, [ebp - 0x54]
call fcn.0100573c
test al, al
je 0x10075f1
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push eax
push dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
push dword [ebp - 0x64]
push 0xa
push 0xffffffffffffffff
call sub.msi.dll_MsiDecomposeDescriptorW
push 0x71f
push 0xfa0
push edi
push 3
push 0x10019b4
mov esi, eax
lea eax, [ebp - 0x44]
push 0x20
push eax
call fcn.01005ad6
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.01005ad6
add esp, 0x2c
cmp esi, 0x4e8
mov dword [ebp - 0x68], 0x69
je 0x10075c0
cmp esi, 0x4e7
jne 0x10075c7
mov dword [ebp - 0x68], 0x78
push 0x1001998
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push dword [ebp - 0x68]
mov edi, eax
push dword [ebp - 0x6c]
push esi
push ebx
push ebx
push dword [ebp - 0x54]
push ebx
call sub.msi.dll_MsiBeginTransactionA
cmp edi, ebx
je 0x10075f1
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp - 0x54]
call fcn.01007410
lea ecx, [ebp - 0x64]
call fcn.01007410
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, 0x8000
pop ebx
call fcn.0100f222
leave
ret
Function at 0x100804a
Capabilities:
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x1012d50]
push ebx
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x20c]
mov esi, 0x104
push edi
mov dword [ebp - 0x214], esi
mov dword [ebp - 0x218], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, esi
jle 0x10080a9
push 0
push eax
lea ecx, [ebp - 0x218]
call fcn.010057ee
test al, al
jne 0x10080a9
push 0xe
pop esi
jmp 0x10081ce
push edi
push dword [ebp - 0x214]
push dword [ebp - 0x218]
call fcn.01005a5e
test eax, eax
jl 0x10080a1
xor ebx, ebx
xor esi, esi
cmp edi, ebx
mov eax, edi
je 0x10080e9
mov cx, word [edi]
cmp cx, bx
je 0x10080e5
push eax
call fcn.01004b1f
pop ecx
mov cx, word [eax]
cmp cx, 0x5c
jne 0x10080cc
mov esi, eax
jmp 0x10080cc
cmp esi, ebx
jne 0x10080f1
xor esi, esi
inc esi
jmp 0x10081ce
mov eax, dword [ebp - 0x218]
sub esi, edi
sar esi, 1
push ebx
mov word [eax + esi*2], bx
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, eax
cmp esi, ebx
jne 0x10081ce
push 8
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x21c], eax
mov ebx, 0x80070000
je 0x100813f
push dword [ebp - 0x218]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x1008157
call edi
test eax, eax
jg 0x100814b
call edi
mov esi, eax
jmp 0x1008157
call edi
mov esi, eax
and esi, 0xffff
or esi, ebx
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_SetThreadToken]
test eax, eax
jne 0x100817d
call edi
test eax, eax
jg 0x1008171
call edi
mov esi, eax
jmp 0x100817d
call edi
mov esi, eax
and esi, 0xffff
or esi, ebx
test esi, esi
jne 0x10081b3
push dword [ebp - 0x220]
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10081af
call edi
test eax, eax
jg 0x10081a1
call edi
jmp 0x10081b1
call edi
mov esi, eax
and esi, 0xffff
or esi, ebx
jmp 0x10081b3
call eax
mov esi, eax
cmp dword [ebp - 0x21c], 0
je 0x10081c8
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x218]
call fcn.010059c0
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
pop ebx
call fcn.0100f222
leave
ret
Function at 0x1008223
Capabilities:
Print debug messages
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x870
mov eax, dword [0x1012d50]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
cmp dword [0x10121e8], 0xffffffff
mov dword [ebp - 0x870], eax
jne 0x1008307
lea eax, [ebp - 0x868]
push eax
mov dword [0x10121e8], ebx
mov dword [ebp - 0x86c], ebx
mov dword [ebp - 0x868], 0x20019
call fcn.0100439d
pop ecx
lea eax, [ebp - 0x86c]
push eax
push dword [ebp - 0x868]
push ebx
push 0x1001af0
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1008307
lea eax, [ebp - 0x858]
mov dword [ebp - 0x864], eax
lea eax, [ebp - 0x868]
push eax
lea eax, [ebp - 0x858]
push eax
push ebx
push ebx
push 0x1001ae0
push dword [ebp - 0x86c]
mov dword [ebp - 0x860], 0x28
mov dword [ebp - 0x868], 0x50
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x10082f0
mov eax, dword [ebp - 0x864]
mov eax, dword [eax]
and eax, 3
mov dword [0x10121e8], eax
push dword [ebp - 0x86c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x864]
call fcn.01005a38
test dword [0x10121e8], 3
je 0x1008373
push edi
xor eax, eax
cmp dword [ebp + 0xc], ebx
mov ecx, 0x200
lea edi, [ebp - 0x806]
mov word [ebp - 0x808], bx
rep stosd dword es:[edi], eax
pop edi
lea eax, [ebp - 0x808]
push esi
je 0x100834f
push dword [ebp + 0xc]
push 0x1001abc
push 0x401
push eax
call fcn.01005ad6
add esp, 0x14
jmp 0x1008362
push 0x1001ab0
push 0x401
push eax
call fcn.01005ad6
add esp, 0x10
cmp eax, ebx
jl 0x1008373
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [ebp - 0x870]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.0100f222
leave
ret
Function at 0x1008562
Capabilities:
Delete service
Query service status
Stop service

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
push esi
xor esi, esi
push 0xf003f
push esi
push esi
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], esi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
cmp eax, esi
mov dword [ebp - 0x10], eax
je 0x10086ab
push 0xf01ff
push 0x1001588
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
cmp eax, esi
mov dword [ebp - 8], eax
je 0x1008677
push edi
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push eax
push 1
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
je 0x1008614
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
mov ebx, 0x3e8
push ebx
mov dword [ebp - 0x28], 4
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
jmp 0x10085f7
mov eax, dword [ebp - 0xc]
inc dword [ebp - 0xc]
cmp eax, 5
jge 0x1008604
cmp dword [ebp - 0x28], 3
jne 0x1008604
push ebx
call esi
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 8]
call edi
test eax, eax
jne 0x10085e3
cmp dword [ebp - 0x28], 1
pop ebx
je 0x1008654
mov dword [ebp - 4], 0x80004005
jmp 0x100866b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
sub eax, 0x41c
je 0x1008648
sub eax, 8
je 0x1008643
dec eax
dec eax
je 0x1008643
sub eax, 0xf
je 0x1008643
push dword [ebp - 4]
push 0x1001c30
call fcn.01008223
pop ecx
pop ecx
jmp 0x100864f
mov dword [ebp - 4], esi
jmp 0x1008654
mov dword [ebp - 4], 0x652
cmp dword [ebp - 4], esi
jne 0x100866b
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_DeleteService]
cmp eax, 1
je 0x100866b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
jmp 0x10086a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
sub eax, 0x424
je 0x100869d
sub eax, 0xc
je 0x100869d
push dword [ebp - 4]
push 0x1001c08
call fcn.01008223
pop ecx
pop ecx
jmp 0x10086a0
mov dword [ebp - 4], esi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x10086c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001bdc
mov dword [ebp - 4], eax
call fcn.01008223
pop ecx
pop ecx
mov eax, dword [ebp - 4]
pop esi
leave
ret
Function at 0x10086cc
Capabilities:
Create service

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x1012d50]
push ebx
push edi
mov dword [ebp - 4], eax
xor ebx, ebx
xor eax, eax
mov word [ebp - 0x41c], bx
mov ecx, 0x83
lea edi, [ebp - 0x41a]
rep stosd dword es:[edi], eax
push 0x103
lea eax, [ebp - 0x41c]
push eax
push ebx
mov dword [ebp - 0x420], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1008721
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1008898
lea eax, [ebp - 0xc]
push eax
push 0x107
lea eax, [ebp - 0x41c]
push eax
mov word [ebp - 0x216], bx
mov word [ebp - 0xc], 0x20
mov word [ebp - 0xa], 0x2f
mov word [ebp - 8], 0x56
mov word [ebp - 6], bx
call fcn.01005b44
cmp eax, ebx
jl 0x1008898
push esi
push 0x7f
pop ecx
xor eax, eax
mov word [ebp - 0x20c], bx
lea edi, [ebp - 0x20a]
rep stosd dword es:[edi], eax
push ebx
stosw word es:[edi], ax
mov esi, 0x100
push esi
lea eax, [ebp - 0x20c]
push eax
push 0x1b
push 0xffffffffffffffff
call sub.msi.dll_MsiDecomposeDescriptorW
test eax, eax
jne 0x10087a0
push 9
push esi
lea eax, [ebp - 0x20c]
push eax
push 0x1b
push 0xffffffffffffffff
call sub.msi.dll_MsiDecomposeDescriptorW
push 0xf003f
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
cmp eax, ebx
mov dword [ebp - 8], eax
je 0x1008885
cmp dword [ebp - 0x420], ebx
mov dword [ebp - 0x424], ebx
je 0x10087d1
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push dword [0x10111b4]
lea eax, [ebp - 0x41c]
push ebx
push ebx
push eax
push 1
push 3
push 0x20
push 0xf01ff
lea eax, [ebp - 0x20c]
push eax
push 0x1001588
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov edi, eax
cmp edi, ebx
jne 0x100882e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x430
mov dword [ebp - 0x424], eax
jne 0x100887a
mov eax, dword [ebp - 0x420]
inc dword [ebp - 0x420]
cmp eax, 0xe
jl 0x10087b8
jmp 0x100887a
push ebx
push esi
lea eax, [ebp - 0x20c]
push eax
push 0x20
push 0xffffffffffffffff
call sub.msi.dll_MsiDecomposeDescriptorW
test eax, eax
jne 0x1008857
push 9
push esi
lea eax, [ebp - 0x20c]
push eax
push 0x1b
push 0xffffffffffffffff
call sub.msi.dll_MsiDecomposeDescriptorW
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x420]
push eax
push 1
push edi
call dword [0x10122e8]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1008891
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x424], eax
mov eax, dword [ebp - 0x424]
pop esi
mov ecx, dword [ebp - 4]
pop edi
pop ebx
call fcn.0100f222
leave
ret
Function at 0x10088a9
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc0c
mov eax, dword [0x1012d50]
mov ecx, dword [ebp + 0xc]
push esi
lea edx, [ebp - 0xc00]
push edx
push 0x2001f
xor esi, esi
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ecx
push eax
mov dword [ebp - 0xc04], eax
mov dword [ebp - 0xc0c], ecx
call fcn.010043c4
add esp, 0x14
cmp eax, esi
je 0x10088f7
cmp eax, 2
sete al
jmp 0x1008a33
push ebx
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
push esi
push esi
lea eax, [ebp - 0xbf0]
push esi
mov dword [ebp - 0xbfc], eax
push esi
lea eax, [ebp - 0xc08]
push eax
mov ebx, 0x1f4
lea eax, [ebp - 0xbf0]
mov dword [ebp - 0xbf8], ebx
mov dword [ebp - 0xc08], ebx
push eax
jmp 0x1008968
push dword [ebp - 0xbfc]
push dword [ebp - 0xc00]
call fcn.010088a9
test al, al
pop ecx
pop ecx
je 0x1008a0d
mov eax, dword [ebp - 0xbf8]
push esi
push esi
push esi
mov dword [ebp - 0xc08], eax
push esi
lea eax, [ebp - 0xc08]
push eax
push dword [ebp - 0xbfc]
push esi
push dword [ebp - 0xc00]
call edi
cmp eax, esi
je 0x1008930
cmp eax, 0x103
push dword [ebp - 0xc00]
jne 0x1008a13
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0xc0c]
push dword [ebp - 0xc04]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
cmp eax, esi
mov dword [ebp - 0xc04], eax
je 0x1008a1b
push dword [ebp - 0xc0c]
xor eax, eax
mov word [ebp - 0x808], si
mov ecx, 0x200
lea edi, [ebp - 0x806]
push 0x1001c60
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x808]
push 0x401
push eax
call fcn.01005ad6
add esp, 0x10
test eax, eax
jl 0x10089f5
push dword [ebp - 0xc04]
lea eax, [ebp - 0x808]
push eax
call fcn.01008223
pop ecx
pop ecx
cmp dword [ebp - 0xbf8], ebx
jle 0x1008a09
push dword [ebp - 0xbfc]
call fcn.01005335
pop ecx
xor al, al
jmp 0x1008a31
push dword [ebp - 0xc00]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10089f5
cmp dword [ebp - 0xbf8], ebx
jle 0x1008a2f
push dword [ebp - 0xbfc]
call fcn.01005335
pop ecx
mov al, 1
pop edi
pop ebx
mov ecx, dword [ebp - 4]
pop esi
call fcn.0100f222
leave
ret