joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4054c8
Capabilities:
Hash data using sha256

Disassembly:
cmp dword [0x441494], 2
jl 0x4054ed
movaps xmm0, xmmword [0x42f400]
movaps xmmword [0x439bb0], xmm0
movaps xmm0, xmmword [0x42f3f0]
movaps xmmword [0x439bc0], xmm0
push esi
mov esi, dword [esp + 8]
mov ecx, esi
call fcn.00405893
xor edx, edx
mov ecx, dword [esi + 0xf4]
mov eax, dword [edx + 0x42f3c8]
mov dword [edx + ecx], eax
add edx, 4
cmp edx, 0x20
jl 0x4054fb
mov eax, dword [esi + 0xf4]
xor dword [eax], 0x2080020
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0xc]
xor dword [ecx + 8], eax
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0x10]
or eax, 0x2000
shl eax, 0x10
xor dword [ecx + 0xc], eax
pop esi
ret 0xc

Function at 0x405c44
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x405c76
test dl, 7
je 0x405c76
movzx ecx, byte [edx]
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x439bd8]
inc edx
mov dword [ebp + 0xc], edx
sub esi, 1
jne 0x405c56
cmp esi, 8
jb 0x405d06
push edi
mov edi, esi
shr edi, 3
xor ebx, dword [edx]
sub esi, 8
mov edx, dword [edx + 4]
mov ecx, edx
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x439bd8]
xor ecx, dword [eax*4 + 0x439fd8]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x43a3d8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x43abd8]
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor ecx, dword [eax*4 + 0x43afd8]
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x43b3d8]
movzx eax, dl
mov edx, dword [ebp + 0xc]
add edx, 8
mov dword [ebp + 0xc], edx
xor ecx, dword [eax*4 + 0x43a7d8]
movzx eax, bl
xor ecx, dword [eax*4 + 0x43b7d8]
mov ebx, ecx
sub edi, 1
jne 0x405c85
pop edi
test esi, esi
je 0x405d22
movzx ecx, byte [edx]
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x439bd8]
inc edx
sub esi, 1
jne 0x405d0a
pop esi
mov eax, ebx
pop ebx
pop ebp
ret 0xc
Function at 0x406543
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1d0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1e4]
push edi
push 0x40
pop ebp
cmp esi, ebp
jbe 0x406598
lea eax, [esp + 0x170]
push eax
call fcn.0040e222
push esi
push dword [esp + 0x1e8]
lea eax, [esp + 0x178]
push eax
call fcn.0040e268
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x174]
push eax
call int.0040e17b
push 0x20
lea ebx, [esp + 0x54]
pop esi
jmp 0x40659f
mov ebx, dword [esp + 0x1e4]
xor edi, edi
mov edx, edi
test esi, esi
je 0x4065c4
mov ebp, ebx
lea eax, [esp + 0x10]
sub ebp, eax
lea ecx, [esp + 0x10]
add ecx, edx
mov al, byte [ecx + ebp]
xor al, 0x36
inc edx
mov byte [ecx], al
cmp edx, esi
jb 0x4065af
push 0x40
pop ebp
cmp esi, ebp
jae 0x4065de
mov eax, ebp
lea ecx, [esp + 0x10]
sub eax, esi
add ecx, esi
push eax
push 0x36
push ecx
call fcn.0041d1e0
add esp, 0xc
lea eax, [esp + 0x90]
push eax
call fcn.0040e222
push ebp
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0040e268
push dword [esp + 0x1f0]
lea eax, [esp + 0x94]
push dword [esp + 0x1f0]
push eax
call fcn.0040e268
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x94]
push eax
call int.0040e17b
lea eax, [esp + 0x100]
push eax
call fcn.0040e222
test esi, esi
je 0x406654
lea eax, [esp + 0x10]
sub ebx, eax
lea ecx, [esp + 0x10]
add ecx, edi
mov al, byte [ebx + ecx]
xor al, 0x5c
inc edi
mov byte [ecx], al
cmp edi, esi
jb 0x406642
cmp esi, ebp
jae 0x40666e
mov eax, ebp
lea ecx, [esp + 0x10]
sub eax, esi
add ecx, esi
push eax
push 0x5c
push ecx
call fcn.0041d1e0
add esp, 0xc
push ebp
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.0040e268
push 0x20
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.0040e268
push dword [esp + 0x1f4]
lea eax, [esp + 0x104]
push eax
call int.0040e17b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1d0
ret 0x14

