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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 8], 0
and dword [ebp - 0x10], 0
push ebx
push esi
push edi
mov esi, eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 8]
push ecx
or ebx, 0xffffffff
push eax
lea edi, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
call fcn.004aa617
test al, al
jne 0x4aab7e
cmp dword [ebp - 0x14], ebx
je 0x4aacd4
cmp dword [ebp - 0x14], 0
je 0x4aacd4
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4aacd4
mov eax, dword [esi + 8]
xor edi, edi
push edi
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov dword [ebp - 8], eax
cmp eax, edi
je 0x4aaba8
cmp eax, 0xb7
je 0x4aaba8
cmp dword [ebp - 0x14], ebx
je 0x4aacd4
cmp dword [ebp - 0x14], edi
jmp 0x4aab6a
mov esi, dword [esi + 0xc]
lea eax, [ebp - 8]
push eax
push esi
lea edi, [ebp - 4]
mov dword [ebp - 4], ebx
call fcn.004aa6ff
test al, al
jne 0x4aabe7
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x4aabd5
cmp dword [ebp - 4], 0
je 0x4aabd5
push dword [ebp - 4]
call esi
cmp dword [ebp - 0x14], ebx
je 0x4aacd4
cmp dword [ebp - 0x14], 0
jmp 0x4aaccd
lea eax, [ebp - 8]
push eax
lea esi, [ebp - 0x14]
call fcn.004aa68e
mov esi, 0x400
cmp eax, esi
ja 0x4aabbf
push 0x590f51
xor edi, edi
push esi
mov dword [ebp - 0x18], edi
call fcn.004f5946
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
cmp eax, edi
je 0x4aaca8
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x14]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xc], edi
call fcn.004aa6ce
test al, al
je 0x4aaca8
mov eax, dword [0x59363c]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], edi
call fcn.00409d88
pop ecx
test al, al
je 0x4aaca0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x24]
lea edx, [ebp - 4]
call fcn.004aa776
test al, al
je 0x4aaca0
lea esi, [ebp - 0x24]
call fcn.00409b82
lea esi, [ebp - 0x1c]
call fcn.00409b82
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x4aac8d
cmp dword [ebp - 4], edi
je 0x4aac8d
push dword [ebp - 4]
call esi
cmp dword [ebp - 0x14], ebx
je 0x4aac9c
cmp dword [ebp - 0x14], edi
je 0x4aac9c
push dword [ebp - 0x14]
call esi
mov al, 1
jmp 0x4aacd6
lea esi, [ebp - 0x24]
call fcn.00409b82
lea esi, [ebp - 0x1c]
call fcn.00409b82
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x4aacc5
cmp dword [ebp - 4], edi
je 0x4aacc5
push dword [ebp - 4]
call esi
cmp dword [ebp - 0x14], ebx
je 0x4aacd4
cmp dword [ebp - 0x14], edi
je 0x4aacd4
push dword [ebp - 0x14]
call esi
xor al, al
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4aacdb
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 8], 0
and dword [ebp - 0x10], 0
push ebx
push esi
push edi
mov esi, eax
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 8]
push ecx
or ebx, 0xffffffff
push eax
lea edi, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
call fcn.004aa617
test al, al
jne 0x4aad29
cmp dword [ebp - 0x14], ebx
je 0x4aae6e
cmp dword [ebp - 0x14], 0
je 0x4aae6e
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4aae6e
mov eax, dword [esi]
xor edi, edi
push edi
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov dword [ebp - 8], eax
cmp eax, edi
je 0x4aad52
cmp eax, 0xb7
je 0x4aad52
cmp dword [ebp - 0x14], ebx
je 0x4aae6e
cmp dword [ebp - 0x14], edi
jmp 0x4aad15
mov esi, dword [esi + 4]
lea eax, [ebp - 8]
push eax
push esi
lea edi, [ebp - 4]
mov dword [ebp - 4], ebx
call fcn.004aa6ff
test al, al
jne 0x4aad91
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x4aad7f
cmp dword [ebp - 4], 0
je 0x4aad7f
push dword [ebp - 4]
call esi
cmp dword [ebp - 0x14], ebx
je 0x4aae6e
cmp dword [ebp - 0x14], 0
jmp 0x4aae67
push 0x590f51
mov esi, 0x800
xor edi, edi
push esi
mov dword [ebp - 0x18], edi
call fcn.004f5946
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
cmp eax, edi
je 0x4aae42
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x14]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xc], edi
call fcn.004aa6ce
test al, al
je 0x4aae42
mov eax, dword [0x59363c]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], edi
call fcn.00409e1b
pop ecx
test al, al
je 0x4aae3a
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x24]
lea edx, [ebp - 4]
call fcn.004aa776
test al, al
je 0x4aae3a
lea esi, [ebp - 0x24]
call fcn.00409b82
lea esi, [ebp - 0x1c]
call fcn.00409b82
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x4aae27
cmp dword [ebp - 4], edi
je 0x4aae27
push dword [ebp - 4]
call esi
cmp dword [ebp - 0x14], ebx
je 0x4aae36
cmp dword [ebp - 0x14], edi
je 0x4aae36
push dword [ebp - 0x14]
call esi
mov al, 1
jmp 0x4aae70
lea esi, [ebp - 0x24]
call fcn.00409b82
lea esi, [ebp - 0x1c]
call fcn.00409b82
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x4aae5f
cmp dword [ebp - 4], edi
je 0x4aae5f
push dword [ebp - 4]
call esi
cmp dword [ebp - 0x14], ebx
je 0x4aae6e
cmp dword [ebp - 0x14], edi
je 0x4aae6e
push dword [ebp - 0x14]
call esi
xor al, al
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4aae75
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
lea esi, [ebx + 0x10]
mov eax, dword [esi]
push edi
xor edi, edi
cmp eax, 0xffffffff
je 0x4aae9f
cmp eax, edi
je 0x4aae9f
cmp dword [esi + 4], edi
je 0x4aae9f
mov eax, esi
call fcn.0041127c
test al, al
jne 0x4aaee8
lea eax, [ebp + 8]
push eax
push edi
push ebx
push 0x4ab07d
push edi
push edi
mov dword [ebp + 8], edi
call fcn.004f5629
add esp, 0x18
cmp eax, edi
jne 0x4aaebf
xor al, al
jmp 0x4aaeea
mov edi, dword [ebp + 8]
lea edx, [ebp - 4]
mov ecx, eax
cmp edx, esi
je 0x4aaecf
mov ecx, dword [esi]
mov dword [esi], eax
cmp ecx, 0xffffffff
je 0x4aaedf
test ecx, ecx
je 0x4aaedf
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add ebx, 0x1c
mov dword [esi + 4], edi
mov dword [esi + 8], ebx
mov al, 1
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x4aafd8
Capabilities:
Check if file exists

