joyce8/EMBER2024-capa huggingface dataset:
Function at 0x417cdf
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
lea eax, [ebp + 8]
lea ecx, [ebp - 0x84]
push ebx
push esi
push edi
push eax
push 0x4660bc
call fcn.00402093
push eax
push str.Temp
call fcn.0043c0da
pop ecx
mov edx, eax
lea ecx, [ebp - 0x6c]
call fcn.004052fd
pop ecx
mov edx, eax
lea ecx, [ebp - 0x18]
call fcn.00402f10
pop ecx
lea ecx, [ebp - 0x6c]
call fcn.00401fd8
lea ecx, [ebp - 0x84]
call fcn.00401fd8
push ecx
push ecx
push 0x10
lea ecx, [ebp - 0x18]
call fcn.00401fab
push eax
lea ecx, [ebp - 0x138]
call fcn.0040fbb3
lea ecx, [ebp - 0x138]
call fcn.00417f1c
test al, al
je 0x417e10
lea edx, [ebp + 0x20]
lea ecx, [ebp - 0x138]
call fcn.00417f2c
lea ecx, [ebp - 0x138]
call fcn.0040fb64
and dword [ebp - 0x4c], 0
lea ecx, [ebp - 0x18]
and dword [ebp - 0x48], 0
mov dword [ebp - 0x54], 0x3c
mov dword [ebp - 0x50], pe_nt_image_headers32
call fcn.00401fab
movaps xmm0, xmmword [0x46d280]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x54]
push eax
movups xmmword [ebp - 0x40], xmm0
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
mov esi, 0x4660a4
mov edi, 0x475630
setne bl
cmp dword [ebp - 0x1c], 0
je 0x417dfa
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00402093
push 0x70
mov ecx, edi
call fcn.00404aa1
push 0xffffffffffffffff
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea ecx, [ebp - 0x18]
call fcn.00401fab
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
cmp bl, 1
jne 0x417e2b
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00402093
push 0x6e
mov ecx, edi
jmp 0x417e26
sub esp, 0x18
mov ecx, esp
push 0x4660a4
call fcn.00402093
push 0x6f
mov ecx, 0x475630
call fcn.00404aa1
lea ecx, [ebp - 0x138]
call fcn.0040f3b0
lea ecx, [ebp - 0x18]
call fcn.00401fd8
lea ecx, [ebp + 8]
call fcn.00401fd8
lea ecx, [ebp + 0x20]
call fcn.00401fd8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41aaa6
Capabilities:
Stop service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x20
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 0x20
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x41aade
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41aafc
lea eax, [ebp - 0x1c]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41ab0d
Capabilities:
Query service status
Start service
Stop service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x11
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 0xf003f
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x41ab48
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41ab99
lea eax, [ebp - 0x1c]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x41ab69
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push edi
call esi
mov bl, 2
jmp 0x41ab99
lea eax, [ebp - 0x1c]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp dword [ebp - 0x18], 1
jne 0x41ab69
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
neg eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 3
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41abaa
Capabilities:
Pause service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push pe_nt_image_headers32
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push pe_nt_image_headers32
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x41abe2
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41ac00
lea eax, [ebp - 0x1c]
push eax
push 2
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41ac11
Capabilities:
Continue service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push pe_nt_image_headers32
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push pe_nt_image_headers32
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x41ac49
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41ac67
lea eax, [ebp - 0x1c]
push eax
push 3
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41ac78
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 2
xor ebx, ebx
mov byte [ebp - 1], cl
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
push 2
lea ecx, [ebp + 8]
mov esi, eax
call fcn.00401f04
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x41acb1
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x41acf5
movzx eax, byte [ebp - 1]
or ecx, 0xffffffff
sub eax, ebx
je 0x41acce
sub eax, 1
je 0x41acca
sub eax, 1
jne 0x41acd1
push 3
jmp 0x41acd0
push 2
jmp 0x41acd0
push 4
pop ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
push edi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
setne bl
call esi
push edi
call esi
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41ad17
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
lea ecx, [esp + 4]
mov dl, 0x30
push esi
push str.alarm.wav
call fcn.0040d9e8
pop ecx
lea ecx, [esp + 8]
call fcn.00401f04
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41ada2
mov esi, 0x475968
mov edx, 0x4660a4
mov ecx, esi
call fcn.00405b05
test al, al
je 0x41ad90
sub esp, 0x18
cmp byte [0x474ad2], 0
mov ecx, esp
push 0x46c92c
je 0x41ad7a
call fcn.00402093
mov ecx, 0x475980
jmp 0x41ad84
call fcn.00402093
mov ecx, 0x475598
push 0xa1
call fcn.00404aa1
jmp 0x41adb2
lea ecx, [esp + 8]
call fcn.00401f04
mov edx, eax
mov ecx, esi
call fcn.0041c4f2
lea ecx, [esp + 8]
call fcn.00401f04
mov ecx, eax
call fcn.0041adc0
lea ecx, [esp + 8]
call fcn.00401f09
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x41ae15
Capabilities:
Check if file exists

