joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000adc0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x1001826e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
mov eax, dword [esp + 0x54]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push eax
mov dword [esp + 0x14], esi
call fcn.100095d0
mov dword [esp + 0x5c], 0
mov dword [esi + 0x24], 0x100195b4
mov dword [esp + 0x14], 0x7f8a
mov dword [esp + 0x18], 0x7f00
mov dword [esp + 0x1c], 0x7f03
mov dword [esp + 0x20], 0x7f89
mov dword [esp + 0x24], 0x7f8b
mov dword [esp + 0x28], 0x7f01
mov dword [esp + 0x2c], 0x7f81
mov dword [esp + 0x30], 0x7f88
mov dword [esp + 0x34], 0x7f80
mov dword [esp + 0x38], 0x7f86
mov dword [esp + 0x3c], 0x7f83
mov dword [esp + 0x40], 0x7f85
mov dword [esp + 0x44], 0x7f82
mov dword [esp + 0x48], 0x7f84
mov dword [esp + 0x4c], 0x7f04
mov dword [esp + 0x50], 0x7f02
lea ebp, [esp + 0x14]
lea edi, [esi + 0x68]
mov ebx, 0x10
mov eax, dword [ebp]
push eax
push 0
mov dword [edi - 0x40], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [edi], eax
add ebp, 4
add edi, 4
dec ebx
jne 0x1000ae87
mov ebx, 1
push 0x110
mov byte [esp + 0x60], bl
mov dword [esi], 0x100195ac
mov byte [esi + 0x13], bl
mov dword [esi + 0x18], 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x64], eax
test eax, eax
mov byte [esp + 0x5c], 2
je 0x1000aee3
push 0x64
push 0
push 8
mov ecx, eax
call int.1000b9d0
jmp 0x1000aee5
xor eax, eax
push ebx
push 0
push 0
push esi
push 0x1000b510
push 0
push 0
mov byte [esp + 0x78], bl
mov dword [esi + 0xa8], eax
mov byte [esi + 0x10], bl
mov byte [esi + 0x12], 0
mov byte [esi + 0x11], 0
mov byte [esi + 0x14], 0
call fcn.10010300
push ebx
push 0
push 0
push esi
push 0x1000b580
push 0
push 0
mov dword [esi + 0x1c], eax
call fcn.10010300
mov ecx, dword [esp + 0x8c]
add esp, 0x38
mov dword [esi + 0x20], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x50
ret 4
Function at 0x1000b680
Capabilities:
Log keystrokes

Disassembly:
push esi
mov esi, dword [esp + 0xc]
mov eax, esi
xor edx, edx
mov ecx, 0x1c
div ecx
test edx, edx
jne 0x1000b831
call fcn.100106c0
mov eax, 0x24924925
mul esi
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 4
test esi, esi
jle 0x1000b831
mov edx, dword [esp + 8]
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_mouse_event]
push edi
lea ebx, [edx + 8]
mov dword [esp + 0x18], esi
mov eax, dword [ebx - 4]
cmp eax, 0x200
jb 0x1000b6fd
cmp eax, 0x208
ja 0x1000b6fd
mov edi, dword [ebx + 4]
xor esi, esi
mov si, word [ebx + 4]
shr edi, 0x10
push edi
push esi
call dword [sym.imp.USER32.dll_SetCursorPos]
push edi
push esi
call dword [sym.imp.USER32.dll_WindowFromPoint]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [ebx - 4]
cmp eax, 0x203
ja 0x1000b7ad
je 0x1000b795
cmp eax, 0x105
ja 0x1000b769
je 0x1000b74b
sub eax, 0x100
je 0x1000b72d
dec eax
je 0x1000b74b
sub eax, 3
jne case.0x1000b7b7.521
mov eax, dword [ebx]
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov cl, byte [ebx]
push eax
push ecx
call dword [sym.imp.USER32.dll_keybd_event]
jmp case.0x1000b7b7.521
mov edx, dword [ebx]
push 0
push 2
push 0
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push eax
mov al, byte [ebx]
push eax
call dword [sym.imp.USER32.dll_keybd_event]
jmp case.0x1000b7b7.521
sub eax, 0x201
je 0x1000b786
dec eax
jne case.0x1000b7b7.521
push 0
push 0
push 0
push 0
push 4
jmp 0x1000b81a
push 0
push 0
push 0
push 0
push 2
jmp 0x1000b81a
push 0
push 0
push 0
push 0
push 6
call ebp
push 0
push 0
push 0
push 0
push 6
jmp 0x1000b81a
add eax, 0xfffffdfc
cmp eax, 6
ja case.0x1000b7b7.521
jmp dword [eax*4 + 0x1000b838]
push 0
push 0
push 0
push 0
push 8
jmp 0x1000b81a
push 0
push 0
push 0
push 0
push 0x10
jmp 0x1000b81a
push 0
push 0
push 0
push 0
push 0x18
call ebp
push 0
push 0
push 0
push 0
push 0x18
jmp 0x1000b81a
push 0
push 0
push 0
push 0
push 0x20
jmp 0x1000b81a
push 0
push 0
push 0
push 0
push 0x40
jmp 0x1000b81a
mov ecx, dword [ebx]
push 0
shr ecx, 0x10
movsx edx, cx
push edx
push 0
push 0
push 0x800
call ebp
mov eax, dword [esp + 0x18]
add ebx, 0x1c
dec eax
mov dword [esp + 0x18], eax
jne 0x1000b6c9
pop edi
pop ebp
pop ebx
pop esi
ret 8

