joyce8/EMBER2024-capa huggingface dataset:
Function at 0x405cb2
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x416004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
call fcn.00405c91
mov eax, 0x400000
push 0x94
mov dword [esi + 8], eax
mov dword [esi + 4], eax
lea eax, [ebp - 0x98]
push 0
push eax
mov dword [esi], 0x3c
mov byte [esi + 0xc], 0
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x98], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x88], 2
jne 0x405d54
cmp dword [ebp - 0x94], 5
jb 0x405d27
mov byte [esi + 0xc], 1
lea ecx, [esi + 0x18]
mov dword [esi + 0x10], 0x800
mov dword [esi + 0x14], 0x405d70
call fcn.004049f5
test eax, eax
jl 0x40911d
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.004018c9
leave
ret
cmp dword [ebp - 0x88], 1
je 0x409105
jmp 0x405d27
cmp dword [ebp - 0x90], 0
jbe 0x405d27
jmp 0x405d23
cmp dword [ebp - 0x94], 4
ja 0x405d23
je 0x405d63
jmp 0x405d27
mov byte [0x416788], 1
jmp 0x405d45

Function at 0x406d16
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
lea eax, [ebp - 8]
push eax
xor edi, edi
push 0x406ed4
mov dword [ebp - 8], edi
call sub.slc.dll_SLGetWindowsInformationDWORD
test eax, eax
jl 0x40963b
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 4]
push eax
push 1
push edi
mov ebx, 0x406de8
push ebx
push 0x80000002
mov dword [ebp - 0xc], edi
call esi
test eax, eax
je 0x409643
lea eax, [ebp - 4]
push eax
push 1
push edi
push ebx
push 0x80000001
mov dword [ebp - 0x10], edi
call esi
test eax, eax
je 0x409677
lea eax, [ebp - 4]
push eax
xor ebx, ebx
inc ebx
push ebx
push edi
push 0x406e48
push 0x80000002
mov dword [ebp - 0x14], ebx
call esi
test eax, eax
jne 0x406dc7
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push edi
push edi
push 0x406eb8
push dword [ebp - 4]
mov dword [ebp - 0x18], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4096ab
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 8], edi
je 0x406de2
cmp dword [ebp - 0xc], edi
jne 0x406de2
cmp dword [ebp - 0x10], edi
jne 0x406de2
cmp dword [ebp - 0x14], edi
je 0x406de2
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
xor eax, eax
jmp 0x406ddd
mov dword [ebp - 8], edi
jmp 0x406d3c
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xc]
push eax
push edi
push edi
push 0x4096b8
push dword [ebp - 4]
mov dword [ebp - 0x18], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x409669
mov dword [ebp - 0xc], edi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x406d61
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
push edi
push edi
push 0x4096b8
push dword [ebp - 4]
mov dword [ebp - 0x18], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40969d
mov dword [ebp - 0x10], edi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x406d7b
mov dword [ebp - 0x14], ebx
jmp 0x406dbe
Function at 0x403360
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov cl, 0x22
mov al, byte [esi]
cmp al, cl
jne 0x40338c
mov al, byte [esi + 1]
inc esi
cmp al, cl
je 0x403385
test al, al
jne 0x403379
cmp byte [esi], cl
jne 0x403396
inc esi
jmp 0x403396
cmp al, 0x20
jle 0x403396
inc esi
cmp byte [esi], 0x20
jg 0x403390
mov al, byte [esi]
test al, al
je 0x4033a0
cmp al, 0x20
jle 0x403389
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test byte [ebp - 0x18], 1
je 0x4033ba
movzx ebx, word [ebp - 0x14]
jmp 0x4033bd
push 0xa
pop ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, eax
push 0
push 0
push edi
call fcn.00406960
test eax, eax
je 0x403449
push 0
push edi
call fcn.00403bd8
pop ecx
pop ecx
call fcn.004060f8
test eax, eax
je 0x40340f
push edi
push 1
call fcn.0040615d
pop ecx
test eax, eax
pop ecx
je 0x40340f
push 0
push str.This_Demo_of_LabWindows_CVI_has_expired.
push 0x46ade8
call fcn.00406110
add esp, 0xc
or esi, 0xffffffff
jmp 0x40343b
cmp dword [0x4471d8], 0
je 0x403425
push fcn.00407188
push esi
call sub.cvirte.dll___CreatePtrInfoForWinMainCommandLine
pop ecx
pop ecx
push ebx
push esi
push 0
push edi
call fcn.00407188
mov esi, eax
call fcn.00406830
call fcn.00406887
call fcn.00406a44
push edi
call fcn.00403f46
pop ecx
jmp 0x40344c
or esi, 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x40615d
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push edi
push dword [ebp + 0xc]
xor ebx, ebx
mov byte [ebp - 1], bl
call esi
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push eax
push dword [0x46b0a0]
lea eax, [ebp - 0x12c]
push eax
call edi
mov eax, dword [ebp + 0xc]
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [str.CVIDEMOTIMERWNDCLASS__d__d]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x406559
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
call fcn.00406511
cmp ax, bx
mov word [0x4470dc], ax
je 0x4062ab
push ebx
mov eax, 0x80000000
push dword [ebp + 0xc]
push ebx
push ebx
push eax
push eax
push eax
push eax
mov eax, dword [str.CVIDEMOTIMERWNDCLASS__d__d]
push 0xcf0000
push eax
push eax
push ebx
call fcn.004064cf
cmp eax, ebx
je 0x4062ab
push ebx
push 0x927c0
push dword [0x4470e8]
mov dword [0x4470e4], eax
push eax
call fcn.0040652f
cmp eax, ebx
mov dword [0x4470e8], eax
je 0x4062ab
cmp dword [ebp + 8], ebx
je 0x40624e
call esi
push eax
lea eax, [ebp - 0x12c]
push 0x46b0dc
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x4062ab
call esi
push eax
lea eax, [ebp - 0x12c]
push str.CVI_Demo_Last_Time_Timer_Called___d
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x12c]
push eax
push 4
push ebx
push 4
push ebx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
cmp eax, ebx
mov dword [0x4470ec], eax
je 0x4062ab
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x406291
mov byte [ebp - 1], 1
push ebx
push ebx
push ebx
push 2
push dword [0x4470ec]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, ebx
mov dword [0x4470f0], eax
jne 0x4062b0
push 1
pop eax
jmp 0x4062c4
cmp byte [ebp - 1], bl
je 0x4062c2
call fcn.004062c9
mov ecx, dword [0x4470f0]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4062e0
Capabilities:
Check mutex on windows
Link many functions at runtime

