joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10088ee0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1027e900
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x103440b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8c], ecx
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x28]
call fcn.1005e860
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x28]
call fcn.1008ac80
mov ecx, eax
call fcn.1008ab90
movzx edx, word [eax]
movzx eax, word [ebp + 0xc]
cmp edx, eax
jne 0x10088f76
lea ecx, [ebp - 0x28]
call fcn.1004f8f0
sub eax, 1
push eax
push 0
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x28]
call fcn.1008abc0
mov dword [ebp - 0x80], eax
mov edx, dword [ebp - 0x80]
push edx
lea ecx, [ebp - 0x28]
call fcn.1008ad50
lea ecx, [ebp - 0x58]
call fcn.10052eb0
push 0
movzx eax, word [ebp + 0xc]
push eax
lea ecx, [ebp - 0x28]
call fcn.1008ac10
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0xffffffff
jne 0x10088fa9
mov byte [ebp - 0x71], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.10052eb0
mov al, byte [ebp - 0x71]
jmp 0x100890a3
lea ecx, [ebp - 0x40]
call fcn.10052f00
mov byte [ebp - 4], 1
mov ecx, 1
test ecx, ecx
je 0x10089052
mov edx, dword [ebp - 0x78]
add edx, 1
push edx
movzx eax, word [ebp + 0xc]
push eax
lea ecx, [ebp - 0x28]
call fcn.1008ac10
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0xffffffff
jne 0x10088ffe
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x40]
call fcn.1008ace0
lea ecx, [ebp - 0x40]
call fcn.10052e30
push eax
call fcn.10261301
add esp, 4
jmp 0x10089052
mov edx, dword [ebp - 0x78]
push edx
push 0
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x28]
call fcn.1008abc0
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x40]
call fcn.1008ad50
lea ecx, [ebp - 0x70]
call fcn.10052eb0
lea ecx, [ebp - 0x40]
call fcn.10052e30
push eax
call fcn.10261301
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.1004f8f0
cmp dword [ebp - 0x78], eax
jb 0x1008904d
jmp 0x10089052
jmp 0x10088fb5
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.10261229
add esp, 8
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0xffffffff
je 0x10089078
mov dword [ebp - 0x7c], 1
jmp 0x1008907f
mov dword [ebp - 0x7c], 0
mov al, byte [ebp - 0x7c]
mov byte [ebp - 0x72], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.10052eb0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.10052eb0
mov al, byte [ebp - 0x72]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e5dee
mov esp, ebp
pop ebp
ret 8
Function at 0x100891d0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x103440b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x124], ecx
push 0x114
push 0
lea eax, [ebp - 0x118]
push eax
call fcn.10252510
add esp, 0xc
mov dword [ebp - 0x118], 0x114
lea ecx, [ebp - 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x114], 5
ja 0x1008922b
mov dword [ebp - 0x11c], 1
jmp 0x10089235
mov dword [ebp - 0x11c], 0
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e5dee
mov esp, ebp
pop ebp
ret