Function at 0x1000b860
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1000b8c8
push ebx
push esi
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov esi, dword [esp + 0x10]
push esi
push 0x2000
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
je 0x1000b8c0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, esi
mov esi, dword [esp + 0x10]
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebx
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
call dword [sym.imp.USER32.dll_CloseClipboard]
pop esi
pop ebx
ret 8
Function at 0x1000b8d0
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
sub esp, 8
push esi
mov dword [esp + 8], ecx
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1000b962
push 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
test esi, esi
mov dword [esp + 4], esi
jne 0x1000b901
call dword [sym.imp.USER32.dll_CloseClipboard]
pop esi
add esp, 8
ret
push ebx
push ebp
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov ebx, eax
push esi
inc ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push ebx
mov esi, eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
lea ecx, [ebx - 1]
mov ebp, eax
mov eax, ecx
add esp, 4
lea edi, [ebp + 1]
mov byte [ebp], 0x76
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov ecx, dword [esp + 0x14]
push ebx
push ebp
call fcn.10009650
push ebp
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop ebp
pop ebx
pop esi
add esp, 8
ret
Function at 0x1000bda0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x1c
push ebx
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
xor edi, edi
cmp ebp, edi
mov esi, ecx
je 0x1000bf53
cmp dword [esi + 0x1c], edi
je 0x1000bf53
call fcn.1000c360
lea ebx, [esi + 4]
push 1
push ebx
mov ecx, esi
mov dword [esi + 0x20], edi
call fcn.1000c1a0
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [esp + 0x10]
push 8
push ecx
mov ecx, esi
call fcn.1000c1a0
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0x14
push edx
call dword [sym.imp.USER32.dll_GetCursorInfo]
test eax, eax
je 0x1000be36
cmp dword [esp + 0x1c], 1
jne 0x1000be36
mov ecx, dword [esp + 0x20]
lea eax, [esi + 0xcc]
cmp ecx, dword [eax]
je 0x1000be23
inc edi
add eax, 4
cmp edi, 0x10
jl 0x1000be16
push ecx
call dword [sym.imp.USER32.dll_DestroyCursor]
cmp edi, 0x10
jne 0x1000be32
or edi, 0xffffffff
mov eax, edi
jmp 0x1000be39
or eax, 0xffffffff
mov byte [esp + 0x30], al
lea eax, [esp + 0x30]
push 1
push eax
mov ecx, esi
call fcn.1000c1a0
cmp byte [ebx], 2
jne 0x1000bea1
mov eax, dword [esi + 0x68]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x44]
push ecx
mov ecx, dword [esi + 0x80]
push edx
push eax
push ecx
mov ecx, esi
call fcn.1000c3a0
mov edx, dword [esi + 0x68]
mov ecx, dword [esi + 0x20]
mov eax, dword [edx + 0x14]
mov edx, dword [esi + 0x60]
push eax
mov eax, dword [esi + 0x1c]
add ecx, eax
mov eax, dword [esi + 0x78]
push ecx
push edx
push eax
mov ecx, esi
call fcn.1000c400
mov ecx, dword [esi + 0x20]
pop edi
add eax, ecx
mov dword [ebp], eax
mov eax, dword [esi + 0x1c]
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 4
mov ecx, dword [esp + 0x14]
xor edx, edx
lea eax, [ecx - 0x13]
test eax, eax
setl dl
dec edx
and edx, eax
mov eax, dword [0x10021f3c]
cmp ecx, eax
mov edi, edx
je 0x1000bece
push edi
mov ecx, esi
call fcn.1000bf60
test al, al
je 0x1000bece
add edi, 0x13
jmp 0x1000bed1
mov edi, dword [esi + 0x30]
cmp edi, dword [esi + 0x2c]
jge 0x1000beef
push edi
mov ecx, esi
call fcn.1000bf60
test al, al
je 0x1000bee5
add edi, 0x13
mov eax, dword [esi + 0x2c]
add edi, 0x13
cmp edi, eax
jl 0x1000bed6
mov eax, dword [esp + 0x14]
mov ecx, 0x13
mov dword [0x10021f3c], eax
mov eax, dword [esi + 0x30]
add eax, 3
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
cdq
idiv ecx
lea edi, [esi + 0x14]
mov dword [esi + 0x30], edx
mov edx, dword [esi + 0x20]
mov dword [ebp], edx
call ebx
mov edx, dword [edi]
mov ecx, dword [esi + 0x18]
sub eax, edx
cmp eax, ecx
jae 0x1000bf3c
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
push 1
call ebp
call ebx
mov edx, dword [edi]
mov ecx, dword [esi + 0x18]
sub eax, edx
cmp eax, ecx
jb 0x1000bf2b
call ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov eax, dword [esi + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 4
Function at 0x1000c4f0
Capabilities:
Acquire debug privileges

Disassembly:
sub esp, 0x14
lea eax, [esp]
push eax
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x1000c550
lea ecx, [esp + 8]
push ecx
push str.SeDebugPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
mov eax, dword [esp]
push 0
push 0
lea edx, [esp + 0xc]
push 0x10
push edx
push 0
push eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
call dword [sym.imp.KERNEL32.dll_GetLastError]
neg eax
sbb eax, eax
inc eax
add esp, 0x14
ret
Function at 0x1000c780
Capabilities:
Query service configuration

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1001833b
push eax
mov dword fs:[0], esp
sub esp, 0x110
push ebx
push ebp
push esi
push 2
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebp, dword [esp + 0x12c]
push 0xf01ff
push ebp
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov esi, eax
test esi, esi
je 0x1000c91c
push 0x1000
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
lea eax, [esp + 0x14]
push eax
push 0x1000
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigA]
test eax, eax
je 0x1000c91c
mov esi, dword [ebx + 0xc]
push edi
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp + 0x1c7]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov edi, 2
cmp eax, edi
jne 0x1000c82e
mov dword [ebp + 0x2d0], edx
jmp 0x1000c876
cmp eax, 4
jne 0x1000c83b
mov dword [ebp + 0x2d0], edi
jmp 0x1000c876
test eax, eax
jne 0x1000c84b
mov dword [ebp + 0x2d0], 3
jmp 0x1000c876
cmp eax, 3
jne 0x1000c85c
mov dword [ebp + 0x2d0], 4
jmp 0x1000c876
cmp eax, edx
jne 0x1000c86c
mov dword [ebp + 0x2d0], 5
jmp 0x1000c876
mov dword [ebp + 0x2d0], 6
mov eax, dword [ebx + 0x1c]
mov esi, str.LocalSystem
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x1000c8a0
test cl, cl
je 0x1000c89c
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x1000c8a0
add eax, edi
add esi, edi
test cl, cl
jne 0x1000c87e
xor eax, eax
jmp 0x1000c8a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1000c8b1
mov dword [ebp + 0x2d4], edx
jmp 0x1000c8b7
mov dword [ebp + 0x2d4], edi
push reloc.WS2_32.dll_bind
lea ecx, [esp + 0x14]
call fcn.1000a250
push ebp
lea eax, [esp + 0x20]
push str.SYSTEMCurrentControlSetServices_s
push eax
mov dword [esp + 0x134], 0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x14]
call fcn.1000a350
add ebp, 0xc3
lea ecx, [esp + 0x10]
push ebp
push str.Description
call fcn.1000a460
lea ecx, [esp + 0x10]
mov dword [esp + 0x128], 0xffffffff
call fcn.1000a2f0
pop edi
mov ecx, dword [esp + 0x11c]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x11c
ret 4
Function at 0x1000c940
Capabilities:
Modify service