Disassembly:
sub esp, 0x114
push ebx
xor ebx, ebx
cmp dword [0x4470f8], ebx
push ebp
push esi
push edi
jne 0x4064c2
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [esp + 0x20]
push str.National_Instruments_LabWindows_CVI_Startup_library__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
cmp esi, ebx
jne 0x40632c
push 0xfffffffffffffffd
jmp 0x4064a9
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
or ebp, 0xffffffff
push ebp
push esi
call edi
cmp dword [0x4470f4], ebx
je 0x40635a
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
push dword [0x4470f4]
call edi
jmp 0x406360
mov dword [0x4470f4], esi
cmp dword [0x4470f8], ebx
jne 0x4064c2
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.winmm.dll
call esi
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x4063ac
push str.advapi32.dll
call esi
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4063ac
push 0x46b164
call esi
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x4063ac
push 0x46b174
call esi
mov edi, eax
cmp edi, ebx
jne 0x4063b3
mov eax, ebp
jmp 0x4064c4
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.timeGetTime
push dword [esp + 0x18]
call esi
cmp eax, ebx
mov dword [0x4470d4], eax
je 0x40648c
push str.RegOpenKeyExA
push dword [esp + 0x14]
call esi
cmp eax, ebx
mov dword [0x4470c8], eax
je 0x40648c
push str.RegQueryValueExA
push dword [esp + 0x14]
call esi
cmp eax, ebx
mov dword [0x4470b8], eax
je 0x40648c
push str.GetFileTime
push dword [esp + 0x1c]
call esi
cmp eax, ebx
mov dword [0x4470c0], eax
je 0x40648c
push str.CreateWindowExA
push edi
call esi
cmp eax, ebx
mov dword [0x4470d0], eax
je 0x40648c
push str.DefWindowProcA
push edi
call esi
cmp eax, ebx
mov dword [0x4470bc], eax
je 0x40648c
push str.DestroyWindow
push edi
call esi
cmp eax, ebx
mov dword [0x4470cc], eax
je 0x40648c
push str.KillTimer
push edi
call esi
cmp eax, ebx
mov dword [0x4470d8], eax
je 0x40648c
push str.RegisterClassA
push edi
call esi
cmp eax, ebx
mov dword [0x4470b0], eax
je 0x40648c
push str.SetTimer
push edi
call esi
cmp eax, ebx
mov dword [0x4470b4], eax
je 0x40648c
push str.UnregisterClassA
push edi
call esi
cmp eax, ebx
mov dword [0x4470c4], eax
jne 0x4064ac
push dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
push dword [esp + 0x10]
call esi
push dword [esp + 0x18]
call esi
push edi
call esi
push 0xfffffffffffffffe
pop eax
jmp 0x4064c4
push dword [0x4470f4]
mov dword [0x4470f8], 1
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
Function at 0x406a80
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [ebp + 8]
push esi
mov dword [0x4471d4], eax
cmp dword [eax], 0
jne 0x406c46
cmp dword [0x46b4a0], 3
je 0x406c46
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.user32.dll
mov dword [eax], 0x406ce3
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x406b21
push str.TranslateMessage
push ebx
call esi
test eax, eax
mov dword [ebp + 8], eax
je 0x406b21
push str.DispatchMessageA
push ebx
call esi
test eax, eax
mov dword [ebp - 4], eax
je 0x406b21
push str.PeekMessageA
push ebx
call esi
test eax, eax
mov dword [ebp - 8], eax
je 0x406b21
push str.MsgWaitForMultipleObjects
push ebx
call esi
test eax, eax
je 0x406b21
mov ecx, dword [ebp + 8]
mov dword [0x4471bc], eax
mov dword [0x4471b4], ecx
mov ecx, dword [ebp - 4]
mov dword [0x4471b8], ecx
mov ecx, dword [ebp - 8]
mov dword [0x4471b0], ecx
jmp 0x406b49
mov dword [0x4471b4], 0x406c5a
mov dword [0x4471b8], 0x406c5f
mov dword [0x4471b0], 0x406c64
mov dword [0x4471bc], 0x406c69
push 0x46b400
call edi
mov ebx, eax
test ebx, ebx
jne 0x406b70
push str.instrsup.dll
call edi
mov ebx, eax
test ebx, ebx
jne 0x406b70
push str.cvi_lvrt.dll
call edi
mov ebx, eax
test ebx, ebx
je 0x406b8a
push str.__SwitchExecutionContext
push ebx
call esi
push str.__NotifyLoadExternalModule
push ebx
mov dword [0x4471c0], eax
call esi
mov dword [0x4471c4], eax
xor esi, esi
pop edi
cmp dword [0x4471c0], esi
pop ebx
je 0x406bb7
cmp dword [0x4471c4], esi
je 0x406bb7
mov eax, dword [0x4471d4]
push dword [eax + 0x18]
call fcn.00403adb
pop ecx
mov ecx, dword [0x4471d4]
mov dword [ecx + 0x14], eax
jmp 0x406bbf
mov eax, dword [0x4471d4]
mov dword [eax + 0x14], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.Labwindows_CVI_Interactive_Window_Idling_Event
lea eax, [ebp - 0x6c]
push str._s_x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x6c]
push eax
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp eax, esi
mov dword [0x4471d0], eax
jne 0x406c05
lea eax, [ebp - 0x6c]
push eax
push esi
push 2
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [0x4471d0], eax
mov eax, dword [0x449894]
push 0x1c
add eax, 0xc8
push eax
push 0x449898
call fcn.004011d8
add esp, 0xc
cmp dword [0x4471c0], esi
je 0x406c41
cmp dword [0x4471c4], esi
je 0x406c41
mov eax, dword [0x4471d4]
cmp dword [eax + 0x14], esi
je 0x406c41
cmp dword [0x4471d0], esi
jne 0x406c46
call fcn.00406c6e
mov eax, dword [0x4471d4]
pop esi
cmp dword [eax + 8], 1
sete al
mov byte [0x4471cc], al
leave
ret
Function at 0x40167b
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
lea eax, [ebp - 0x28]
push esi
push ecx
push str.VDM_HOST__p
push 0x28
push eax
call dword [sym.imp.ntdll.dll_sprintf_s]
add esp, 0x10
lea eax, [ebp - 0x28]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
mov esi, eax
test esi, esi
je 0x4016bf
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x4016c4
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor eax, eax
pop esi
leave
ret
xor eax, eax
inc eax
jmp 0x4016c1