Disassembly:
push 8
mov eax, 0x528fe9
call fcn.004fc6ce
mov eax, dword [0x590e04]
mov ecx, 0x590e04
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
and dword [ebp - 4], 0
lea eax, [ebp - 0x10]
push eax
push 0x53a3d8
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Pathsopera.exe
push reloc.OLEAUT32.dll_SysReAllocString
xor ecx, ecx
call fcn.0042a3a0
mov esi, dword [ebp - 0x10]
add esp, 0x10
test al, al
jne 0x4ab031
xor bl, bl
lea eax, [esi - 0x10]
call fcn.00405521
mov al, bl
call fcn.004fc7a6
ret
push 0x22
pop eax
cmp ax, word [esi]
jne 0x4ab069
mov eax, dword [esi - 0xc]
cmp eax, 3
jl 0x4ab069
lea edi, [eax - 2]
lea eax, [esi + 2]
push eax
lea eax, [ebp - 0x14]
call fcn.0041ae46
mov edi, dword [ebp - 0x14]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
lea eax, [edi - 0x10]
setne bl
call fcn.00405521
jmp 0x4ab075
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne bl
test bl, bl
je 0x4ab01f
mov bl, 1
jmp 0x4ab021
Function at 0x4abd8f
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x585698]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, edx
mov eax, dword [edi + 0x60]
xor ebx, ebx
mov dword [ebp - 0x21c], ecx
cmp eax, ebx
je 0x4abdbe
push ecx
call eax
jmp 0x4abea0
cmp dword [edi + 0x5c], ebx
jne 0x4abe08
xor eax, eax
push 0x206
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push ebx
push eax
call fcn.004f18b0
add esp, 0xc
push str.safemon360hipsPopWnd.dll
push 0x593e48
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x210]
push eax
call fcn.00449373
pop ecx
mov dword [edi + 0x5c], eax
mov eax, dword [edi + 0x5c]
cmp eax, ebx
je 0x4abe9e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateTrayClient
push eax
call esi
push str.SetStatSender
push dword [edi + 0x5c]
mov dword [ebp - 0x214], eax
call esi
cmp eax, ebx
je 0x4abe3c
push 0x4ac93d
call eax
push str.SetSpecialLogSender2
push dword [edi + 0x5c]
call esi
cmp eax, ebx
je 0x4abe51
push 0x4abb72
call eax
cmp dword [ebp - 0x214], ebx
je 0x4abeb6
cmp dword [edi + 0x70], ebx
jne 0x4abeb6
lea eax, [ebp - 0x218]
push eax
push 1
mov dword [ebp - 0x218], ebx
call dword [ebp - 0x214]
cmp eax, ebx
je 0x4abeb6
mov edx, dword [eax]
lea ecx, [ebp - 0x214]
push ecx
push dword [edi + 0x6c]
mov ecx, eax
mov dword [ebp - 0x214], ebx
call dword [edx + 8]
test eax, eax
jne 0x4abeaf
push dword [edi + 0x5c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [edi + 0x5c], ebx
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f189b
leave
ret
mov dword [edi + 0x70], 1
push str.Hips_SetProperty
push dword [edi + 0x5c]
call esi
mov dword [edi + 0x68], eax
cmp eax, ebx
je 0x4abefc
push ebx
push ecx
call int.0040b2f7
add esp, 4
call fcn.0047795e
dec eax
neg eax
sbb al, al
inc al
mov byte [ebp - 0x218], al
mov eax, 0x593e48
call fcn.0044a435
movzx eax, al
push eax
push dword [ebp - 0x218]
call fcn.004ac1dc
push str.Hips_CreateNotifyWnd
push dword [edi + 0x5c]
call esi
mov dword [edi + 0x60], eax
cmp eax, ebx
je 0x4abe9e
push dword [ebp - 0x21c]
jmp 0x4abdb7
Function at 0x4ad2c6
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
lea esi, [edi + 0x30]
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4ad316
lea ebx, [edi + 0x2c]
cmp dword [0x58e728], eax
jne 0x4ad2ee
and dword [0x58e728], eax
lea eax, [ebx + 0x20]
push eax
push 0x58e6f8
call fcn.0042f932
movzx eax, ax
push eax
xor eax, eax
push eax
push 0x88
push 0x8600c200
push eax
push eax
push eax
push ebx
call fcn.0047a462
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4ad38a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
push edi
call fcn.004ad447
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 0x24]
lea eax, [ebp - 0x20]
push eax
push dword [esi]
call fcn.0047563f
pop ecx
pop ecx
lea eax, [ebp - 0x10]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0xc]
mov dword [ebp - 8], eax
sub eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
push 0x10
sub eax, edx
push 0xffffffffffffffff
mov dword [ebp - 0xc], eax
push esi
lea eax, [ebp - 0x10]
call fcn.0044d155
push 1
push dword [esi]
call dword [sym.imp.USER32.dll_ShowWindow]
pop esi
pop ebx
leave
ret