Function at 0x409032
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0xc], 1
jne 0x40904b
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esi + 4], eax
push 0
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4090be
mov ecx, esi
call fcn.00409139
test al, al
je 0x409086
mov eax, 0x4e20
cmp dword [ebp + 0xc], eax
jbe 0x409086
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.00409032
jmp 0x4090c1
cmp dword [esi + 0xc], 1
jne 0x40909b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
jne 0x40909b
xor eax, eax
jmp 0x4090c1
cmp dword [esi + 0xc], 0
jne 0x4090b9
mov ebx, 0x8000
cmp dword [ebp + 0xc], ebx
jbe 0x4090b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x21
jne 0x4090b9
push ebx
jmp 0x40907a
or eax, 0xffffffff
jmp 0x4090c1
mov eax, dword [ebp - 4]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x40915c
Capabilities:
Check if file exists

Disassembly:
mov eax, 0x1008
call fcn.0041c240
push ebx
mov ebx, dword [esp + 0x1014]
xor edx, edx
push ebp
push edi
mov edi, ecx
mov dword [edi + 0x1020], edx
cmp byte [edi + 0x1c], dl
jne 0x409186
mov cl, dl
test bl, 4
je 0x409188
mov cl, 1
mov eax, ebx
shr eax, 1
push esi
and al, 1
movzx esi, al
neg esi
sbb esi, esi
and esi, 0xc0000000
add esi, 0x80000000
test bl, 1
je 0x4091ad
or esi, 0x40000000
shr ebx, 3
not ebx
and ebx, 1
test cl, cl
je 0x4091bc
or ebx, 2
xor eax, eax
cmp byte [edi + 0x15], al
push edx
setne al
dec eax
and eax, 0x8000000
push eax
push 3
push edx
push ebx
push esi
push dword [esp + 0x1034]
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x40924b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x18]
push 0x800
push eax
push dword [esp + 0x1024]
call fcn.0040ac19
test al, al
je 0x40923a
push 0
push dword [esp + 0x18]
lea eax, [esp + 0x20]
push 3
push 0
push ebx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x409235
mov dword [esp + 0x10], eax
cmp ebp, 0xffffffff
jne 0x40924b
cmp dword [esp + 0x10], 2
jne 0x40924b
mov dword [edi + 0x1020], 1
xor eax, eax
cmp ebp, 0xffffffff
mov byte [edi + 0x12], al
setne bl
mov dword [edi + 0xc], eax
mov byte [edi + 0x10], al
pop esi
test bl, bl
je 0x409279
push 0x800
push dword [esp + 0x101c]
lea ecx, [edi + 0x1e]
mov dword [edi + 4], ebp
push ecx
call fcn.0040e847
pop edi
pop ebp
mov al, bl
pop ebx
add esp, 0x1008
ret 8
Function at 0x40d9d3
Capabilities:
Contain obfuscated stackstrings

Disassembly:
lea eax, [ebp - 0x58]
push eax
call fcn.0040d702
mov esi, dword [ebp + 0xc]
push eax
push esi
push dword [ebp + 8]
call fcn.0040d6b7
add esp, 0x10
lea ecx, [ebp - 0xb0]
push ecx
call eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xac]
xor edx, edx
div ecx
xor edx, edx
mov dword [ebp - 0x8c], eax
invalid
invalid
invalid
mov eax, dword [ebp - 8]
clc
div ecx
test edx, edx
je 0x40d9e0
inc dword [ebp - 0x8c]
imul ecx, dword [ebp - 0x8c]
mov dword [ebp + 0xc], ecx
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x3f], bl
mov byte [ebp - 0x3e], 0xec
mov byte [ebp - 0x3d], bl
mov byte [ebp - 0x3c], 0x45
mov byte [ebp - 0x3b], 0x7a
mov byte [ebp - 0x3a], 0x61
mov byte [ebp - 0x39], 0x67
mov byte [ebp - 0x38], 0x66
mov byte [ebp - 0x37], 0x72
mov byte [ebp - 0x36], 0x7f
mov byte [ebp - 0x35], 0x52
mov byte [ebp - 0x34], 0x7f
mov byte [ebp - 0x33], 0x7f
mov byte [ebp - 0x32], 0x7c
mov byte [ebp - 0x31], 0x70
mov byte [ebp - 0x30], 0x13
call fcn.0040d6f2
mov edx, 0x8d52973c
inc ebp
rcl byte [eax - 0x18], 0xc5
cld
invalid