Function at 0x4016c9
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x490
lea eax, [ebp - 0x490]
push ebx
push esi
push 0x104
push eax
xor ebx, ebx
mov esi, ecx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
test eax, eax
je 0x4017b3
push edi
push 0xa
pop ecx
xor eax, eax
mov dword [ebp - 0x3c], 0x2c
lea edi, [ebp - 0x38]
mov dword [ebp - 0x80], 0x44
push 0x40
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x7c]
push ebx
push eax
call sub.ntdll.dll_memset
xor eax, eax
lea edi, [ebp - 0x10]
stosd dword es:[edi], eax
push esi
push dword [0x40300c]
push dword [0x403008]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x490]
push eax
lea eax, [ebp - 0x288]
push str.__s___d__d__p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x24
lea eax, [ebp - 0x3c]
push eax
push dword [0x403018]
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov ax, word [ebp - 0x34]
or dword [ebp - 0x54], 1
mov word [ebp - 0x50], ax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
push ebx
push 0x20
push ebx
push ebx
push ebx
lea eax, [ebp - 0x288]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateProcessW]
pop edi
test eax, eax
jne 0x4017a3
lea eax, [ebp - 0x288]
push eax
push str.CreateProcessW__cmd_line:__ls
push str.spawn_new_host
call fcn.00401ab4
add esp, 0xc
jmp 0x4017b3
push dword [ebp - 0x10]
mov esi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
call esi
push dword [ebp - 0xc]
call esi
pop esi
pop ebx
leave
ret

