joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1020352
Capabilities:
Start service

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
xor esi, esi
xor ebx, ebx
cmp dword [ebp + 8], esi
push edi
mov dword [ebp - 4], 1
je 0x10203ea
push esi
push esi
push esi
push 0x192
push dword [0x1075c54]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov ebx, eax
cmp ebx, esi
je 0x10203ea
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x41
push esi
push esi
push 0x11
call edi
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
push 0x10
call edi
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x10]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
push 0xffffffffffffffff
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
jmp 0x10203db
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push esi
push esi
lea eax, [ebp - 0x34]
push ebx
push eax
call edi
test eax, eax
jne 0x10203d1
push 4
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
cmp eax, esi
mov dword [ebp - 8], eax
je 0x1020430
push 0x10
push 0x1011994
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
cmp eax, esi
mov edi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov dword [ebp + 8], eax
je 0x1020426
push esi
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
push dword [ebp + 8]
call edi
jmp 0x1020429
mov dword [ebp - 4], esi
push dword [ebp - 8]
call edi
jmp 0x1020433
mov dword [ebp - 4], esi
cmp ebx, esi
je 0x102043e
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x1020448
Capabilities:
Check for time delay via gettickcount
Read pipe
Write pipe

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb4
mov eax, dword [0x10723e4]
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
xor esi, esi
push esi
push 0x100080
push 3
push esi
push esi
push 0xc0000000
mov ebx, 0x10119c4
push ebx
mov dword [ebp - 4], eax
call edi
cmp eax, 0xffffffff
mov dword [ebp - 0x8c], eax
jne 0x1020491
cmp dword [ebp + 8], esi
je 0x1020520
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x1020527
mov ecx, dword [ebp + 8]
add eax, ecx
mov dword [ebp - 0x94], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebp - 0x94], eax
jbe 0x1020517
push 0x4ff
push 0x3e8
push 1
push esi
push esi
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
push esi
push 0x100080
push 3
push esi
push esi
push 0xc0000000
push ebx
call edi
mov dword [ebp - 0x8c], eax
jmp 0x10204f8
lea eax, [ebp - 0xb4]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push esi
push esi
lea eax, [ebp - 0xb4]
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x10204eb
cmp dword [ebp - 0x8c], 0xffffffff
je 0x10204af
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x1020527
xor eax, eax
jmp 0x10205c2
mov edi, dword [sym.imp.msvcrt.dll_wcscpy]
lea eax, [ebp - 0x84]
push 0x10119b4
push eax
call edi
lea eax, [ebp - 0x84]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
inc eax
mov dword [ebp - 0x88], eax
lea eax, [ebp + eax*2 - 0x84]
push 0x10119a4
push eax
call edi
add esp, 0x14
push esi
push esi
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x8c]
mov dword [ebp - 0x90], 2
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
push esi
lea eax, [ebp - 0x98]
push eax
push 4
push 0x1075c58
push 0x84
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_TransactNamedPipe]
test eax, eax
jne 0x10205b1
mov dword [0x1075c58], esi
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x1075c58]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0103d24a
leave
ret 4
Function at 0x1020e5f
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
cmp dword [0x1073304], 0
jne 0x1020e96
call fcn.01020164
test eax, eax
je 0x1020e96
lea eax, [ebp - 4]
push eax
push 0
push dword [ebp + 8]
push 0x1020d08
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
leave
ret 4
Function at 0x1021e48
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x10723e4]
push ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
cmp dword [0x1073938], ebx
mov dword [ebp - 0x14], eax
je 0x1021f06
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProfileIntW]
push edi
push ebx
push 0x1011e88
mov edi, 0x1010acc
push edi
call esi
dec eax
neg eax
push ebx
sbb al, al
push 0x1011e68
inc al
push edi
mov byte [0x1073310], al
call esi
dec eax
neg eax
push ebx
sbb al, al
push 0x1011e4c
inc al
push edi
mov byte [0x1073311], al
call esi
pop edi
mov dword [0x107331c], eax
mov word [ebp - 0xe], 0x3a
mov word [ebp - 0xc], bx
mov word [ebp - 0xa], bx
mov word [ebp - 0x10], 0x41
pop esi
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
dec eax
dec eax
je 0x1021eec
sub eax, 3
jne 0x1021efb
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.01021caa
jmp 0x1021efb
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.01021d55
inc word [ebp - 0x10]
cmp word [ebp - 0x10], 0x5a
jb 0x1021ec8
mov ecx, dword [ebp - 4]
pop ebx
call fcn.0103d24a
leave
ret 8
Function at 0x10229c7
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2bc
mov eax, dword [0x10723e4]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], eax
movzx eax, cx
push ebx
push esi
dec eax
cmp eax, 0xd
push edi
mov edi, dword [ebp + 8]
ja case.0x10229f0.7
jmp dword [eax*4 + 0x1022bc3]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1073334]
mov esi, eax
sub eax, ecx
cmp esi, ecx
ja 0x1022a0c
dec eax
cmp eax, 0x1388
jbe case.0x10229f0.7
xor ebx, ebx
push ebx
push ebx
push edi
push 0x10179bd
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
je case.0x10229f0.7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x1073334], esi
jmp case.0x10229f0.7
mov word [ebp - 0xc], 0x32
mov word [ebp - 0xa], 0x31
push dword [edi + 8]
call fcn.01017953
neg eax
sbb eax, eax
neg eax
add eax, 0x30
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
mov word [ebp - 8], ax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0xac]
push 0x1012230
xor ebx, ebx
push eax
mov word [ebp - 6], bx
call esi
add esp, 0xc
push 0x2000000
push ebx
push ebx
call dword [sym.imp.USER32.dll_OpenInputDesktop]
cmp eax, ebx
mov dword [ebp - 0x2b8], eax
je case.0x10229f0.7
mov eax, dword [edi + 8]
push dword [eax + 8]
lea eax, [ebp - 0x2b4]
push 0x1012228
push eax
call esi
lea eax, [ebp - 0x2b4]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
add esp, 0x10
lea ecx, [ebp - 0x2bc]
push ecx
mov ecx, 0x104
sub ecx, eax
push ecx
lea eax, [ebp + eax*2 - 0x2b4]
push eax
push 2
push dword [ebp - 0x2b8]
call dword [sym.imp.USER32.dll_GetUserObjectInformationW]
call fcn.0103cd0f
mov esi, eax
cmp esi, ebx
je 0x1022b2e
push 0x493e0
push esi
call fcn.0103c578
push 2
push esi
call fcn.0103c8aa
push esi
push ebx
push ebx
lea eax, [ebp - 0xac]
push eax
push ebx
lea eax, [ebp - 0x2b4]
push eax
xor eax, eax
cmp dword [edi + 0x1c], ebx
sete al
push eax
push edi
call fcn.0103c5d9
push esi
call fcn.0103cdcd
push dword [ebp - 0x2b8]
call dword [sym.imp.USER32.dll_CloseDesktop]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.0103d24a
leave
ret 0xc
mov word [ebp - 0xc], 0x32
mov word [ebp - 0xa], 0x32
jmp 0x1022a4f
mov word [ebp - 0xc], 0x32
mov word [ebp - 0xa], 0x33
jmp 0x1022a4f
mov word [ebp - 0xc], 0x32
mov word [ebp - 0xa], 0x34
jmp 0x1022a4f
mov word [ebp - 0xc], 0x32
mov word [ebp - 0xa], 0x35
jmp 0x1022a4f
mov word [ebp - 0xa], 0x30
jmp 0x1022bab
mov word [ebp - 0xc], 0x30
mov word [ebp - 0xa], 0x31
jmp 0x1022bb1
mov word [ebp - 0xa], 0x31
mov word [ebp - 0xc], 0x31
and cl, 4
or cl, 0xc3
shr cl, 2
movzx ax, cl
jmp 0x1022a60