Disassembly:
push ebx
push ecx
mov ecx, 0x475968
mov bl, dl
call fcn.00401fc0
test bl, bl
je 0x41ae2d
pop ebx
jmp fcn.0041ad17
mov byte [0x474ad3], 1
pop ebx
ret
Function at 0x41b047
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
push ecx
mov edi, ecx
mov esi, edx
push ecx
lea ecx, [esp + 0x98]
call fcn.0041b29c
cmp eax, 0xffffffff
jne 0x41b094
lea ecx, [esp + 0x90]
call fcn.00401f04
push eax
mov dl, 0x30
lea ecx, [esp + 0x14]
call fcn.0040da34
pop ecx
push eax
lea ecx, [esp + 0x94]
call fcn.00401f13
lea ecx, [esp + 0x10]
call fcn.00401f09
mov ecx, esi
call fcn.0040247c
lea ecx, [esp + 0x90]
test eax, eax
je 0x41b188
call fcn.00401f04
mov edx, eax
mov ecx, esi
call fcn.0041c4f2
push str._alias_audio
mov edx, edi
lea ecx, [esp + 0x74]
call fcn.0041bc5e
push eax
lea eax, [esp + 0x98]
mov edx, str.open__
push str.__type
push eax
lea ecx, [esp + 0x68]
call fcn.0040b97c
pop ecx
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00403014
pop ecx
mov edx, eax
lea ecx, [esp + 0x18]
call fcn.00402fa5
pop ecx
mov edx, eax
lea ecx, [esp + 0x2c]
call fcn.00403014
pop ecx
lea ecx, [esp + 0x10]
call fcn.00401f09
lea ecx, [esp + 0x40]
call fcn.00401f09
lea ecx, [esp + 0x58]
call fcn.00401f09
lea ecx, [esp + 0x70]
call fcn.00401f09
xor ebx, ebx
lea ecx, [esp + 0x28]
push ebx
push ebx
push ebx
call fcn.00401f04
push eax
call dword [sym.imp.WINMM.dll_mciSendStringW]
mov esi, dword [sym.imp.WINMM.dll_mciSendStringA]
push ebx
push ebx
push ebx
push str.play_audio
call esi
sub esp, 0x18
mov edi, 0x4660a4
mov ecx, esp
push edi
call fcn.00402093
mov ebp, 0x475980
push 0xa9
mov ecx, ebp
call fcn.00404aa1
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
mov dword [0x474ad4], eax
jmp 0x41b24c
call fcn.00401f04
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41b0b8
sub esp, 0x18
mov ecx, esp
push 0x4660a4
call fcn.00402093
push 0xa8
mov ecx, 0x475980
call fcn.00404aa1
jmp 0x41b288
cmp byte [0x474ad1], bl
je 0x41b1d7
push ebx
push ebx
push ebx
push str.pause_audio
call esi
mov byte [0x474ad1], bl
cmp byte [0x474ad0], bl
je 0x41b1ef
push ebx
push ebx
push ebx
push str.resume_audio
call esi
mov byte [0x474ad0], bl
push ebx
push 0x14
lea eax, [esp + 0x18]
push eax
push str.status_audio_mode
call esi
lea eax, [esp + 0x10]
push str.stopped
push eax
call fcn.0043fd00
pop ecx
pop ecx
test eax, eax
jne 0x41b21f
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.DLL_SetEvent]
push 0x1f4
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x41b247
push dword [0x474ad4]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, ebx
jmp 0x41b17e
mov eax, dword [0x474ad4]
test eax, eax
jne 0x41b1bf
push ebx
push ebx
push ebx
push str.stop_audio
call esi
push ebx
push ebx
push ebx
push str.close_audio
call esi
sub esp, 0x18
mov ecx, esp
push edi
call fcn.00402093
push 0xaa
mov ecx, ebp
call fcn.00404aa1
lea ecx, [esp + 0x28]
call fcn.00401f09
lea ecx, [esp + 0x90]
call fcn.00401f09
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
Function at 0x41bb61
Capabilities:
Terminate process

Disassembly:
push ebx
push esi
push ecx
xor ebx, ebx
push ebx
push 1
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov esi, eax
test esi, esi
je 0x41bb89
push ebx
push esi
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
test eax, eax
push esi
setne bl
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
mov al, bl
pop ebx
ret

Function at 0x41c01b
Capabilities:
Enumerate disk volumes
Get disk information

Disassembly:
sub esp, 0x828
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], 0x105
xor esi, esi
push edi
mov ebx, esi
mov ebp, esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
test eax, eax
jle 0x41c079
mov eax, edi
mov dword [esp + 0x10], eax
push 2
push 0x466608
push eax
call fcn.00436fea
add esp, 0xc
test eax, eax
jne 0x41c060
inc ebx
cmp ebx, 3
je 0x41c077
add dword [esp + 0x10], 2
inc ebp
push edi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
cmp ebp, eax
jge 0x41c079
mov eax, dword [esp + 0x10]
jmp 0x41c046
mov ebx, ebp
xor eax, eax
mov word [edi + ebx*2], ax
lea eax, [ebx*2 + 2]
push eax
lea eax, [esp + 0x634]
push edi
push eax
call fcn.00436910
add esp, 0xc
lea eax, [esp + 0x18]
push 0x104
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstVolumeW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x41c136
call dword [sym.imp.KERNEL32.DLL_GetLastError]
xor eax, eax
jmp 0x41c168
cmp word [esp + 0x1a], ax
jne 0x41c152
cmp word [esp + 0x1c], 0x3f
jne 0x41c152
cmp word [esp + 0x1e], ax
jne 0x41c152
cmp word [esp + ebp*2 + 0x18], ax
jne 0x41c152
xor eax, eax
mov word [esp + ebp*2 + 0x18], ax
lea eax, [esp + 0x428]
push 0x64
push eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_QueryDosDeviceW]
mov dword [esp + 0x14], eax
test eax, eax
je 0x41c1d0
push edi
lea eax, [esp + 0x42c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpW]
test eax, eax
je 0x41c182
push 0x104
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.DLL_FindNextVolumeW]
test eax, eax
je 0x41c173
lea eax, [esp + 0x18]
push eax
call fcn.0043bad6
pop ecx
push 0x5c
lea ebp, [eax - 1]
pop eax
cmp word [esp + 0x18], ax
je 0x41c0c2
mov esi, 0xa1
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.DLL_FindVolumeClose]
xor eax, eax
test esi, esi
sete al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x828
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp esi, 0x12
jne 0x41c157
jmp 0x41c152
push 0x5c
pop eax
mov word [esp + ebp*2 + 0x18], ax
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x18]
lea eax, [esp + 0x228]
push eax
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.DLL_GetVolumePathNamesForVolumeNameW]
test eax, eax
je 0x41c1d0
lea eax, [edi + 2]
lea eax, [eax + ebx*2]
push eax
lea eax, [esp + 0x224]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcatW]
lea eax, [esp + 0x220]
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
jmp 0x41c157
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x41c157
Function at 0x41c291
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x664
lea eax, [ebp - 0x410]
push ebx
push esi
push edi
mov edi, ecx
push edi
push eax
call fcn.0043f809
lea eax, [ebp - 0x410]
push 0x46c880
push eax
call fcn.0043f82b
lea eax, [ebp - 0x208]
push edi
push eax
call fcn.0043f809
lea eax, [ebp - 0x208]
push 0x466608
push eax
call fcn.0043f82b
add esp, 0x20
lea eax, [ebp - 0x660]
push eax
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x41c3e8
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.0043f809
pop ecx
pop ecx
mov bl, 1
lea eax, [ebp - 0x660]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
je 0x41c3bc
lea ecx, [ebp - 0x634]
call fcn.0041c263
test eax, eax
jne 0x41c3c9
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.0043f82b
test byte [ebp - 0x660], 0x10
pop ecx
pop ecx
je 0x41c379
lea ecx, [ebp - 0x208]
call fcn.0041c291
test eax, eax
je 0x41c3e1
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
jmp 0x41c3a5
test byte [ebp - 0x660], 1
je 0x41c394
push 0x80
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesW]
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
test eax, eax
je 0x41c3e1
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.0043f809
pop ecx
pop ecx
jmp 0x41c3c9
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x12
jne 0x41c3e1
xor bl, bl
test bl, bl
jne 0x41c314
push esi
call dword [sym.imp.KERNEL32.DLL_FindClose]
push edi
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
jmp 0x41c3ea
push esi
call dword [sym.imp.KERNEL32.DLL_FindClose]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41c3f1
Capabilities:
Write file on windows