Function at 0x401ab4
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x604
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push edi
push edi
mov esi, eax
mov ebx, 0x400
lea eax, [ebp - 4]
push eax
push ebx
push esi
push edi
push 0x1300
call dword [sym.imp.KERNEL32.DLL_FormatMessageA]
cmp dword [ebp - 4], edi
je 0x401b3e
push dword [ebp - 4]
lea eax, [ebp - 0x204]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push str.VdmHost32._s:__s__error__d____s
push 0x200
push eax
call dword [sym.imp.ntdll.dll_sprintf_s]
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x604]
push ebx
push eax
call dword [sym.imp.ntdll.dll_vsprintf_s]
add esp, 0x2c
lea eax, [ebp - 0x604]
push eax
call dword [sym.imp.KERNEL32.DLL_OutputDebugStringA]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.DLL_LocalFree]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x1009b18
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov ecx, dword [ebp + 8]
cmp ecx, dword [0x100d128]
push ebx
push esi
push edi
jae 0x1009c9d
mov eax, ecx
sar eax, 5
lea ebx, [eax*4 + 0x100d140]
mov eax, dword [ebx]
mov esi, ecx
and esi, 0x1f
shl esi, 3
mov al, byte [eax + esi + 4]
test al, 1
mov dword [ebp - 0x14], ebx
je 0x1009c9d
xor edi, edi
cmp dword [ebp + 0x10], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], edi
jne 0x1009b6c
xor eax, eax
jmp 0x1009cb1
test al, 0x20
je 0x1009b7d
push 2
push edi
push edi
push ecx
call fcn.01009deb
add esp, 0x10
mov eax, dword [ebx]
add eax, esi
test byte [eax + 4], 0x80
je 0x1009c39
cmp dword [ebp + 0x10], edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov dword [ebp + 8], edi
jbe 0x1009c71
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x418]
cmp ecx, dword [ebp + 0x10]
jae 0x1009bd3
mov edx, dword [ebp - 4]
inc dword [ebp - 4]
mov dl, byte [edx]
inc ecx
cmp dl, 0xa
jne 0x1009bc4
inc dword [ebp - 0x10]
mov byte [eax], 0xd
inc eax
inc edi
mov ebx, dword [ebp - 0x14]
mov byte [eax], dl
inc eax
inc edi
cmp edi, 0x400
jl 0x1009ba9
mov edi, eax
lea eax, [ebp - 0x418]
sub edi, eax
push 0
lea eax, [ebp - 0xc]
push eax
push edi
lea eax, [ebp - 0x418]
push eax
mov eax, dword [ebx]
push dword [eax + esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1009c13
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
cmp eax, edi
jl 0x1009c1c
mov eax, dword [ebp - 4]
sub eax, dword [ebp + 0xc]
xor edi, edi
cmp eax, dword [ebp + 0x10]
jb 0x1009b9d
jmp 0x1009c1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 8], eax
xor edi, edi
mov eax, dword [ebp - 8]
cmp eax, edi
jne 0x1009c98
cmp dword [ebp + 8], edi
je 0x1009c71
push 5
pop eax
cmp dword [ebp + 8], eax
jne 0x1009c66
mov dword [0x100bcb0], eax
jmp 0x1009ca4
push edi
lea ecx, [ebp - 0xc]
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1009c5b
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], edi
mov dword [ebp - 8], eax
jmp 0x1009c1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 8], eax
jmp 0x1009c1e
push dword [ebp + 8]
call fcn.0100978d
pop ecx
jmp 0x1009cae
mov eax, dword [ebx]
test byte [eax + esi + 4], 0x40
je 0x1009c86
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x1a
je 0x1009b65
mov dword [0x100bcac], 0x1c
mov dword [0x100bcb0], edi
jmp 0x1009cae
sub eax, dword [ebp - 0x10]
jmp 0x1009cb1
and dword [0x100bcb0], 0
mov dword [0x100bcac], 9
or eax, 0xffffffff
pop edi
pop esi
pop ebx
leave
ret

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x411560
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x689c4b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x180
push ebx
push ebp
mov ebp, ecx
lea ecx, [esp + 8]
lea eax, [ebp + 0x40]
push eax
call fcn.0067e635
mov ecx, dword [esp + 8]
mov dword [esp + 0x190], 0
mov eax, dword [ecx - 8]
test eax, eax
je 0x4115e2
lea edx, [esp + 0x10]
push 1
push edx
lea ecx, [esp + 0x10]
call fcn.0067c2af
mov eax, dword [eax]
push 0x6c5d30
push eax
call fcn.00668c34
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call fcn.0067e8c0
test bl, bl
je 0x4115e2
push 0x6c5d30
lea ecx, [esp + 0xc]
call fcn.0067ec50
push 0x6c5d3c
lea ecx, [esp + 0xc]
call fcn.0067ec50
mov ecx, dword [esp + 8]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x41161e
lea ecx, [esp + 8]
mov dword [esp + 0x190], eax
call fcn.0067e8c0
jmp 0x4116e9
push esi
mov esi, dword [esp + 0x19c]
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA_1]
mov ebx, 0x23
test byte [esp + 0x50], 0x10
je 0x4116a2
lea edx, [esp + 0x7c]
push 0x6c5d38
push edx
call fcn.00668c34
add esp, 8
test eax, eax
je 0x4116a2
lea eax, [esp + 0x7c]
push 0x6c5d34
push eax
call fcn.00668c34
add esp, 8
test eax, eax
je 0x4116a2
mov eax, dword [ebp + 0x1c]
lea edx, [esp + 0x1c]
push edx
push 0
lea ecx, [esp + 0x84]
push 0x1100
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 0xffff0003
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], ebx
call edi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x50]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x411632
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp + 0x1c]
push esi
push 2
push 0x1102
push ecx
call edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x198], 0xffffffff
call fcn.0067e8c0
pop edi
pop esi
mov ecx, dword [esp + 0x188]
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18c
ret 4