Function at 0x100892f0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1027e968
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x103440b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 0
push 0
lea ecx, [ebp + 8]
call fcn.10048870
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x14], 0
jne 0x1008936d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xb7
je 0x1008936d
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.1005ff30
mov eax, dword [ebp - 0x18]
jmp 0x100893a2
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp + 8]
push eax
call fcn.1005ffd0
push reloc.WS2_32.dll_htonl
mov ecx, dword [ebp - 0x1c]
call fcn.100897f0
mov dword [ebp - 0x20], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.1005ff30
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x10089460
Capabilities:
Create shortcut via ishelllink
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 0x10], ecx
lea eax, [ebp - 4]
push eax
push 0x102819a0
push 1
push 0
push 0x102819f0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jge 0x100894c5
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 4]
push ecx
push 0x102819a0
push 1
push 0
push 0x102819f0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jge 0x100894c5
push str.create_shortcut_interface_failed.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
jmp 0x100895c6
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ecx + 0x50]
call eax
cmp dword [ebp + 0x10], 0
je 0x100894f2
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [eax + 0x1c]
call edx
mov dword [ebp - 8], eax
cmp dword [ebp + 0x14], 0
je 0x1008950d
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [edx + 0x24]
call ecx
mov dword [ebp - 8], eax
cmp dword [ebp + 0x18], 0
je 0x10089528
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ecx + 0x2c]
call eax
mov dword [ebp - 8], eax
cmp dword [ebp + 0x1c], 0
je 0x10089545
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [eax + 0x44]
call edx
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push eax
push 0x102819c0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [edx]
call ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jge 0x10089568
xor eax, eax
jmp 0x100895c6
push 2
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ecx + 0x18]
call eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jge 0x10089589
xor eax, eax
jmp 0x100895c6
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [edx + 8]
call ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [eax + 8]
call edx
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
mov eax, dword [ebp + 0xc]
push eax
call fcn.1008af60
push reloc.WS2_32.dll_bind
mov ecx, dword [ebp - 0x10]
call fcn.100897f0
mov eax, 1
mov esp, ebp
pop ebp
ret 0x18
Function at 0x10089de0
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0x10]
call fcn.10088770
test eax, eax
je 0x10089e57
call dword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.WTSAPI32.dll_WTSQueryUserToken]
test eax, eax
jne 0x10089e46
push str.EXPLORER.EXE
lea edx, [ebp - 8]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.10089f60
test eax, eax
jne 0x10089e46
jmp 0x10089f1d
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_ImpersonateLoggedOnUser]
mov dword [ebp - 0x14], 1
push 0x208
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0x104
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
jne 0x10089eea
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x10089e97
jmp 0x10089f1d
mov eax, dword [ebp - 4]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0xc]
add ecx, 2
push ecx
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 4], eax
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
jne 0x10089eea
mov ecx, dword [ebp - 4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x10089f1d
push 0x10000000
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x10]
call fcn.1008a140
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor edx, edx
jne 0x10089e05
cmp dword [ebp - 4], 0
je 0x10089f36
mov eax, dword [ebp - 4]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 8], 0
je 0x10089f46
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x14], 0
je 0x10089f52
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov eax, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret 4
Function at 0x10089f60
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
mov eax, dword [0x103440b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x254], ecx
cmp dword [ebp + 0xc], 0
jne 0x10089f86
xor eax, eax
jmp 0x1008a12d
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x240], 0
push 0x22c
push 0
lea eax, [ebp - 0x230]
push eax
call fcn.10252510
add esp, 0xc
push 0
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0xffffffff
jne 0x10089fd0
xor eax, eax
jmp 0x1008a12d
mov dword [ebp - 0x230], 0x22c
lea ecx, [ebp - 0x230]
push ecx
mov edx, dword [ebp - 0x234]
push edx
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x1008a110
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x23c], eax
lea ecx, [ebp - 0x20c]
push ecx
call fcn.10261600
add esp, 4
mov dword [ebp - 0x238], eax
mov edx, dword [ebp - 0x238]
mov ax, word [edx]
mov word [ebp - 0x242], ax
mov ecx, dword [ebp - 0x23c]
cmp ax, word [ecx]
jne 0x1008a07a
cmp word [ebp - 0x242], 0
je 0x1008a06e
mov edx, dword [ebp - 0x238]
mov ax, word [edx + 2]
mov word [ebp - 0x244], ax
mov ecx, dword [ebp - 0x23c]
cmp ax, word [ecx + 2]
jne 0x1008a07a
add dword [ebp - 0x238], 4
add dword [ebp - 0x23c], 4
cmp word [ebp - 0x244], 0
jne 0x1008a014
mov dword [ebp - 0x248], 0
jmp 0x1008a085
sbb edx, edx
or edx, 1
mov dword [ebp - 0x248], edx
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x250], eax
cmp dword [ebp - 0x250], 0
jne 0x1008a0f2
mov ecx, dword [ebp - 0x228]
push ecx
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x24c], eax
mov edx, dword [ebp + 8]
push edx
push 0xf01ff
mov eax, dword [ebp - 0x24c]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp - 0x24c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x234]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x240]
jmp 0x1008a12d
lea eax, [ebp - 0x230]
push eax
mov ecx, dword [ebp - 0x234]
push ecx
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x10089ff6
jmp 0x1008a11a
mov dword [ebp - 0x240], 0
mov edx, dword [ebp - 0x234]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e5dee
mov esp, ebp
pop ebp
ret 8
Function at 0x1008a8a0
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1027ea99
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x103440b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x264]
call fcn.1005fff0
mov byte [ebp - 4], 1
mov dword [ebp - 0x270], 1
lea eax, [ebp + 8]
push eax
mov ecx, dword [ebp - 0x26c]
call fcn.100890c0
push 0x10302e1c
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x27c]
push edx
call fcn.1005fcb0
add esp, 0xc
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x278], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x278]
push ecx
lea ecx, [ebp - 0x264]
call fcn.1005ff10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x27c]
call fcn.1005ff30
lea edx, [ebp - 0x260]
push edx
lea ecx, [ebp - 0x264]
call fcn.10048870
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0xffffffff
jne 0x1008a9aa
mov dword [ebp - 0x280], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x264]
call fcn.1005ff30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.1005ff30
mov eax, dword [ebp - 0x280]
jmp 0x1008aac7
mov eax, 1
test eax, eax
je 0x1008aa8a
mov ecx, 2
imul edx, ecx, 0
movzx eax, word [ebp + edx - 0x234]
cmp eax, 0x2e
je 0x1008aa4a
mov ecx, dword [ebp - 0x260]
and ecx, 0x10
je 0x1008aa4a
lea edx, [ebp - 0x234]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x28c]
push ecx
call fcn.1005fcb0
add esp, 0xc
mov dword [ebp - 0x284], eax
mov edx, dword [ebp - 0x284]
mov dword [ebp - 0x288], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x288]
push eax
lea ecx, [ebp - 0x264]
call fcn.1005ff10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28c]
call fcn.1005ff30
push ecx
mov ecx, esp
mov dword [ebp - 0x294], esp
lea edx, [ebp - 0x264]
push edx
call fcn.1005ffd0
mov ecx, dword [ebp - 0x26c]
call fcn.1008a8a0
jmp 0x1008aa6b
mov eax, 2
imul ecx, eax, 0
movzx edx, word [ebp + ecx - 0x234]
cmp edx, 0x2e
je 0x1008aa6b
mov dword [ebp - 0x270], 0
jmp 0x1008aa8a
lea eax, [ebp - 0x260]
push eax
mov ecx, dword [ebp - 0x268]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1008aa85
jmp 0x1008aa8a
jmp 0x1008a9aa
mov edx, dword [ebp - 0x268]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x290], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x264]
call fcn.1005ff30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.1005ff30
mov eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e5dee
mov esp, ebp
pop ebp
ret 4
Function at 0x1008aaf0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x103440b4]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x114
push 0
lea eax, [ebp - 0x118]
push eax
call fcn.10252510
add esp, 0xc
mov dword [ebp - 0x118], 0x114
lea ecx, [ebp - 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x114], 6
jb 0x1008ab45
mov dword [ebp - 0x11c], str.D:_A__GA___WD__A__GA___AN_S:_ML__NW___ME_
jmp 0x1008ab4f
mov dword [ebp - 0x11c], str.D:_A__GA___WD__A__GA___AN_
push 0
lea edx, [ebp - 0x120]
push edx
push 1
mov eax, dword [ebp - 0x11c]
push eax
call dword [sym.imp.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW]
test eax, eax
jne 0x1008ab6f
xor eax, eax
jmp 0x1008ab75
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e5dee
mov esp, ebp
pop ebp
ret
Function at 0x1008c540
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
and byte [esi + 0xc], 9
mov al, byte [esi + 0xc]
test al, 1
je 0x1008c57d
test al, 8
jne 0x1008c57d
push 0xfffffffffffffff0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x10000000
je 0x1008c57d
mov cl, byte [esi + 0xc]
or cl, 4
mov byte [esi + 0xc], cl
test eax, 0x21000000
jne 0x1008c57d
or cl, 2
mov byte [esi + 0xc], cl
test byte [esi + 0xc], 2
je 0x1008c59a
push 8
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp + 8]
mov ecx, esi
call sym.nsDui.dll_protected:_void___thiscall_CWndShadow::Update_struct_HWND____
jmp 0x1008c5a5
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
pop esi
pop ebp
ret 4