Function at 0x40e5d3
Capabilities:
Contain obfuscated stackstrings

Disassembly:
lea edi, [ebp - 0x12b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
and byte [ebp - 0x654], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x653]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
and byte [ebp - 0x504], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x503]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.0040d6d0
or byte [eax + 0x2ff845c6], ah
mov byte [ebp - 0x24], 0x34
and byte [ebp - 0x36c], 0
and byte [ebp - 0x36b], 0
mov byte [ebp - 0x36a], 0xaa
and byte [ebp - 0x369], 0
invalid
invalid
cwde
cld
invalid
Function at 0x41749e
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor eax, eax
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
call ebx
mov esi, dword [esp + 0x38]
mov ebp, eax
mov ecx, dword [esi]
lea eax, [esp + 0x10]
push eax
push esi
call dword [ecx + 0x48]
test eax, eax
js 0x4174d5
cmp dword [esp + 0x10], 0
jne 0x41751d
call ebx
sub eax, ebp
cmp eax, 0x7d0
ja 0x41751d
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x4174bf
xor eax, eax
push eax
push eax
push eax
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x4174bf
mov eax, dword [esi]
lea ecx, [esp + 0x10]
push ecx
push esi
call dword [eax + 0x48]
mov esi, eax
test esi, esi
js 0x41758b
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x417583
mov eax, dword [ecx]
lea edx, [esp + 0x14]
push edx
push 0x4307cc
push ecx
call dword [eax]
mov esi, eax
test esi, esi
js 0x417575
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov esi, eax
test esi, esi
js 0x41756b
mov eax, dword [esp + 0x14]
push dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [esp + 0x10]
test esi, esi
js 0x41758b
test ecx, ecx
jne 0x4175dc
xor ebp, ebp
cmp dword [edi + 8], ebp
je 0x4175dc
cmp dword [edi + 0x18], ebp
jne 0x4175dc
cmp dword [edi + 0x14], ebp
je 0x4175dc
push dword [edi + 0x14]
mov ecx, edi
call fcn.00417ad8
mov ebx, eax
test ebx, ebx
je 0x4175dc
push 0x204
push ebp
push ebp
push ebp
push ebp
push 1
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
push 5
push dword [edi + 8]
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push ebx
call fcn.004216d0
pop ecx
pop edi
xor eax, eax
test esi, esi
pop esi
pop ebp
setns al
pop ebx
add esp, 0x24
ret 8
Function at 0x41b147
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1008
call fcn.0041c240
cmp byte [0x448758], 0
je 0x41b1d1
cmp word [0x454e28], 0
je 0x41b1d1
push esi
lea eax, [ebp - 0x1008]
push eax
push 0x454e28
call fcn.00419e17
lea eax, [ebp - 8]
xor esi, esi
push eax
lea eax, [ebp - 4]
push eax
push esi
push 0x20006
push esi
push esi
push esi
push str.SoftwareWinRAR_SFX
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x41b1d0
push dword [ebp + 8]
call fcn.004216b5
pop ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x1008]
push 1
push esi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x10003300
Capabilities:
Delete service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
push eax
xor eax, eax
xor eax, eax
je 0x1000331a
sub dword [edx], ebp
sub ebx, dword [eax + 0x68]
inc dword [ecx]
str word [ebx - 0x74aff3bb]
dec ebp
or byte [ecx - 1], dl
adc eax, sym.imp.ADVAPI32.dll_OpenServiceA
pop eax
push 0xf01ff
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x1000333b
xor eax, eax
jmp 0x10003355
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_DeleteService]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x10005cf0
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
je 0x10005d07
sub dword [edx], ebp
sub ebx, dword [eax - 0x39]
inc ebp
clc
add byte [esi + 5], bl
pop eax
mov dword [ebp - 8], 0x5265c00
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov word [ebp - 0x18], 2
mov cx, word [ebp + 8]
push ecx
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x16], ax
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x10005d4e
xor eax, eax
jmp 0x10005df0
push 0x10
lea edx, [ebp - 0x18]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x10005d71
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x10005df0
push 4
lea edx, [ebp - 8]
push edx
push 0x1005
push 0xffff
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x10005d9e
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x10005df0
push 4
lea edx, [ebp - 8]
push edx
push 0x1006
push 0xffff
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x10005dcb
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x10005df0
push bind
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
jne 0x10005ded
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x10005df0
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10009070
Capabilities:
Create thread
Set global application hook

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
je 0x10009087
sub dword [edx], ebp
sub ebx, dword [eax + 0x6a]
add byte [edx], ch
pop eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x100146a8], eax
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [0x100146ac], eax
push 0
push 0
push 0x10009680
call dword [sym.imp.MSVCRT.dll__beginthread]
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov dword [ebp - 8], eax
push 0x2000000
push 0
push 0
push str.Default
call dword [sym.imp.USER32.dll_OpenDesktopA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x100090f5
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_SetThreadDesktop]
cmp dword [0x10015c10], 0
jne 0x10009119
push 0
mov ecx, dword [0x10014864]
push ecx
push 0x10008d20
push 4
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x10015c10], eax
cmp dword [0x10015c0c], 0
jne 0x1000913d
push 0
mov edx, dword [0x10014864]
push edx
push 0x10008c40
push 3
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x10015c0c], eax
push 0x2000000
push 0
push 0
push str.WINLOGON
call dword [sym.imp.USER32.dll_OpenDesktopA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x10009164
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_SetThreadDesktop]
cmp dword [0x10015c14], 0
jne 0x10009188
push 0
mov ecx, dword [0x10014864]
push ecx
push 0x10008f30
push 3
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x10015c14], eax
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.USER32.dll_SetThreadDesktop]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x100091a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push eax
xor eax, eax
nop
xor eax, eax
nop
je 0x100091b7
nop
nop
sub dword [edx], ebp
sub ebx, dword [eax + 0x6a]
add byte [eax - 0x80], ch
add byte [eax], al
add byte [edx + 4], ch
pop eax
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x100091e1
xor eax, eax
jmp 0x10009229
push 2
push 0
push 0
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 4], 0
push 0
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1000a1e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
nop
nop
je 0x1000a1fa
nop
nop
sub dword [edx], ebp
sub ebx, dword [eax - 0x39]
inc ebp
cld
add byte [eax], al
add byte [eax], al
pop eax
mov dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x1000a22b
xor eax, eax
jmp 0x1000a2be
mov byte [ebp - 0x10c], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x10b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x110], 0x104
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x10c]
push ecx
push 0
push 0
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x1000a285
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x1000a2be
mov ecx, dword [ebp - 0x110]
lea esi, [ebp - 0x10c]
mov edi, dword [ebp + 0x14]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x1000a2b9
xor eax, eax
jmp 0x1000a2be
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x1000a360
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
nop
je 0x1000a377
nop
nop
nop
sub dword [edx], ebp
sub ebx, dword [eax - 0x73]
inc ebp
in al, dx
pop eax
lea eax, [ebp - 0x14]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea ecx, [ebp - 0xc]
push ecx
push str.SeDebugPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
mov dword [ebp - 0x10], 1
mov dword [ebp - 4], 2
push 0
push 0
push 0
lea edx, [ebp - 0x10]
push edx
push 0
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1000a480
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
je 0x1000a497
sub dword [edx], ebp
sub ebx, dword [eax + 0x6a]
add byte [eax - 0x80], ch
add byte [eax], al
add byte [edx + 3], ch
pop eax
push 0
push 0x80
push 3
push 0
push 1
push bind
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x1000a4c1
xor eax, eax
jmp 0x1000a4ef
mov dword [ebp - 4], 0
push 0
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x1000a500
Capabilities:
Delete file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
je 0x1000a517
sub dword [edx], ebp
sub ebx, dword [eax - 0x75]
inc ebp
or byte [eax - 1], dl
adc eax, sym.imp.KERNEL32.dll_DeleteFileA
pop eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
push 0x80
push 1
push 0
push 0
push 0x40000000
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x1000a54b
xor eax, eax
jmp 0x1000a579
mov dword [ebp - 4], 0
push 0
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x1000a690
Capabilities:
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push eax
xor eax, eax
xor eax, eax
nop
nop
je 0x1000a6a7
nop
nop
sub dword [edx], ebp
sub ebx, dword [eax + 0x68]
aas
add byte [edi], cl
add byte [edx], ch
pop eax
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x1000a6c2
jmp 0x1000a70c
push 0xf01ff
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x1000a6ea
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1000a70c
push 0
push 0
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret