joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40a6c4
Capabilities:
Get graphical window text

Disassembly:
push edi
push dword [esp + 8]
push dword [0x413bb8]
call fcn.0040e9ba
mov edi, eax
test edi, edi
je 0x40a726
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x40a6ed
push dword [esp + 0xc]
push edi
call eax
jmp 0x40a726
push ebx
push esi
push dword [edi]
call dword [sym.imp.USER32.DLL_GetWindowTextLengthA]
push dword [esp + 0x14]
mov esi, eax
push esi
call fcn.0040f6e0
mov ebx, eax
lea eax, [esi + 1]
push eax
push ebx
mov byte [ebx], 0
push dword [edi]
call dword [sym.imp.USER32.DLL_GetWindowTextA]
push ebx
call sub.MSVCRT.dll_strlen
pop ecx
sub esi, eax
push esi
call fcn.0040f800
pop esi
pop ebx
pop edi
ret 8

Function at 0x40aa4f
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x130
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [ebp - 0x1c]
push eax
mov ebx, 0xc8
mov dword [ebp - 0x1c], 0x94
call edi
test eax, eax
je 0x40ab38
mov eax, dword [ebp - 0xc]
dec eax
je 0x40ab1b
dec eax
jne 0x40ab38
lea eax, [ebp - 0xb8]
push eax
xor esi, esi
mov dword [ebp - 0xb8], 0x9c
call edi
test eax, eax
je 0x40aaae
cmp byte [ebp - 0x1e], 1
jne 0x40aaae
inc esi
mov eax, dword [ebp - 0x18]
sub eax, 3
je 0x40ab17
dec eax
je 0x40ab13
dec eax
je 0x40aaf1
dec eax
jne 0x40ab38
mov eax, dword [ebp - 0x14]
sub eax, 0
je 0x40aae5
dec eax
je 0x40aad9
dec eax
jne 0x40ab38
neg esi
sbb esi, esi
and esi, 0xfffffffb
lea ebx, [esi + 0x5f]
jmp 0x40ab38
neg esi
sbb esi, esi
and esi, 0xfffffffb
lea ebx, [esi + 0x55]
jmp 0x40ab38
neg esi
sbb esi, esi
and esi, 0xfffffffb
lea ebx, [esi + 0x4b]
jmp 0x40ab38
mov eax, dword [ebp - 0x14]
sub eax, 0
je 0x40ab0f
dec eax
je 0x40ab0b
dec eax
jne 0x40ab38
neg esi
sbb esi, esi
and esi, 0xfffffffb
lea ebx, [esi + 0x41]
jmp 0x40ab38
push 0x3c
jmp 0x40ab37
push 0x32
jmp 0x40ab37
push 0x14
jmp 0x40ab37
push 5
jmp 0x40ab37
cmp dword [ebp - 0x14], 0
je 0x40ab35
cmp dword [ebp - 0x14], 0xa
je 0x40ab31
cmp dword [ebp - 0x14], 0x5a
jne 0x40ab38
push 0x28
jmp 0x40ab37
push 0x1e
jmp 0x40ab37
push 0xa
pop ebx
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x78
leave
ret
Function at 0x40ba80
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xc
push ebx
push esi
push edi
call dword [sym.imp.USER32.DLL_GetFocus]
mov esi, dword [sym.imp.USER32.DLL_GetKeyState]
mov edi, eax
mov bl, pe_nt_image_headers32
test edi, edi
je 0x40bafc
push 9
call esi
test bl, al
je 0x40bafc
push 0x11
call esi
test bl, al
jne 0x40bafc
push 0x10
call esi
test bl, al
jne 0x40bafc
push 0x12
call esi
test bl, al
jne 0x40bafc
push 5
lea eax, [esp + 0x14]
push eax
push edi
call dword [sym.imp.USER32.DLL_GetClassNameA]
push 4
lea eax, [esp + 0x14]
push str.Rich
push eax
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x40bafc
push eax
push eax
push 0x44e
push edi
call dword [sym.imp.USER32.DLL_SendMessageA]
test eax, 0x800
jne 0x40bafc
xor eax, eax
jmp 0x40bb7e
push ebp
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x40bb25
push 0x11
call esi
test bl, al
jne 0x40bb1d
push 0x10
call esi
test bl, al
jne 0x40bb1d
push 0x12
call esi
test bl, al
je 0x40bb25
push 1
push ebp
call fcn.0040ba39
mov esi, dword [sym.imp.USER32.DLL_GetPropA]
test edi, edi
je 0x40bb3b
push str.PB_Hotkey
push edi
call esi
test eax, eax
jne 0x40bb7b
push str.PB_WindowID
push ebp
call esi
mov esi, eax
test esi, esi
je 0x40bb7b
lea eax, [esp + 0x10]
push eax
push ebp
call dword [sym.imp.USER32.DLL_GetWindowThreadProcessId]
test eax, eax
je 0x40bb7b
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [esp + 0x10], eax
jne 0x40bb7b
dec esi
push esi
push dword [0x413bc0]
call fcn.0040e9ba
test eax, eax
je 0x40bb7b
mov eax, dword [eax + 8]
jmp 0x40bb7d
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret 4