Disassembly:
push ecx
mov eax, dword [esp + 0xc]
push ebx
push ebp
push esi
xor ebx, ebx
mov ebp, ecx
push edi
mov edi, edx
sub eax, ebx
je 0x41c41a
sub eax, 1
jne 0x41c410
push 4
pop eax
mov ecx, eax
jmp 0x41c422
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
jmp 0x41c422
push 2
mov eax, 0x40000000
pop ecx
push ebx
push 0x80
push ecx
push ebx
push ebx
push eax
push dword [esp + 0x30]
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x41c441
xor al, al
jmp 0x41c47f
cmp dword [esp + 0x1c], 1
jne 0x41c461
push 2
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
jne 0x41c461
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x41c43d
push ebx
lea eax, [esp + 0x14]
push eax
push edi
push ebp
push esi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x41c476
mov bl, 1
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x41c485
Capabilities:
Get file size
Read file on windows

Disassembly:
push ecx
push ebx
push ebp
push edi
xor ebx, ebx
mov ebp, edx
push ebx
push 0x80
push 3
push ebx
push 3
push closesocket
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x41c4af
xor al, al
jmp 0x41c4ed
push esi
push ebx
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov esi, eax
mov ecx, ebp
push ebx
push esi
call fcn.0040244e
push ebx
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ebx
push eax
push esi
mov ecx, ebp
call fcn.00401fab
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
pop esi
test eax, eax
je 0x41c4e4
mov bl, 1
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov al, bl
pop edi
pop ebp
pop ebx
pop ecx
ret

Function at 0x41c515
Capabilities:
Get file size

Disassembly:
push esi
push edi
xor esi, esi
push esi
push 0x80
push 3
push esi
push 1
push closesocket
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x41c53b
xor eax, eax
jmp 0x41c54e
push esi
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, esi
pop edi
pop esi
ret

Function at 0x41c551
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
push edi
mov dword [esp + 0x10], ecx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edi, eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov esi, eax
xor ebx, ebx
test esi, esi
je 0x41c64e
push ebx
inc esi
lea ecx, [esp + 0x34]
push esi
call fcn.0040b904
push esi
lea ecx, [esp + 0x34]
call fcn.00401f04
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
call fcn.00402305
mov edi, eax
lea ecx, [esp + 0x30]
lea eax, [esp + 0x18]
push eax
call fcn.004022ca
mov esi, eax
lea ecx, [esp + 0x30]
lea eax, [esp + 0x1c]
push eax
call fcn.00402305
push dword [edi]
lea ecx, [esp + 0x24]
push dword [esi]
push dword [eax]
call fcn.00409bdb
sub esp, 0xc
mov ecx, esp
push 0x46cadc
call fcn.0040417e
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0040905c
lea ecx, [esp + 0x54]
call fcn.0041bee9
add esp, 0x30
lea ecx, [esp + 0x24]
mov edi, ebx
call fcn.004021fa
test eax, eax
je 0x41c63c
mov esi, ebx
push ebx
push esi
lea ecx, [esp + 0x2c]
call fcn.00401e65
push eax
lea ecx, [esp + 0x38]
call fcn.00409a5e
cmp eax, 0xffffffff
jne 0x41c65f
inc edi
lea ecx, [esp + 0x24]
movzx esi, di
call fcn.004021fa
cmp esi, eax
jb 0x41c611
lea ecx, [esp + 0x24]
call fcn.00406adc
lea ecx, [esp + 0x30]
call fcn.00401f09
lea ecx, [ebp + 8]
call fcn.00401f09
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
test esi, esi
je 0x41c679
lea ecx, [esp + 0x30]
call fcn.00401f04
push eax
push esi
call fcn.0043f809
pop ecx
pop ecx
lea ecx, [esp + 0x24]
call fcn.00406adc
lea ecx, [esp + 0x30]
call fcn.00401f09
mov bl, 1
jmp 0x41c64e
Function at 0x41c9e2
Capabilities:
Change the wallpaper