Disassembly:
push ebx
push esi
push edi
call fcn.1000c4f0
push 2
push 0
push 0
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov esi, eax
mov eax, dword [esp + 0x10]
push 0xf01ff
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
push esi
mov edi, eax
call dword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
mov esi, eax
test esi, esi
jne 0x1000c97e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esp + 0x14]
cmp eax, 1
jne 0x1000c98e
mov eax, 2
jmp 0x1000c9a7
cmp eax, 2
jne 0x1000c99a
mov eax, 4
jmp 0x1000c9a7
xor ecx, ecx
cmp eax, 4
sete cl
add ecx, 2
mov eax, ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push edi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigA]
test eax, eax
je 0x1000c9c7
mov bl, 1
push esi
call dword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
mov al, bl
pop esi
pop ebx
ret 8

Function at 0x1000c9e0
Capabilities:
Query service status
Start service

Disassembly:
sub esp, 0x1c
push ebx
push esi
push edi
call fcn.1000c4f0
push 2
push 0
push 0
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
mov eax, dword [esp + 0x2c]
push 0xf01ff
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
lea ecx, [esp + 0xc]
mov esi, eax
push ecx
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp dword [esp + 0x10], 1
jne 0x1000ca30
push 0
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
je 0x1000ca32
mov bl, 1
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push edi
call esi
pop edi
mov al, bl
pop esi
pop ebx
add esp, 0x1c
ret 4