Function at 0x40bc40
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x94
push edi
push str.msimg32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
xor edi, edi
mov dword [0x413a94], eax
cmp eax, edi
je 0x40bc73
push str.AlphaBlend
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x413a98], eax
lea eax, [ebp - 0x1c]
push eax
mov dword [0x413a90], 1
mov dword [ebp - 0x1c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x40bcb1
cmp dword [ebp - 0xc], 1
je 0x40bcc2
cmp dword [ebp - 0xc], 2
jne 0x40bcb1
cmp dword [ebp - 0x18], 5
jb 0x40bcc2
jne 0x40bcb1
cmp dword [ebp - 0x14], edi
jne 0x40bcb1
mov dword [0x413a90], edi
cmp dword [0x413a90], edi
je 0x40bcc8
call fcn.0040bb87
test eax, eax
jne 0x40bcc8
mov dword [0x413a90], edi
pop edi
add ebp, 0x78
leave
ret

Function at 0x40c96e
Capabilities:
Delete file
Set file attributes

Disassembly:
cmp dword [esp + 4], 0
je 0x40c997
test byte [esp + 8], 2
je 0x40c98b
push pe_nt_image_headers32
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40c999
xor eax, eax
ret 8
Function at 0x40c9aa
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
cmp dword [ebp + 8], 0
je 0x40ca1a
push 0x104
push dword [ebp + 8]
lea eax, [ebp - 0x108]
push eax
call sub.MSVCRT.dll_strncpy
lea eax, [ebp - 0x108]
push eax
mov byte [ebp - 4], 0
call sub.MSVCRT.dll_strlen
add esp, 0x10
lea eax, [ebp + eax - 0x108]
jmp 0x40c9fc
mov dl, byte [eax - 1]
cmp dl, 0x20
je 0x40c9fb
cmp dl, 0x5c
je 0x40c9fb
cmp dl, 0x2f
jne 0x40ca06
dec eax
lea ecx, [ebp - 0x108]
cmp eax, ecx
ja 0x40c9e9
mov byte [eax], 0
push 0
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
jmp 0x40ca1c
xor eax, eax
leave
ret 4

Function at 0x40caf0
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 4], eax
cmp dword [esi + 0x14], eax
jne 0x40cb25
mov ecx, dword [esi + 8]
sub ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
push eax
lea eax, [esp + 8]
push eax
mov eax, dword [esi]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [esi + 8]
mov eax, dword [esp + 4]
mov dword [esi + 0xc], ecx
pop esi
pop ecx
ret 4