Disassembly:
push ebx
push esi
push edi
mov edi, edx
sub ecx, 0
je 0x41ca8e
sub ecx, 1
je 0x41ca80
sub ecx, 1
je 0x41ca72
sub ecx, 1
je 0x41ca3f
sub ecx, 1
jne 0x41cad0
push 1
sub esp, 0x18
mov ecx, esp
push 0x46611c
call fcn.00402093
mov esi, str.Control_PanelDesktop
push str.WallpaperStyle
mov edx, esi
call fcn.0041376f
add esp, 0x20
push 1
sub esp, 0x18
mov ecx, esp
push 0x466118
jmp 0x41cabc
push 1
sub esp, 0x18
mov ecx, esp
push 0x46c5f0
call fcn.00402093
mov esi, str.Control_PanelDesktop
push str.WallpaperStyle
mov edx, esi
call fcn.0041376f
add esp, 0x20
push 1
sub esp, 0x18
mov ecx, esp
push 0x46611c
jmp 0x41cabc
push 1
sub esp, 0x18
mov ecx, esp
push 0x46c9f8
jmp 0x41ca4b
push 1
sub esp, 0x18
mov ecx, esp
push 0x466104
jmp 0x41ca4b
push 1
sub esp, 0x18
mov ebx, 0x46611c
mov ecx, esp
push ebx
call fcn.00402093
mov esi, str.Control_PanelDesktop
push str.WallpaperStyle
mov edx, esi
call fcn.0041376f
add esp, 0x20
push 1
sub esp, 0x18
mov ecx, esp
push ebx
call fcn.00402093
push str.TileWallpaper
mov edx, esi
call fcn.0041376f
add esp, 0x20
push 3
push edi
push 0
push 0x14
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
pop edi
pop esi
pop ebx
ret

Function at 0x41cd9b
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
push ebx
mov bl, cl
call dword [sym.imp.KERNEL32.DLL_AllocConsole]
call dword [0x474b18]
test bl, bl
mov dword [0x474b34], eax
pop ebx
jne 0x41cdc3
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
call fcn.0043c1b8
push eax
push 0x46ce14
push str.CONOUT_
call fcn.00441c22
add esp, 0x10
push 0x4e4
call dword [sym.imp.KERNEL32.DLL_SetConsoleOutputCP]
call fcn.0041cd58
push 0x64
lea eax, [ebp - 0x64]
push 0
push eax
call fcn.00436e90
lea eax, [ebp - 0x64]
push str._n_tRemcos_v
push eax
call fcn.00441f60
lea eax, [ebp - 0x64]
push str.4.9.3_Pro
push eax
call fcn.00441f60
lea eax, [ebp - 0x64]
push 0x46cf18
push eax
call fcn.00441f60
lea eax, [ebp - 0x64]
push eax
call fcn.00407200
add esp, 0x28
mov esp, ebp
pop ebp
ret
Function at 0x42f15e
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
test edi, edi
je 0x42f258
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x18]
jne 0x42f17f
test esi, esi
jne 0x42f258
cmp edx, 3
je 0x42f1b5
cmp edx, 4
je 0x42f1b5
cmp edx, 5
je 0x42f1b5
cmp edx, 6
je 0x42f1b5
cmp edx, 7
je 0x42f1b5
cmp edx, 8
je 0x42f1b5
cmp edx, 0xa
je 0x42f1b5
cmp edx, 0xb
je 0x42f1b5
cmp edx, 0xc
je 0x42f1b5
cmp edx, 0xd
jne 0x42f258
xor ebx, ebx
mov byte [edi + 0x114], dl
push ecx
mov byte [edi + 0x115], bl
call fcn.0042f141
mov ebp, eax
pop ecx
test ebp, ebp
jne 0x42f25d
cmp byte [edi + 0x114], 6
lea ecx, [edi + 0x70]
jne 0x42f258
cmp esi, 0x40
ja 0x42f1fb
cmp dword [esp + 0x14], ebx
je 0x42f224
push esi
push dword [esp + 0x18]
push ecx
call fcn.00436910
add esp, 0xc
jmp 0x42f221
mov edx, dword [esp + 0x14]
mov ecx, edi
push esi
call fcn.00434040
mov ebp, eax
pop ecx
test ebp, ebp
jne 0x42f254
lea edx, [edi + 0x70]
mov ecx, edi
call fcn.0043411b
mov ebp, eax
test ebp, ebp
jne 0x42f254
push 0x20
pop esi
lea ecx, [edi + 0x70]
cmp esi, 0x40
jae 0x42f23c
push pe_nt_image_headers32
pop eax
sub eax, esi
push eax
lea eax, [ecx + esi]
push ebx
push eax
call fcn.00436e90
add esp, 0xc
mov al, byte [ebx + edi + 0x70]
xor al, 0x5c
mov byte [edi + ebx + 0xb0], al
xor byte [ebx + edi + 0x70], 0x36
inc ebx
cmp ebx, 0x40
jb 0x42f23c
mov eax, ebp
jmp 0x42f25d
mov eax, 0xffffff53
pop edi
pop esi
pop ebp
pop ebx
ret