Function at 0x102356e
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push edi
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0x1023569
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, eax
test edi, edi
je 0x10235f5
jmp dword [0x1071104]
xor eax, eax
pop edi
leave
ret
Function at 0x1024a2c
Capabilities:
Get process heap force flags

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 8]
push edi
xor ebx, ebx
push ebx
add eax, 0x28
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
xor edi, edi
call fcn.01026af5
cmp eax, ebx
mov dword [ebp - 0xc], eax
je 0x1024c31
jmp dword [0x1071778]
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
push 0x10
push ebx
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov esi, eax
cmp esi, ebx
je 0x1024e43
jmp dword [0x1071878]
xor eax, eax
cmp esi, ebx
setne al
pop edi
pop esi
pop ebx
leave
ret 0xc
Function at 0x1026c05
Capabilities:
Create thread
Resume thread
Terminate thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push esi
mov esi, dword [eax + 8]
push edi
push dword [ebp + 0x18]
add esi, 0x28
mov dword [ebp - 0xc], 0xc
mov eax, dword [esi + 0x10]
and dword [ebp - 4], 0
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x14]
or eax, 4
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0xc]
push dword [ebp + 0xc]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, eax
test edi, edi
je 0x1026c76
push edi
push esi
call fcn.01026af5
test eax, eax
je 0x1026c62
push edi
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x1026c74
push 0
push edi
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
mov eax, edi
pop edi
pop esi
leave
ret 0x14

Function at 0x1026c7c
Capabilities:
Get token membership

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0xc]
push eax
push 8
push dword [ebp + 8]
call dword [sym.imp.ntdll.dll_NtQueryInformationToken]
test eax, eax
jge 0x1026ca1
xor eax, eax
jmp 0x1026d04
cmp dword [ebp - 0xc], 1
jne 0x1026ce7
lea eax, [ebp - 8]
push eax
push 2
push 2
push 0
push 0x2000c
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
je 0x1026cfd
lea eax, [ebp - 4]
push eax
push dword [0x1075bb8]
push dword [ebp - 8]
call sub.ADVAPI32.dll_CheckTokenMembership
test eax, eax
jne 0x1026cdc
and dword [ebp - 4], eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1026d01
lea eax, [ebp - 4]
push eax
push dword [0x1075bb8]
push dword [ebp + 8]
call sub.ADVAPI32.dll_CheckTokenMembership
test eax, eax
jne 0x1026d01
and dword [ebp - 4], 0
mov eax, dword [ebp - 4]
leave
ret 4
Function at 0x102725c
Capabilities:
Get system information on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x140
mov eax, dword [0x10723e4]
push ebx
xor ebx, ebx
cmp byte [0x1073904], bl
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], eax
je 0x1027492
cmp dword [0x107393c], ebx
je 0x1027492
push ebx
push 4
lea eax, [ebp - 0xa4]
push eax
push 0x46
call dword [sym.imp.ntdll.dll_NtQuerySystemInformation]
test eax, eax
jl 0x1027492
cmp dword [ebp - 0xa4], ebx
je 0x1027492
cmp esi, ebx
je 0x10272d2
lea eax, [ebp - 0x140]
push eax
push 0x4c
lea eax, [ebp - 0x50]
push eax
push 1
push esi
call dword [sym.imp.ntdll.dll_NtQueryInformationToken]
test eax, eax
jge 0x10272d9
xor eax, eax
jmp 0x1027495
push edi
push dword [0x107393c]
lea eax, [ebp - 0x9c]
push 0x1012614
push 0x26
push eax
call dword [sym.imp.msvcrt.dll__snwprintf]
add esp, 0x10
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea eax, [ebp - 0x13c]
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0xbc]
push eax
push 0x60000
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xbc], 0x18
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
call dword [sym.imp.ntdll.dll_NtOpenDirectoryObject]
mov edi, eax
cmp edi, ebx
jl 0x1027488
mov eax, dword [0x1075bb4]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x134], eax
mov eax, dword [0x1075bb0]
mov dword [ebp - 0x128], eax
mov eax, dword [0x1075bb8]
mov dword [ebp - 0x11c], eax
mov eax, 0x2000f
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xf8], eax
mov eax, dword [0x1075ba8]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe0], eax
mov eax, dword [0x1075bac]
mov edx, 0x10000000
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x110], ecx
mov ecx, 0xf000f
push 0xa
lea eax, [ebp - 0x134]
push eax
mov dword [ebp - 0x130], 2
mov byte [ebp - 0x12c], bl
mov dword [ebp - 0x124], 3
mov byte [ebp - 0x120], 2
mov byte [ebp - 0x114], bl
mov byte [ebp - 0x108], bl
mov dword [ebp - 0x100], edx
mov byte [ebp - 0xfc], 0xb
mov dword [ebp - 0xf4], ecx
mov byte [ebp - 0xf0], bl
mov dword [ebp - 0xe8], edx
mov byte [ebp - 0xe4], 0xb
mov dword [ebp - 0xdc], ecx
mov byte [ebp - 0xd8], bl
mov dword [ebp - 0xd0], edx
mov byte [ebp - 0xcc], 0xb
mov dword [ebp - 0xc4], ecx
mov byte [ebp - 0xc0], bl
call fcn.01026e6b
mov esi, eax
cmp esi, ebx
je 0x1027477
push esi
push 4
push dword [ebp - 0xa0]
call dword [sym.imp.ntdll.dll_NtSetSecurityObject]
push esi
mov edi, eax
call fcn.01026a5a
jmp 0x102747c
mov edi, 0xc0000017
push dword [ebp - 0xa0]
call dword [sym.imp.ntdll.dll_NtClose]
xor eax, eax
cmp edi, ebx
setge al
pop edi
jmp 0x1027495
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.0103d24a
leave
ret 8
Function at 0x1027dd4
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 8], 0
cmp dword [0x107393c], 0
jne 0x1027e34
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x1012764
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1027e34
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0x1012750
push dword [ebp - 4]
mov dword [ebp - 0xc], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 8]
leave
ret

Function at 0x1027e39
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push esi
push 0x57
pop esi
lea eax, [ebp - 4]
push eax
push 0x20006
push 0
push 0x1012764
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1027e85
push 4
lea eax, [ebp + 8]
push eax
push 4
push 0
push 0x1012750
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]
xor eax, eax
test esi, esi
sete al
pop esi
leave
ret 4

Function at 0x1027e91
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
lea eax, [ebp - 4]
push eax
push 0x2001b
xor esi, esi
push esi
push 0x1012764
push 0x80000002
mov dword [ebp - 8], esi
xor ebx, ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1027f0e
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push esi
mov esi, 0x1012780
push esi
push dword [ebp - 4]
mov dword [ebp - 0xc], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1027f05
cmp dword [ebp - 0x10], 4
jne 0x1027f05
mov eax, dword [ebp - 8]
cmp eax, 2
ja 0x1027f05
mov ecx, dword [ebp + 8]
push esi
push dword [ebp - 4]
mov dword [ecx], eax
inc ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov eax, ebx
pop ebx
leave
ret 4

Function at 0x1027f16
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push esi
lea eax, [ebp - 4]
push eax
push 0x20019
xor esi, esi
push esi
push 0x1012764
push 0x80000002
mov dword [ebp - 8], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1027f6d
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push esi
push 0x10127ac
push dword [ebp - 4]
mov dword [ebp - 0xc], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 8], esi
je 0x1027f8f
push 0x10
push 0x5f4
push 0x636
push esi
push dword [ebp + 8]
call fcn.0101ff96
push dword [ebp + 8]
call fcn.0101eb0c
pop esi
leave
ret 4
Function at 0x1027f94
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 8], 0
push esi
lea eax, [ebp - 4]
push eax
push 0x2001f
push 0
push 0x1011048
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1027ffb
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
mov esi, 0x101280c
push esi
push dword [ebp - 4]
mov dword [ebp - 0xc], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1027ff2
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 8], 0
je 0x102802b
push 0x10127f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x102802b
push 0x10127d8
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1028024
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop esi
leave
ret