Function at 0x4addd9
Capabilities:
Create thread

Disassembly:
push 8
mov eax, 0x52631e
call fcn.004fc6ce
push 0x593250
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
xor ebx, ebx
push ebx
push ebx
push 1
push ebx
call esi
push ebx
push ebx
push ebx
push ebx
mov dword [0x5882d8], eax
call esi
push 0x590f51
push 0x20
mov dword [0x58809c], eax
call fcn.004f5c13
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], ebx
cmp eax, ebx
je 0x4ade30
mov esi, eax
call fcn.0041c00f
jmp 0x4ade32
xor eax, eax
mov dword [0x5937c4], eax
lea eax, [ebp - 0x10]
push eax
push 4
push ebx
push 0x4ad9cb
push ebx
push ebx
mov dword [ebp - 0x10], ebx
call fcn.004f5629
add esp, 0x18
mov dword [0x5882dc], eax
cmp eax, 0xffffffff
je 0x4ade7e
cmp dword [0x5882d8], 0xffffffff
je 0x4ade7e
cmp dword [0x58809c], 0xffffffff
je 0x4ade7e
xor eax, eax
mov byte [0x59378e], 1
mov byte [0x59378d], bl
inc eax
jmp 0x4ade80
xor eax, eax
call fcn.004fc7a6
ret

Function at 0x4ae386
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
and dword [ebp - 4], 0
push 4
pop eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
push str.Start
push 0x555ba8
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
xor eax, eax
cmp dword [ebp - 4], 2
sete al
leave
ret
Function at 0x4ae9fa
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
call fcn.00475c98
test al, al
jne 0x4aea0d
xor al, al
jmp 0x4aea6c
call fcn.00475cee
test al, al
je 0x4aea1d
call fcn.004111aa
jmp 0x4aea09
push 0x590f51
push 0x48
call fcn.004f5c13
mov esi, eax
xor edi, edi
pop ecx
pop ecx
cmp esi, edi
je 0x4aea09
push 0x48
push edi
push esi
call fcn.004f18b0
mov eax, dword [ebp + 8]
add esp, 0xc
push edi
push edi
push esi
push 0x4ae90d
push edi
push edi
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], 0x1689
mov dword [esi + 0x10], 2
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
pop edi
pop esi
pop ecx
pop ebp
ret