Function at 0x40ced0
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 4], eax
test esi, esi
je 0x40cf17
cmp byte [esi], al
je 0x40cf17
mov eax, dword [esp + 0xc]
mov ecx, dword [0x413c60]
push eax
push ecx
call fcn.0040e9ba
test eax, eax
je 0x40cf45
cmp dword [eax + 4], 0
mov ecx, esi
push edi
lea edi, [ecx + 1]
je 0x40cf20
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40cf05
sub ecx, edi
push ecx
push esi
push eax
call fcn.0040d090
pop edi
pop esi
pop ecx
ret 8
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40cf20
mov eax, dword [eax]
push 0
lea edx, [esp + 0xc]
push edx
sub ecx, edi
push ecx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 8]
pop edi
pop esi
pop ecx
ret 8
mov eax, dword [esp + 4]
pop esi
pop ecx
ret 8

Function at 0x40cf50
Capabilities:
Write file on windows

Disassembly:
push ecx
push edi
mov edi, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 4], eax
test edi, edi
je 0x40cfa9
push esi
mov esi, dword [esp + 0x18]
test esi, esi
je 0x40cfa8
mov eax, dword [esp + 0x10]
mov ecx, dword [0x413c60]
push eax
push ecx
call fcn.0040e9ba
test eax, eax
je 0x40cfa4
cmp dword [eax + 4], 0
je 0x40cf92
push esi
push edi
push eax
call fcn.0040d090
pop esi
pop edi
pop ecx
ret 0xc
mov eax, dword [eax]
push 0
lea edx, [esp + 0xc]
push edx
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 8]
pop esi
pop edi
pop ecx
ret 0xc
Function at 0x40cfb0
Capabilities:
Write file on windows

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
mov ecx, dword [0x413c60]
push esi
push eax
push ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.0040e9ba
mov esi, eax
test esi, esi
je 0x40d077
mov ecx, dword [esp + 0x14]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
test ecx, ecx
je 0x40d02f
cmp byte [ecx], 0
je 0x40d02f
cmp dword [esi + 4], 0
mov eax, ecx
push edi
lea edi, [eax + 1]
je 0x40d017
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d000
sub eax, edi
push eax
push ecx
push esi
call fcn.0040d090
mov dword [esp + 0xc], eax
jmp 0x40d02e
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d017
push 0
lea edx, [esp + 0x10]
push edx
sub eax, edi
push eax
mov eax, dword [esi]
push ecx
push eax
call ebp
pop edi
cmp dword [esi + 4], 0
je 0x40d052
push 2
push 0x41150c
push esi
call fcn.0040d090
mov ecx, eax
mov eax, dword [esp + 8]
pop ebp
add eax, ecx
pop esi
add esp, 8
ret 8
mov edx, dword [esi]
push 0
lea ecx, [esp + 0x10]
push ecx
push 2
push 0x41150c
push edx
call ebp
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
pop ebp
add eax, ecx
pop esi
add esp, 8
ret 8
mov eax, dword [esp + 4]
pop esi
add esp, 8
ret 8