Function at 0x1028155
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x10723e4]
push edi
push 0x47
mov dword [ebp - 4], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x120]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x102820a
cmp byte [ebp - 6], 1
jne 0x102820a
lea eax, [ebp - 0x124]
push eax
push 0x2001f
xor edi, edi
push edi
push 0x1011048
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x102820a
push esi
push edi
push edi
push edi
push edi
mov esi, 0x101281c
push esi
push dword [ebp - 0x124]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x10281fd
push 4
lea eax, [ebp - 0x128]
push eax
push 4
push edi
push esi
push dword [ebp - 0x124]
mov dword [ebp - 0x128], 1
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
call fcn.010280d0
push dword [ebp - 0x124]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov ecx, dword [ebp - 4]
pop edi
call fcn.0103d24a
leave
ret
Function at 0x1028215
Capabilities:
Create process on windows
Delete file
Delete registry value
Get common file path
Persist via run registry key
Query or enumerate registry value
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x474
mov eax, dword [0x10723e4]
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
mov dword [ebp - 0x41c], eax
lea eax, [ebp - 0x418]
push eax
push 0x20019
xor esi, esi
push esi
push 0x10128d8
push 0x80000002
call ebx
cmp eax, esi
jne 0x10283c5
push edi
lea eax, [ebp - 0x430]
push eax
push esi
push esi
push esi
push 0x10128c8
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
cmp edi, 0xea
jne 0x1028284
xor edi, edi
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp edi, esi
jne 0x10283c4
push esi
push dword [ebp - 0x41c]
call fcn.0103af03
push 0x11
pop ecx
xor eax, eax
lea edi, [ebp - 0x474]
rep stosd dword es:[edi], eax
push 0x104
lea eax, [ebp - 0x414]
push eax
mov dword [ebp - 0x474], 0x44
mov dword [ebp - 0x448], 0x80
mov dword [ebp - 0x46c], 0x10128a4
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x101288c
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x474]
push eax
lea eax, [ebp - 0x414]
push eax
push esi
push 0x4000000
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x10283c4
push dword [ebp - 0x428]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push 0xffffffffffffffff
push dword [ebp - 0x42c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1028368
push esi
push dword [ebp - 0x42c]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x42c]
call edi
lea eax, [ebp - 0x418]
push eax
push 0x2001f
push esi
push 0x1011048
push 0x80000002
call ebx
test eax, eax
jne 0x10283aa
push 0x1012858
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x78
push dword [ebp - 0x41c]
call fcn.0103af03
pop edi
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.0103d24a
leave
ret 4
Function at 0x10284b0
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
lea eax, [ebp - 4]
push eax
xor ebx, ebx
push 0x2001f
push ebx
push 0x1011048
push 0x80000002
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1028525
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push edi
push 4
pop edi
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
push 0x10129c4
push dword [ebp - 4]
mov dword [ebp - 8], edi
call esi
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
push 0x1012858
push dword [ebp - 4]
mov dword [ebp - 8], edi
call esi
pop edi
cmp dword [ebp - 0x10], ebx
jne 0x102852f
cmp dword [ebp - 0xc], ebx
je 0x10285ae
mov eax, dword [0x10733b4]
cmp eax, ebx
je 0x1028553
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [0x10733b4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x10733b4], ebx
call fcn.0103ce55
push 1
call fcn.0103bb36
cmp dword [ebp - 0xc], ebx
jne 0x10285a6
push 0x10129a8
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
cmp esi, ebx
je 0x10285ae
push 0x1012998
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x102858f
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp - 0x10]
push ebx
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x10129c4
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x10285ae
push dword [ebp + 8]
call fcn.01028215
call fcn.01028155
cmp dword [ebp - 4], ebx
pop esi
pop ebx
je 0x10285c3
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x14]
leave
ret 4