Function at 0x4aea71
Capabilities:
Accept command line arguments

Disassembly:
push 0x18
push 0x5671b8
call fcn.004fc0b0
call fcn.00475cee
test al, al
je 0x4aebd7
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0x555ca4
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x4aebd7
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
lea eax, [ebp - 0x1c]
push eax
push ebx
push 0x54a100
push ebx
push str.ncalrpc
push ebx
call dword [sym.imp.RPCRT4.dll_RpcStringBindingComposeW]
cmp eax, ebx
jne 0x4aebd7
cmp dword [ebp - 0x1c], ebx
je 0x4aebd7
push 0x593624
push dword [ebp - 0x1c]
call dword [sym.imp.RPCRT4.dll_RpcBindingFromStringBindingW]
test eax, eax
jne 0x4aebd7
push ebx
push str.Q360SafeMonClass
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
cmp edi, ebx
je 0x4aebd7
push 0x48
call fcn.004f1aab
mov esi, eax
mov dword [ebp - 0x28], esi
push 0x48
push ebx
push esi
call fcn.004f18b0
add esp, 0x10
mov dword [esi + 0xc], edi
mov edi, str.Q360
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 0x14], 0x1689
mov dword [esi + 0x10], 2
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x24], eax
push 2
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebx
push 0x40
push ebx
push 3
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x20]
push eax
push 0x53f8a0
push 4
push ebx
push 0x53f880
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x4aeb9b
push edi
push str.microsoft.windows.immersivecontrolpanel
push str.windows.immersivecontrolpanel_10.0.1.1000_neutral_neutral_cw5n1h2txyewy
push dword [ebp - 0x24]
call fcn.004b5570
add esp, 0x10
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xfffffffe
jmp 0x4aebb5
push esi
call fcn.004f1890
pop ecx
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.RPCRT4.dll_RpcStringFreeW]
push 0x593624
call dword [sym.imp.RPCRT4.dll_RpcBindingFree]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov al, 1
call fcn.004fc0f5
ret
Function at 0x4aec06
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51ebc4
mov eax, dword fs:[0]
push eax
mov eax, 0x1008
call fcn.0050ead0
push ebx
push esi
push edi
mov eax, dword [0x585698]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
and dword [ebp - 4], 0
push 0x555cd8
xor ecx, ecx
lea esi, [ebp + 8]
call fcn.004299ad
or esi, 0xffffffff
cmp eax, esi
jne 0x4aec6e
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405521
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4
lea eax, [ebp - 0x10]
push eax
push 0x1000
lea eax, [ebp - 0x1014]
push eax
call sub.PSAPI.DLL_EnumProcesses
test eax, eax
je 0x4aec4f
mov edi, dword [ebp - 0x10]
shr edi, 2
xor esi, esi
test edi, edi
jbe 0x4aecbe
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x14], esp
mov ebx, esp
call fcn.00404942
add eax, 0x10
mov dword [ebx], eax
push dword [ebp + esi*4 - 0x1014]
call fcn.004aed7f
test eax, eax
jne 0x4aecc3
inc esi
cmp esi, edi
jb 0x4aec93
or esi, 0xffffffff
jmp 0x4aec4f
mov esi, dword [ebp + esi*4 - 0x1014]
jmp 0x4aec4f