Function at 0x1000ca50
Capabilities:
Query service status
Stop service

Disassembly:
sub esp, 0x1c
push ebx
push esi
call fcn.1000c4f0
push 2
push 0
push 0
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ecx, dword [esp + 0x28]
push 0xf01ff
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
lea edx, [esp + 8]
mov esi, eax
push edx
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp dword [esp + 0xc], 1
je 0x1000caa2
lea eax, [esp + 8]
push eax
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
mov al, 1
jne 0x1000caa4
mov al, bl
pop esi
pop ebx
add esp, 0x1c
ret 4
Function at 0x1000cab0
Capabilities:
Delete service
Query service status
Stop service

Disassembly:
sub esp, 0x1c
push ebx
push esi
push edi
call fcn.1000c4f0
push 2
push 0
push 0
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
mov eax, dword [esp + 0x2c]
push 0xf01ff
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
lea ecx, [esp + 0xc]
mov esi, eax
push ecx
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp dword [esp + 0x10], 1
je 0x1000caff
lea edx, [esp + 0xc]
push edx
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_ControlService]
push esi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
je 0x1000cb0c
mov bl, 1
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push edi
call esi
pop edi
mov al, bl
pop esi
pop ebx
add esp, 0x1c
ret 4
Function at 0x1000d1d0
Capabilities:
Terminate thread

Disassembly:
push 0xffffffffffffffff
push 0x10018438
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
mov dword [esp + 8], esi
mov dword [esi], 0x100195c8
mov eax, dword [esi + 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0
push eax
mov dword [esp + 0x1c], 0
call edi
mov ecx, dword [esi + 0x20]
push 0
push ecx
call dword [0x10021f4c]
mov edx, dword [esi + 0x24]
push 0
push edx
call edi
mov eax, dword [esi + 0x2c]
push 0x7d0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esi + 0x2c]
push 0
push ecx
call edi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1000d243
push eax
call dword [0x10021f40]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x1000d251
push eax
call dword [0x10021f40]
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1000d25f
push eax
call dword [0x10021f40]
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x1000d26d
push eax
call dword [0x10021f40]
mov edx, dword [esi + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call edi
mov eax, dword [esi + 0x14]
push eax
call edi
mov ecx, dword [esi + 0x18]
push ecx
call edi
mov edx, dword [esi + 0x1c]
push edx
call edi
mov eax, dword [esi + 0x20]
push eax
call edi
mov ecx, dword [esi + 0x24]
push ecx
call edi
mov edx, dword [esi + 0x2c]
push edx
call edi
mov eax, dword [esi + 0x28]
push eax
call edi
mov ecx, esi
mov dword [esp + 0x14], 0xffffffff
call fcn.10009620
mov ecx, dword [esp + 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret
Function at 0x1000da80
Capabilities:
Get cpu information
Query or enumerate registry value

Disassembly:
sub esp, 0x10
mov eax, 4
mov dword [esp + 4], eax
mov dword [esp + 8], eax
lea eax, [esp]
push eax
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
lea ecx, [esp + 4]
lea edx, [esp + 0xc]
push ecx
mov ecx, dword [esp + 4]
lea eax, [esp + 0xc]
push edx
push eax
push 0
push str.MHz
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0xc]
add esp, 0x10
ret

Function at 0x1000db80
Capabilities:
Get hostname

Disassembly:
sub esp, 0x400
xor eax, eax
push ebx
mov ebx, dword [esp + 0x410]
mov ecx, ebx
push esi
mov esi, dword [esp + 0x410]
mov edx, ecx
push edi
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [esp + 0xc]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x410]
lea ecx, [esp + 0xc]
push eax
push str.SYSTEMCurrentControlSetServices_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
push ebx
push 0
push esi
push 1
lea edx, [esp + 0x2c]
push str.Host
push edx
push reloc.WS2_32.dll_bind
call fcn.10009720
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x2c
push esi
call edi
test eax, eax
jne 0x1000dc04
push ebx
push esi
call dword [sym.imp.WS2_32.dll_gethostname]
push esi
call edi
pop edi
pop esi
pop ebx
add esp, 0x400
ret
Function at 0x1000dc20
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x418
push ebx
mov ebx, dword [esp + 0x428]
mov ecx, ebx
push esi
mov esi, dword [esp + 0x428]
mov edx, ecx
push edi
xor eax, eax
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x428]
lea ecx, [esp + 0x24]
push eax
push str.SYSTEMCurrentControlSetServices_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov al, 0x5c
lea edx, [esp + 0x20]
mov byte [esp + 0x14], al
mov byte [esp + 0x1c], al
push edx
push 0xf003f
lea eax, [esp + 0x14]
push 0
mov cl, 0x53
push eax
push reloc.WS2_32.dll_bind
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], 0x4f
mov byte [esp + 0x22], 0x46
mov byte [esp + 0x23], 0x54
mov byte [esp + 0x24], 0x57
mov byte [esp + 0x25], 0x41
mov byte [esp + 0x26], 0x52
mov byte [esp + 0x27], 0x45
mov byte [esp + 0x29], 0x33
mov byte [esp + 0x2a], 0x36
mov byte [esp + 0x2b], 0x30
mov byte [esp + 0x2c], cl
mov byte [esp + 0x2d], 0x61
mov byte [esp + 0x2e], 0x66
mov byte [esp + 0x2f], 0x65
mov byte [esp + 0x31], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push 0
push ebx
push 0
push esi
test eax, eax
push 1
push str.ConnectGroup
jne 0x1000dd01
push str.SYSTEMCurrentControlSetServices
jmp 0x1000dd06
lea ecx, [esp + 0x3c]
push ecx
push reloc.WS2_32.dll_bind
call fcn.10009720
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x20
push esi
call edi
test eax, eax
jne 0x1000dd2c
push 0x100212bc
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call edi
pop edi
pop esi
pop ebx
add esp, 0x418
ret
Function at 0x1000e490
Capabilities:
Create thread