Function at 0x411ee0
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
sub esp, 0x10c
lea eax, [esp]
push esi
push eax
push 1
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA_1]
mov esi, eax
test esi, esi
jne 0x411f42
mov edx, dword [esp + 4]
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
push esi
push edx
mov dword [esp + 0x18], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
mov ecx, dword [esp + 0x11c]
lea eax, [esp + 0xc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA_1]
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey_1]
mov eax, esi
pop esi
add esp, 0x10c
ret 0xc
Function at 0x411f50
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x689ccb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20c
mov eax, dword [0x757994]
push esi
push edi
mov edi, ecx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0x21c], 0
test eax, eax
jne 0x412088
mov ecx, dword [edi + 0x48]
lea esi, [edi + 0x48]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x411fb6
lea ecx, [esp + 8]
mov dword [esp + 0x21c], 0xffffffff
call fcn.0067e8c0
xor eax, eax
jmp 0x4120ff
push str.mailto:
lea ecx, [esp + 0xc]
call fcn.0067e9fd
push esi
lea ecx, [esp + 0xc]
call fcn.0067ec8c
mov ecx, dword [esp + 8]
push ebx
push ebp
mov ebp, dword [esp + 0x22c]
push ebp
push 0
push 0
push ecx
push 0x6c5d70
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA_1]
mov esi, eax
cmp esi, 0x20
ja 0x4120dd
lea edx, [esp + 0x14]
mov ecx, edi
push edx
push str..htm
push closesocket
call fcn.00411ee0
test eax, eax
jne 0x4120dd
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA_1]
lea eax, [esp + 0x14]
push str._shellopencommand
push eax
call ebx
lea ecx, [esp + 0x14]
lea edx, [esp + 0x14]
push ecx
push edx
push closesocket
mov ecx, edi
call fcn.00411ee0
test eax, eax
jne 0x4120dd
lea eax, [esp + 0x14]
push 0x6c5d4c
push eax
call fcn.00669ea0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4120bc
lea ecx, [esp + 0x14]
push 0x6c5d48
push ecx
call fcn.00669e20
mov esi, eax
add esp, 8
test esi, esi
jne 0x4120bc
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA_1]
lea esi, [esp + eax + 0x13]
jmp 0x4120bf
lea edx, [edi + 0x4c]
lea ecx, [esp + 8]
push edx
call fcn.0067e9ad
mov eax, dword [esp + 8]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x411fce
lea ecx, [esp + 8]
mov dword [esp + 0x21c], 0xffffffff
call fcn.0067e8c0
xor eax, eax
jmp 0x4120ff
mov byte [esi], 0
push 0x6c5d44
push esi
call ebx
mov eax, dword [esp + 0x10]
push eax
push esi
call ebx
lea ecx, [esp + 0x14]
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_WinExec]
mov esi, eax
xor edx, edx
cmp esi, 0x20
setg dl
lea ecx, [esp + 0x10]
mov esi, edx
mov dword [esp + 0x224], 0xffffffff
call fcn.0067e8c0
pop ebp
mov eax, esi
pop ebx
mov ecx, dword [esp + 0x214]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x218
ret 4