Function at 0x4aeccc
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x585698]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0
push 2
or edi, 0xffffffff
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, edi
je 0x4aed62
push 0x228
lea eax, [ebp - 0x22c]
push 0
push eax
call fcn.004f18b0
add esp, 0xc
lea eax, [ebp - 0x230]
push eax
push esi
mov dword [ebp - 0x230], 0x22c
call sub.KERNEL32.dll_Process32FirstW
jmp 0x4aed4f
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x228]
je 0x4aed42
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 8]
call fcn.004f52b9
pop ecx
pop ecx
test eax, eax
je 0x4aed55
lea eax, [ebp - 0x230]
push eax
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x4aed22
jmp 0x4aed5b
mov edi, dword [ebp - 0x228]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405521
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.004f189b
leave
ret 8
Function at 0x4aed7f
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1214
call fcn.0050ead0
mov eax, dword [0x585698]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push dword [ebp + 8]
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
jne 0x4aedcd
xor esi, esi
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
call fcn.00405521
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
xor ecx, ebp
pop esi
call fcn.004f189b
leave
ret 8
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push eax
call fcn.004f18b0
add esp, 0xc
lea eax, [ebp - 0x214]
push eax
push 0x1000
lea eax, [ebp - 0x1214]
push eax
push edi
call sub.PSAPI.DLL_EnumProcessModules
test eax, eax
je 0x4aee6c
xor esi, esi
test dword [ebp - 0x214], 0xfffffffc
jbe 0x4aee6c
push 0x20a
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.004f18b0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x210]
push eax
push dword [ebp + esi*4 - 0x1214]
push edi
call sub.PSAPI.DLL_GetModuleFileNameExW
test eax, eax
je 0x4aee5e
lea eax, [ebp - 0x210]
push eax
push dword [ebp + 0xc]
call fcn.004f52b9
pop ecx
pop ecx
test eax, eax
je 0x4aee78
mov eax, dword [ebp - 0x214]
inc esi
shr eax, 2
cmp esi, eax
jb 0x4aee16
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4aedae
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
inc esi
jmp 0x4aedb0

Function at 0x4aef0c
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventW]
push edi
xor edi, edi
cmp dword [esi + 4], edi
jne 0x4aef2b
push str.GlobalSystem_ShutDown_Continue
push edi
push edi
push edi
call ebx
mov dword [esi + 4], eax
cmp dword [esi + 8], edi
jne 0x4aef3d
push str.GlobalSystem_ShutDown_Cancel
push edi
push edi
push edi
call ebx
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0x406
cmp dword [esi + 0xc], edi
jne 0x4aef6a
lea eax, [ebp + 8]
push eax
push edi
push esi
push 0x4aeef9
push edi
push edi
mov dword [ebp + 8], edi
call fcn.004f5629
add esp, 0x18
mov dword [esi + 0xc], eax
xor eax, eax
pop edi
inc eax
pop ebx
pop ebp
ret 4
Function at 0x4aef73
Capabilities:
Check if file exists
Get common file path

Disassembly:
push 0x21c
mov eax, 0x52c0bb
call fcn.004fc737
mov esi, ecx
mov eax, dword [esi + 0xc]
xor ebx, ebx
cmp eax, ebx
je 0x4aefaf
push 1
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4aefaf
xor eax, eax
mov dword [0x5937cc], 2
inc eax
jmp 0x4af12b
push str.GlobalSystem_ShutDown_Notify
push ebx
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov dword [esi], eax
cmp eax, ebx
jne 0x4aef9d
call fcn.004aee87
test eax, eax
je 0x4aefec
push esi
call fcn.004af131
cmp eax, ebx
je 0x4af12b
mov dword [0x5937cc], 2
jmp 0x4af12b
xor eax, eax
push 0x206
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push ebx
push eax
call fcn.004f18b0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0x40
lea eax, [ebp - 0x21c]
push str.System32winlogon.exe
push eax
call fcn.004fba5b
mov dword [ebp - method.CProcessHandle.virtual_0], vtable.CProcessHandle.0
add esp, 8
mov dword [ebp - 4], ebx
mov eax, esp
mov dword [ebp - 0x220], esp
lea ecx, [ebp - 0x21c]
push ecx
push eax
call fcn.004056ee
call fcn.004aec06
mov esi, eax
cmp esi, 0xffffffff
je 0x4af064
cmp esi, ebx
jne 0x4af091
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x220], esp
push str.winlogon.exe
push eax
call fcn.004056ee
call fcn.004aeccc
mov esi, eax
cmp esi, 0xffffffff
je 0x4af129
cmp esi, ebx
je 0x4af129
lea eax, [ebp - 0x220]
call fcn.004059e3
lea ecx, [ebp - 0x224]
push str.LeakFixHelper.dll
push ecx
mov edi, eax
mov byte [ebp - 4], 1
call fcn.00405a46
mov eax, dword [eax]
push 0x103
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.004f5c52
mov eax, dword [ebp - 0x224]
add esp, 0x14
add eax, 0xfffffff0
call fcn.00405521
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
call fcn.00405521
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4af129
lea eax, [ebp - 0x21c]
push eax
call fcn.0040595b
pop ecx
test eax, eax
je 0x4af129
call fcn.004af354
test eax, eax
je 0x4af129
push esi
lea eax, [ebp - 0x21c]
push eax
call fcn.004af899
test eax, eax
jne 0x4aef9d
xor eax, eax
call fcn.004fc7ba
ret