Disassembly:
sub esp, 0x28
push esi
push edi
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 8]
push 0x7f04
rep stosd dword es:[edi], eax
mov eax, dword [0x10021f34]
xor edi, edi
push eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 0x1000e480
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esp + 0x1c], eax
mov eax, dword [0x10021f34]
push 0x7f8b
push eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 2
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 8]
mov dword [esp + 0x24], eax
push ecx
mov dword [esp + 0x30], str.WIN32_Application
call dword [sym.imp.USER32.dll_RegisterClassA]
mov esi, dword [esp + 0x38]
push 0x104
mov edx, dword [esi]
push edx
push 0x1002209c
call dword [sym.imp.MSVCRT.dll_strncpy]
mov eax, dword [esi]
push 0x104
push eax
push 0x1002209c
call dword [sym.imp.MSVCRT.dll_wcstombs]
add esp, 0x18
push 0x1000e430
push 0x1002209c
call dword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerA]
push 1
push edi
push 2
mov dword [0x10021f54], eax
call fcn.1000e3d0
push edi
push edi
push 4
call fcn.1000e3d0
add esp, 0x18
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push edi
push edi
push edi
push 0x1000f990
push edi
push edi
call esi
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push edi
push edi
push 0x1000f270
push edi
push edi
call esi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [0x10020c04], eax
push edi
push edi
call fcn.1000e160
add esp, 8
push 0x3e8
call esi
jmp 0x1000e591

Function at 0x1000e5b0
Capabilities:
Create directory

Disassembly:
sub esp, 0x104
push ebx
push esi
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xd]
mov byte [esp + 0xc], 0
mov ebx, dword [esp + 0x114]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
xor esi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x1000e62f
push ebp
mov ebp, dword [sym.imp.MSVCRT.dll_strncpy]
cmp byte [esi + ebx], 0x5c
jne 0x1000e61d
push esi
lea eax, [esp + 0x14]
push ebx
push eax
call ebp
lea ecx, [esp + 0x1c]
push 0
push ecx
call dword [sym.imp.MSVCRT.dll__access]
add esp, 0x14
cmp eax, 0xffffffff
jne 0x1000e61d
lea edx, [esp + 0x10]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
inc esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ecx
jb 0x1000e5ec
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x104
ret