Function at 0x40d090
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
cmp dword [esi + 0x14], 1
push edi
mov dword [esp + 8], 0
jne 0x40d0c5
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
push 1
push 0
neg eax
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [esi + 8]
mov dword [esi + 0x14], 0
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x18]
cmp ecx, edi
jle 0x40d13a
mov eax, dword [esi + 8]
add eax, dword [esi + 4]
sub eax, ecx
mov ecx, edi
dec ecx
je 0x40d127
dec ecx
je 0x40d112
sub ecx, 2
je 0x40d0ff
mov ecx, dword [esp + 0x14]
push edi
push ecx
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov dword [eax], ecx
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
mov edx, dword [esp + 0x14]
mov cx, word [edx]
mov word [eax], cx
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
mov byte [eax], cl
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
push esi
call fcn.0040caf0
mov eax, dword [esi + 8]
cmp edi, eax
jl 0x40d167
mov eax, dword [esp + 0x14]
mov ecx, dword [esi]
push 0
lea edx, [esp + 0xc]
push edx
push edi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 8]
pop edi
pop esi
pop ecx
ret 0xc
mov ecx, dword [esi + 4]
sub ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x14]
push edi
push edx
add ecx, eax
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
Function at 0x484cf6
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov edx, 0x484a08
or esi, esi
and edi, esi
call fcn.00484d3a
and edi, edi
xor dword [ebx], edx
and esi, esi
mov edi, 0x3e2de9e4
sub esi, esi
add ebx, 2
mov edi, 0x89c493f8
cmp ebx, eax
jl fcn.00484cf6
add esi, 0x4c78a4
sub esi, 1
ret
Function at 0x401000
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x10]
push ebx
push esi
xor esi, esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], eax
cmp esi, dword [ebp + 0x10]
jge 0x401191
mov eax, dword [ebp - 0x10]
push 3
pop edx
cmp eax, edx
mov dword [ebp - 0xc], edx
jge 0x401032
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov eax, 0x3d3d3d3d
lea edi, [ebp - 4]
stosw word es:[edi], ax
test ecx, ecx
stosb byte es:[edi], al
jle 0x401059
mov eax, dword [ebp + 8]
lea edi, [ebp - 4]
add esi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, edx
rep movsb byte es:[edi], byte [esi]
mov cl, byte [ebp - 4]
mov al, cl
shr al, 2
test ebx, ebx
mov byte [ebp - 1], al
je 0x40108e
mov edi, dword [ebp + 0x14]
test edi, edi
jle 0x401096
mov eax, ebx
mov esi, dword [ebp + 0xc]
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x401099
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
jmp 0x401099
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
jmp 0x401099
mov esi, dword [ebp + 0xc]
movzx eax, byte [ebp - 1]
mov edx, dword [0x40f030]
and cl, 3
shl cl, 4
mov al, byte [eax + edx]
mov byte [ebx + esi], al
mov al, byte [ebp - 3]
mov dl, al
inc ebx
shr dl, 4
add cl, dl
test ebx, ebx
je 0x4010df
test edi, edi
jle 0x4010df
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x4010dc
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
mov al, byte [ebp - 3]
mov edx, dword [0x40f030]
and al, 0xf
movzx ecx, cl
shl al, 2
mov cl, byte [ecx + edx]
mov byte [ebx + esi], cl
mov cl, byte [ebp - 2]
mov dl, cl
inc ebx
shr dl, 6
add al, dl
test ebx, ebx
mov byte [ebp - 1], al
je 0x401123
test edi, edi
jle 0x401123
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x401123
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
movzx eax, byte [ebp - 1]
mov edx, dword [0x40f030]
mov al, byte [eax + edx]
mov byte [ebx + esi], al
inc ebx
cmp dword [ebp - 0xc], 2
jg 0x40113f
mov byte [ebx + esi - 1], 0x3d
and cl, 0x3f
test ebx, ebx
je 0x401164
test edi, edi
jle 0x401164
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x401164
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
movzx eax, cl
mov ecx, dword [0x40f030]
mov al, byte [eax + ecx]
mov byte [ebx + esi], al
inc ebx
cmp dword [ebp - 0xc], 1
jg 0x40117f
mov byte [ebx + esi - 1], 0x3d
mov esi, dword [ebp - 0x14]
add esi, 3
sub dword [ebp - 0x10], 3
mov dword [ebp - 0x14], esi
jmp 0x401019
pop edi
mov eax, ebx
pop esi
pop ebx
leave
ret
Function at 0x401198
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
and dword [ebp - 8], 0
lea eax, [ebp - 4]
push eax
push 4
push 0x410252
call fcn.0040347e
pop ecx
pop ecx
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x401282
push ebx
push esi
push edi
mov ebx, 0x41098b
push eax
push ebx
call fcn.004034ae
pop ecx
mov dword [ebp - 0xc], eax
pop ecx
lea eax, [ebp - 0x110]
push 0x104
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401276
lea eax, [ebp - 0x110]
push eax
call fcn.0040c7c8
xor edi, edi
pop ecx
cmp dword [ebp - 0xc], edi
jle 0x40126e
push edi
push ebx
call fcn.0040347e
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00403c88
add esp, 0x10
test eax, eax
je 0x401268
push 0x410b93
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x401268
push 2
push 0x410c93
call fcn.0040347e
pop ecx
pop ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x401261
lea ecx, [ebp - 0x110]
push ecx
push dword [ebp - 4]
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
inc edi
cmp edi, dword [ebp - 0xc]
jl 0x40120f
inc dword [ebp - 8]
jmp 0x4011df
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebx
leave
ret