Function at 0x1008d33f
Capabilities:
Log keystrokes via polling

Disassembly:
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
xor esi, esi
push 0x11
call edi
push 8
pop ecx
test ax, ax
push 2
cmovs esi, ecx
call edi
test ax, ax
jns 0x1008d362
or esi, 2
push 1
call edi
test ax, ax
jns 0x1008d36e
or esi, 1
push 0x10
call edi
test ax, ax
jns 0x1008d37a
or esi, 4
push 0x12
call edi
test ax, ax
jns 0x1008d386
or esi, 0x20
pop edi
mov eax, esi
pop esi
ret

Function at 0x1008db6e
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x103440b4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x210]
push 0x20a
push 0
push eax
call fcn.10252510
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0xffffffffffffffff
lea eax, [ebp - 0x210]
mov ecx, esi
push eax
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_wchar_t_const___int_
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.100e5dee
leave
ret
Function at 0x1008e448
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov edi, dword [ebp + 8]
cmp dword [esi + 0x2d4], ebx
jle 0x1008e491
mov eax, dword [esi + 0x2d0]
lea edx, [esp + 0x13]
mov byte [esp + 0x13], 0
push edx
push dword [ebp + 0x10]
mov ecx, dword [eax + ebx*4]
push dword [ebp + 0xc]
push edi
mov eax, dword [ecx]
call dword [eax]
cmp byte [esp + 0x13], 0
jne 0x1008e502
inc ebx
cmp ebx, dword [esi + 0x2d4]
jl 0x1008e463
sub edi, 0x100
je 0x1008e57f
sub edi, 4
je 0x1008e506
dec edi
sub edi, 1
jne 0x1008e574
cmp dword [esi + 0xe0], edi
je 0x1008e574
push dword [ebp + 0xc]
and dword [esp + 0x18], edi
call fcn.102619d5
pop ecx
mov ecx, dword [esi + 0xe0]
lea edx, [esp + 0x14]
push reloc.WS2_32.dll_select
mov word [esp + 0x18], ax
push edx
mov eax, dword [ecx]
push sym.nsDui.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromShortcut_class_DuiLib::CControlUI___void__
call dword [eax + 0x110]
mov esi, eax
test esi, esi
je 0x1008e574
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x104]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x20]
mov al, 1
jmp 0x1008e576
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x1008e574
and dword [esp + 0x20], 0
xorps xmm0, xmm0
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov eax, dword [ebp + 0xc]
mov word [esp + 0x2c], ax
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xf8]
movlpd qword [esp + 0x2e], xmm0
mov word [esp + 0x36], cx
mov dword [esp + 0x18], 6
mov dword [esp + 0x28], eax
call fcn.1008d33f
mov word [esp + 0x2e], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0xe4]
lea edx, [esp + 0x18]
mov dword [esp + 0x20], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x11c]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp + 0xc], 9
jne 0x1008e574
mov ecx, dword [esi + 0xe4]
test ecx, ecx
je 0x1008e5d8
mov eax, dword [ecx]
call dword [eax + 0xdc]
test al, al
je 0x1008e5d8
mov ecx, dword [esi + 0xe4]
mov eax, dword [ecx]
call dword [eax + 0xe8]
test al, al
je 0x1008e5d8
mov ecx, dword [esi + 0xe4]
push str.RichEdit
mov eax, dword [ecx]
call dword [eax + 0x10]
push eax
call fcn.10251659
pop ecx
pop ecx
test eax, eax
je 0x1008e5d8
mov eax, dword [esi + 0xe4]
cmp byte [eax + 0x699], 0
jne 0x1008e574
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
mov ecx, esi
setns al
movzx eax, al
push eax
call sym.nsDui.dll_public:_bool___thiscall_DuiLib::CPaintManagerUI::SetNextTabControl_bool_
jmp 0x1008e502
Function at 0x10090c20
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
push esi
push edi
mov edi, ecx
call dword [sym.imp.USER32.dll_GetFocus]
cmp byte [ebp + 0xc], 0
mov esi, dword [ebp + 8]
je 0x10090c5e
mov ecx, dword [edi + 0x84]
cmp eax, ecx
je 0x10090c5e
cmp esi, dword [edi + 0xe4]
je 0x10090c5e
cmp byte [edi + 0xdc], 0
jne 0x10090c5e
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [edi + 0xe4]
cmp esi, eax
je 0x10090d5a
test eax, eax
je 0x10090cce
xorps xmm0, xmm0
mov dword [esp + 8], 0x14
movlpd qword [esp + 0x10], xmm0
movlpd qword [esp + 0x18], xmm0
movlpd qword [esp + 0x20], xmm0
mov dword [esp + 0xc], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0xe4]
lea edx, [esp + 8]
mov dword [esp + 0x10], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x11c]
push 1
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push str.killfocus
push dword [edi + 0xe4]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SendNotify_class_DuiLib::CControlUI___wchar_t_const___unsigned_int__long_int__bool__bool_
and dword [edi + 0xe4], 0
test esi, esi
je 0x10090d5a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
cmp eax, edi
jne 0x10090d5a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xdc]
test al, al
je 0x10090d5a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xe8]
test al, al
je 0x10090d5a
xorps xmm0, xmm0
mov dword [edi + 0xe4], esi
movlpd qword [esp + 0x10], xmm0
movlpd qword [esp + 0x18], xmm0
movlpd qword [esp + 0x20], xmm0
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0xe4]
lea edx, [esp + 8]
mov dword [esp + 0x10], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x11c]
push 1
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push str.setfocus
push dword [edi + 0xe4]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SendNotify_class_DuiLib::CControlUI___wchar_t_const___unsigned_int__long_int__bool__bool_
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8

Function at 0x100960e1
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10096113
xor eax, eax
inc eax
cmp byte [ebp + 0xc], 0
push 4
pop edx
cmovne edx, eax
xor eax, eax
cmp byte [ebp + 8], al
cmovne eax, edx
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
pop esi
pop ebp
ret 8