Function at 0x401284
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x814
lea eax, [ebp + 0xc]
push esi
and dword [ebp - 4], 0
push eax
push dword [ebp + 0xc]
mov esi, 0x400
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x4012b8
xor eax, eax
jmp 0x4013a4
push ebx
push edi
mov edi, 0x41098b
push 0
push edi
call fcn.004034ae
pop ecx
mov dword [ebp + 8], eax
pop ecx
lea eax, [ebp - 8]
xor ebx, ebx
push eax
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push ebx
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0xc], esi
push eax
mov dword [ebp - 8], esi
push dword [ebp - 4]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x401397
cmp dword [ebp - 0x10], 1
je 0x40130f
and byte [ebp - 0x814], al
lea eax, [ebp - 0x414]
push eax
call fcn.0040c7c8
lea eax, [ebp - 0x814]
push eax
call fcn.0040c7c8
cmp dword [ebp + 8], 0
pop ecx
pop ecx
jle 0x40138f
push ebx
push edi
call fcn.0040347e
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.00403c88
add esp, 0x10
test eax, eax
jne 0x401379
push dword [ebp - 0x14]
lea eax, [ebp - 0x814]
push eax
call fcn.00403c88
pop ecx
test eax, eax
pop ecx
jne 0x401379
lea eax, [ebp - 0x414]
push 0x40f034
push eax
call fcn.00407660
pop ecx
test eax, eax
pop ecx
jne 0x401389
lea eax, [ebp - 0x414]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
inc ebx
cmp ebx, dword [ebp + 8]
jl 0x40132f
inc dword [ebp - 4]
jmp 0x4012cc
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
xor eax, eax
pop ebx
pop esi
leave
ret 8
Function at 0x4013fa
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
push ebx
push 0x40f0c0
call fcn.00407840
xor ebx, ebx
mov dword [esp], 0x410e04
push ebx
mov dword [ebp - 0x14], eax
call fcn.00405449
push ebx
push 0x410bc5
call fcn.004034ae
add esp, 0x10
mov dword [ebp - 4], eax
lea eax, [ebp - 0x444]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push dword [ebp + 8]
mov dword [ebp - 0x340], 0x224
push 8
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
lea ecx, [ebp - 0x340]
mov dword [ebp - 0x18], eax
push ecx
push eax
call sub.KERNEL32.dll_Module32First
test eax, eax
je 0x4015ef
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.00407750
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x444]
push eax
call fcn.0040c920
add esp, 0x10
test eax, eax
je 0x4015ef
push dword [ebp - 0x338]
push ebx
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
cmp eax, ebx
mov dword [ebp - 0xc], eax
je 0x4015ef
push esi
mov esi, 0x80000
push edi
push esi
mov edi, 0x4131d0
push ebx
push edi
call fcn.004076f0
mov eax, dword [ebp - 0x328]
add esp, 0xc
cmp eax, esi
jb 0x4014e1
mov eax, esi
cmp dword [ebp + 0xc], ebx
mov dword [ebp - 8], ebx
jne 0x401506
lea ecx, [ebp - 8]
push ecx
push eax
push edi
push dword [ebp - 0x32c]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x4015e1
cmp dword [ebp - 4], ebx
mov dword [ebp + 8], ebx
jbe 0x4015e1
push dword [ebp + 8]
push 0x410bc5
call fcn.0040347e
push eax
mov dword [ebp - 0x10], eax
call fcn.00407840
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0xc], esi
mov ebx, eax
je 0x40153c
lea eax, [ebx + 0x6e]
mov dword [ebp - 8], eax
jmp 0x40153f
mov eax, dword [ebp - 8]
sub eax, ebx
sub eax, 0xa
je 0x4015d2
push dword [ebp - 0x14]
lea edi, [esi + 0x4131d0]
push edi
push 0x40f0c0
call fcn.0040c870
add esp, 0xc
test eax, eax
je 0x4015cb
cmp dword [ebp + 0xc], 0
jne 0x40158b
push ebx
push edi
push dword [ebp - 0x10]
call fcn.0040c870
add esp, 0xc
test eax, eax
je 0x40158b
mov eax, dword [ebp - 8]
inc esi
sub eax, ebx
sub eax, 0xa
cmp esi, eax
jb 0x40154a
jmp 0x4015d2
push 0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push 0x410df0
call fcn.0040347e
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.00403c88
add esp, 0x10
test eax, eax
jne 0x4015cb
lea eax, [ebp - 0x11c]
push eax
call fcn.00403f05
pop ecx
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp + 8], eax
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jb 0x401512
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
pop ebx
pop edi
pop esi
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
pop ebx
leave
ret 8
Function at 0x404a18
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x51c
and dword [ebp - 4], 0
cmp dword [0x4938f0], 0
jne 0x404a53
push 4
push 0x410252
call fcn.0040347e
lea ecx, [ebp - 4]
push ecx
push 0x40494a
push eax
push closesocket
call fcn.00404691
add esp, 0x18
jmp 0x404a8f
lea eax, [ebp - 0x418]
push 2
push eax
call fcn.00403ce3
lea eax, [ebp - 0x418]
push eax
push 0x4934e0
call fcn.00407750
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x418]
push 0x4048b6
push eax
push closesocket
call fcn.0040470f
add esp, 0x20
mov eax, dword [ebp - 4]
test eax, eax
mov dword [0x4938f4], eax
jne 0x404b70
push esi
lea eax, [ebp - 0x51c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
xor esi, esi
and byte [ebp - 0x18], 0
lea eax, [ebp - 0x18]
push 0x41078d
push eax
call fcn.00407750
pop ecx
lea eax, [ebp - 0x18]
pop ecx
push 4
push 4
push 2
push eax
call fcn.00407840
pop ecx
lea eax, [ebp + eax - 0x18]
push eax
call fcn.0040372f
lea eax, [ebp - 0x17]
push eax
call fcn.0040c9ac
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00407750
lea eax, [ebp - 0x418]
push 0x40f044
push eax
call fcn.00407760
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00407760
lea eax, [ebp - 0x418]
push 0x4101dc
push eax
call fcn.00407760
lea eax, [ebp - 0x418]
push eax
call fcn.00403e63
add esp, 0x38
test eax, eax
je 0x404b4d
inc esi
cmp esi, 0xa
jl 0x404ab4
lea eax, [ebp - 0x18]
push eax
push 0x4933dc
call fcn.00407760
lea eax, [ebp - 0x418]
push eax
push 0x4935e4
call fcn.00407750
add esp, 0x10
pop esi
push 1
pop eax
leave
ret

Function at 0x404cc5
Capabilities:
Parse pe header

Disassembly:
push esi
mov esi, dword [esp + 0xc]
cmp esi, 0x44
jb 0x404d00
mov ecx, dword [esp + 8]
cmp byte [ecx], 0x4d
jne 0x404d00
cmp byte [ecx + 1], 0x5a
jne 0x404d00
movzx eax, word [ecx + 0x3c]
add eax, ecx
add esi, 0xfffffffc
mov edx, eax
sub edx, ecx
cmp edx, esi
ja 0x404d00
mov eax, dword [eax]
pop esi
sub eax, 0x4550
neg eax
sbb eax, eax
not eax
and eax, edx
ret
xor eax, eax
pop esi
ret