joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4caf50
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push esi
mov esi, ecx
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4caf7c
push 0x588b7c
push eax
call fcn.00506c5a
add esp, 8
test eax, eax
je 0x4caf7c
sub eax, dword [esi]
sar eax, 1
cmp eax, 1
je 0x4cafab
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4cb037
push 0x586450
push eax
call fcn.00506c5a
add esp, 8
test eax, eax
je 0x4cb037
sub eax, dword [esi]
sar eax, 1
cmp eax, 1
jne 0x4cb037
push edi
xorps xmm0, xmm0
lea eax, [ebp - 4]
push 3
push eax
mov ecx, esi
movq qword [ebp - 0xc], xmm0
movq qword [ebp - 0x14], xmm0
call fcn.0041ea80
push 0
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0xc]
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov edx, dword [ebp - 4]
mov edi, eax
add edx, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4cb016
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4cb03e
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4cb03e
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
pop edi
je 0x4cb037
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4cb02d
mov eax, dword [ebp - 0xc]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov dword [ecx + 4], eax
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
call esi
jmp 0x4cb016
Function at 0x4cb820
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x567c4d
mov eax, dword fs:[0]
push eax
sub esp, 0x1a0
mov eax, dword [0x5a6124]
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, edx
mov edi, ecx
mov dword [ebp - 0x1a4], edi
push 0xc8
lea eax, [ebp - 0x1a0]
mov dword [ebp - 4], 0
push 0
push eax
mov dword [ebp - 0x1ac], edi
mov dword [ebp - 0x1a8], 0
call fcn.00506b00
push 0xc8
lea eax, [ebp - 0xd8]
push 0
push eax
call fcn.00506b00
add esp, 0x18
call fcn.00408130
mov ecx, eax
test ecx, ecx
jne 0x4cb8ac
push 0x80004005
call fcn.00407c80
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4cb8c1
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x4cb8c3
call edx
add eax, 0x10
mov dword [edi], eax
push 3
lea eax, [ebp - 0x1a4]
mov dword [ebp - 4], 0
push eax
mov ecx, esi
mov dword [ebp - 0x1a8], 1
call fcn.0041ea80
push 0xc8
lea eax, [ebp - 0xd8]
mov dword [ebp - 4], 1
mov esi, dword [ebp - 0x1a4]
push eax
push 0
push 0
push 0
push 0xc8
lea eax, [ebp - 0x1a0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x4cb94e
lea ecx, [ebp - 0xd8]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4cb930
sub ecx, edx
lea eax, [ebp - 0xd8]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00407990
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4cb98f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4cb98d
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4cb98d
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4cb98f
call edx
mov eax, edi
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.00502bf3
mov esp, ebp
pop ebp
ret

Function at 0x4ccc20
Capabilities:
Hash data with md5

Disassembly:
mov dword [ecx], vtable.MD5_CTX.0
xorps xmm0, xmm0
mov dword [ecx + 0x18], 0
mov eax, ecx
mov dword [ecx + 0x14], 0
mov dword [ecx + 4], 0x67452301
mov dword [ecx + 8], 0xefcdab89
mov dword [ecx + 0xc], 0x98badcfe
mov dword [ecx + 0x10], 0x10325476
movups xmmword [ecx + 0x5c], xmm0
movups xmmword [ecx + 0x6c], xmm0
movups xmmword [ecx + 0x7c], xmm0
movups xmmword [ecx + 0x8c], xmm0
mov byte [ecx + 0x5c], 0x80
ret
Function at 0x4ccdd0
Capabilities:
Encrypt data using rc4 prga
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x5a6124]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xor edx, edx
push edi
mov edi, dword [ebp + 8]
lea eax, [esi + 0x16]
nop dword [eax]
movzx ecx, byte [eax - 2]
lea eax, [eax + 4]
mov byte [ebp + edx - 0xc], cl
movzx ecx, byte [eax - 5]
mov byte [ebp + edx - 0xb], cl
movzx ecx, byte [eax - 4]
mov byte [ebp + edx - 0xa], cl
movzx ecx, byte [eax - 3]
mov byte [ebp + edx - 9], cl
add edx, 4
cmp edx, 8
jb 0x4ccdf0
mov edx, dword [esi + 0x14]
lea ebx, [esi + 0x5c]
shr edx, 3
mov ecx, 0x38
and edx, 0x3f
mov eax, 0x78
sub ecx, edx
sub eax, edx
cmp edx, 0x38
cmovb eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.004ccd00
push 8
lea eax, [ebp - 0xc]
mov ecx, esi
push eax
call fcn.004ccd00
lea ecx, [edi + 1]
mov edi, 4
lea edx, [esi + 6]
nop dword [eax]
movzx eax, byte [edx - 2]
lea edx, [edx + 4]
mov byte [ecx - 1], al
lea ecx, [ecx + 4]
movzx eax, byte [edx - 5]
mov byte [ecx - 4], al
movzx eax, byte [edx - 4]
mov byte [ecx - 3], al
movzx eax, byte [edx - 3]
mov byte [ecx - 2], al
sub edi, 1
jne 0x4cce60
xor eax, eax
mov edi, esi
xorps xmm0, xmm0
mov ecx, 0x27
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 4]
mov dword [esi + 0x18], eax
xor ecx, ebp
mov dword [esi + 0x14], eax
mov dword [esi + 4], 0x67452301
mov dword [esi + 8], 0xefcdab89
mov dword [esi + 0xc], 0x98badcfe
mov dword [esi + 0x10], 0x10325476
movups xmmword [ebx], xmm0
pop edi
movups xmmword [ebx + 0x10], xmm0
pop esi
movups xmmword [ebx + 0x20], xmm0
movups xmmword [ebx + 0x30], xmm0
mov byte [ebx], 0x80
pop ebx
call fcn.00502bf3
mov esp, ebp
pop ebp
ret 4
Function at 0x4ce950
Capabilities:
Check for time delay via gettickcount
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
test ebx, ebx
jne 0x4ce96e
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
push ebx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.00489190
mov edi, dword [ebp + 8]
mov ecx, esi
mov eax, dword [edi]
mov dword [edi + 4], eax
call fcn.004cead0
test edx, edx
jne 0x4ce9a4
test eax, eax
je 0x4ce9ac
push eax
mov ecx, edi
call fcn.00489190
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 8], eax
movlpd qword [ebp - 0x18], xmm0
test ecx, ecx
je 0x4ce9e2
cmp dword [ecx], 0
je 0x4ce9e2
push 0
push 0
lea eax, [ebp + 8]
mov dword [ebp + 8], 0
push eax
push 0
push dword [ecx]
call dword [sym.imp.WININET.dll_InternetSetFilePointer]
mov eax, dword [esi + 0x10]
lea ecx, [ebp - 4]
push ecx
push ebx
mov ebx, dword [ebp - 0x24]
push ebx
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
push dword [eax]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4cea9f
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x4ceab4
mov edx, dword [edi + 4]
xor eax, eax
sub edx, dword [edi]
mov ebx, ecx
add ebx, esi
adc eax, dword [ebp + 8]
test eax, eax
jb 0x4cea46
ja 0x4cea38
cmp ebx, edx
jbe 0x4cea46
lea eax, [esi + ecx]
mov ecx, edi
push eax
call fcn.00489190
mov ecx, dword [ebp - 4]
mov eax, dword [edi]
mov ebx, dword [ebp - 0x24]
add eax, esi
push ecx
push ebx
push eax
call fcn.00506580
add esp, 0xc
add esi, dword [ebp - 4]
adc dword [ebp + 8], 0
cmp dword [ebp + 0x10], 0xffffffff
je 0x4cea73
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 8]
cmp eax, dword [ebp + 0x10]
jae 0x4cea9f
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov eax, dword [eax + 0x10]
push ebx
mov dword [ebp - 0xc], 0
push dword [eax]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x4cea15
lea ecx, [ebp - 0x24]
xor esi, esi
call fcn.0047c7a0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea ecx, [ebp - 0x24]
mov esi, 1
call fcn.0047c7a0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4d1ad0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x568149
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push esi
push edi
mov eax, dword [0x5a6124]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], edi
lea esi, [edi + 8]
mov dword [edi], vtable.CMessageCallbackSink_class_CHttpDownloader_.0
mov dword [ebp - 0x18], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.004d4a80
mov dword [esi], eax
mov ecx, edi
mov dword [edi + 4], edi
mov dword [edi + 0x10], 0
call fcn.004d4c80
lea eax, [edi + 0x14]
mov dword [ebp - 4], 0
xorps xmm0, xmm0
push 0
movups xmmword [eax], xmm0
push eax
movq qword [eax + 0x10], xmm0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x4d1b6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x4d1b63
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x4d1b6b
push eax
call fcn.00407c80
mov byte [ebp - 4], 1
lea esi, [edi + 0x2c]
mov dword [ebp - 0x18], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.004d3d90
mov dword [esi], eax
mov dword [edi + 0x34], vtable.ATL::CThreadPool_class_CHttpDownloader::CDownloadWorker__class_ATL::CRTThreadTraits__class_ATL::Win32WaitTraits_.0
xorps xmm0, xmm0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
movups xmmword [edi + 0x48], xmm0
movq qword [edi + 0x58], xmm0
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0x8ca0
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
mov dword [edi + 0x74], 0
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x1c]
mov dword [edi + 0x78], 0
push eax
lea ecx, [edi + 8]
mov dword [ebp - 0x10], 0x547
call fcn.004d51a0
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 8]
mov dword [eax + 0x14], 0x4d22e0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x10], 0x548
push eax
call fcn.004d51a0
mov eax, dword [ebp - 0x1c]
xorps xmm0, xmm0
mov dword [eax + 0x14], 0x4d22e0
lea eax, [ebp - 0x40]
push eax
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov eax, dword [ebp - 0x2c]
mov ecx, 1
test eax, eax
cmove eax, ecx
sub esp, 8
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x34]
add eax, 2
push eax
push edi
call fcn.004d2a20
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4d2960
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x40], 0
je 0x4d2a00
lea eax, [edi + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4d298a
mov eax, dword [edi + 0x30]
push eax
push 0
mov ecx, edi
call fcn.004d30d0
mov esi, dword [edi + 0xc]
sub esi, 1
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
js 0x4d29de
test esi, esi
js 0x4d2a09
cmp esi, dword [edi + 0xc]
jge 0x4d2a09
mov eax, dword [edi + 8]
mov ebx, dword [eax + esi*4]
lea eax, [esp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [esp + 0xc], 0x103
jne 0x4d29d0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
sub esi, 1
jns 0x4d29a2
push dword [edi + 0x40]
call ebx
lea esi, [edi + 0x14]
mov dword [edi + 0x40], 0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push dword [edi + 0x3c]
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]
Function at 0x4d4c80
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x83c
mov eax, dword [0x5a6124]
xor eax, esp
mov dword [esp + 0x838], eax
push esi
mov esi, ecx
push dword [esi + 0x10]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4d4d5f
push 0x2c
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00506b00
push 0x800
lea eax, [esp + 0x48]
mov dword [esp + 0x18], 0x30
push 0
push eax
mov dword [esp + 0x34], 0x400000
call fcn.00506b00
add esp, 0x18
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push 0x588c48
lea eax, [esp + 0x40]
push 0x400
push eax
call fcn.004a20e0
add esp, 0x10
mov dword [esp + 0x10], 0x4d5080
lea eax, [esp + 0x38]
mov dword [esp + 0x30], eax
lea eax, [esp + 8]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
push 0
push dword [esp + 0x20]
push 0
push 0xfffffffffffffffd
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x58]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push eax
mov dword [esi + 0x10], eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4d4d77
push esi
push 0xffffffffffffffeb
push dword [esi + 0x10]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 0
push dword [esi + 0x10]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
pop esi
mov ecx, dword [esp + 0x838]
xor ecx, esp
call fcn.00502bf3
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x83c]
xor eax, eax
pop esi
xor ecx, esp
call fcn.00502bf3
mov esp, ebp
pop ebp
ret
Function at 0x4daa00
Capabilities:
Extract resource via kernel32 functions
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x59df18
push 0x50a5d0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x5a6124]
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 - 0x2c], ecx
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
test edx, edx
je 0x4daa44
mov dword [edx], ebx
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
test edi, edi
je 0x4dabb3
cmp dword [sym.imp.KERNEL32.dll_CloseHandle], ebx
je 0x4dabb3
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov esi, eax
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push dword [ebp - 0x2c]
call edi
mov dword [ebp - 0x2c], eax
cmp eax, 0xffffffff
je 0x4daabd
push 0
push 0
push 0
push 0x1000002
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, eax
mov dword [ebp - 0x28], edi
test edi, edi
je 0x4daabd
push 0
push 0
push 0
push 4
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
mov dword [ebp - 0x24], edi
test edi, edi
cmovne ebx, edi
push esi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
test ebx, ebx
je 0x4dab61
mov dword [ebp - 4], 0
xor edi, edi
mov dword [ebp - 0x20], edi
push 0x10
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x4dab34
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4dab34
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4dab34
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
je 0x4dab34
movzx esi, word [eax]
cmp esi, dword [ebp - 0x1c]
ja 0x4dab2c
mov dword [ebp - 0x1c], esi
add esi, 3
and esi, 0xfffffffc
mov dword [ebp - 0x1c], esi
cmp dword [eax + 0x28], 0xfeef04bd
je 0x4dab39
mov edi, 0xd
mov dword [ebp - 0x20], edi
xor esi, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0xfffffffe
jmp 0x4dab66
mov edi, 0xd
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4dab74
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x28]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x4dab84
push eax
call ebx
mov eax, dword [ebp - 0x2c]
cmp eax, 0xffffffff
je 0x4dab8f
push eax
call ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
je 0x4dabb3
lea eax, [esi*2 + 4]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4dabd0
Capabilities:
Extract resource via kernel32 functions
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x59df38
push 0x50a5d0
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x5a6124]
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 - 0x28], ecx
xor eax, eax
mov dword [ebp - 0x1c], eax
xor esi, esi
xor edi, edi
mov dword [ebp - 0x20], edi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
cmp dword [sym.imp.KERNEL32.dll_CreateFileW], eax
je 0x4dac35
cmp dword [sym.imp.KERNEL32.dll_CloseHandle], eax
je 0x4dac35
cmp dword [ebp + 8], 2
jae 0x4dac49
push 0x7a
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [ebp - 0x2c], eax
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
je 0x4dacb2
push 0
push 0
push 0
push 0x1000002
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, eax
mov dword [ebp - 0x20], edi
test edi, edi
je 0x4dacb2
push 0
push 0
push 0
push 4
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ebx, eax
mov dword [ebp - 0x24], ebx
xor eax, eax
test ebx, ebx
cmovne eax, ebx
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4dad6b
push 0x10
push 1
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x4dad69
push eax
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ecx, eax
test ecx, ecx
je 0x4dad69
mov dword [ebp - 4], esi
movzx esi, word [ecx]
mov dword [ebp - 0x2c], esi
lea eax, [esi*2 + 4]
mov edx, dword [ebp + 8]
cmp eax, edx
jbe 0x4dad14
mov esi, edx
shr esi, 1
sub esi, 4
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], 1
jmp 0x4dad1b
mov dword [ebp - 0x1c], 0
push esi
push ecx
push dword [ebp + 0xc]
call fcn.00506580
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [esi + eax], 0x58324546
cmp dword [ebp - 0x1c], 0
je 0x4dad3b
mov word [eax], si
mov esi, 1
mov dword [ebp - 0x30], esi
mov dword [ebp - 4], 0xfffffffe
jmp 0x4dad6b
xor esi, esi
test ebx, ebx
je 0x4dad76
push ebx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x4dad83
push edi
call ebx
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0x4dad8e
push eax
call ebx
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4daea0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x858
mov eax, dword [0x5a6124]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
push edi
mov edi, dword [ebp + 0xc]
test esi, esi
jne 0x4daed7
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00502bf3
mov esp, ebp
pop ebp
ret 0x14
push 0x800
lea eax, [ebp - 0x804]
push 0
push eax
call fcn.00506b00
add esp, 0xc
lea eax, [ebp - 0x804]
test edi, edi
je 0x4daf0a
push edi
push esi
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x4daf1a
push esi
push 0x583b34
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x40
lea eax, [ebp - 0x854]
push 0
push eax
call fcn.00506b00
mov ax, word [ebp + 0x18]
add esp, 0xc
mov word [ebp - 0x828], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x814]
mov dword [ebp - 0x858], 0x44
movups xmmword [ebp - 0x814], xmm0
push eax
lea eax, [ebp - 0x858]
mov dword [ebp - 0x82c], 1
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x804]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x4daec2
cmp dword [ebp + 0x10], 0
je 0x4dafa9
push dword [ebp + 0x14]
push dword [ebp - 0x814]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
push dword [ebp - 0x814]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x814]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x810]
call esi
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00502bf3
mov esp, ebp
pop ebp
ret 0x14

Function at 0x4dafe0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x5a6124]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
test esi, esi
je 0x4db0ad
mov eax, dword [0x585e0c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x22], xmm0
push 0x38
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x5c]
movq qword [ebp - 0x12], xmm0
movq xmm0, qword [str.runas]
push 0
push eax
mov dword [ebp - 0xa], 0
mov word [ebp - 6], 0
movq qword [ebp - 0x24], xmm0
call fcn.00506b00
add esp, 0xc
mov dword [ebp - 0x60], 0x3c
lea eax, [ebp - 0x24]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x60]
mov dword [ebp - 0x4c], ebx
push eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x5c], 0x40
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x4db0ad
cmp dword [ebp + 0x10], 0
je 0x4db08c
push dword [ebp + 0x14]
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00502bf3
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00502bf3
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4e1d60
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x569764
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x5a6124]
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, dword [0x5a96bc]
test esi, esi
jne 0x4e1dc5
push 0x120
call fcn.00502524
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], esi
test eax, eax
je 0x4e1db6
mov ecx, eax
call fcn.004e1760
mov esi, eax
jmp 0x4e1db8
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x5a96bc], esi
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4e1e82
push 1
mov ecx, esi
call fcn.00415a40
push 0xc0
call fcn.00502524
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x4e1e05
mov ecx, eax
call fcn.0042a920
mov edi, eax
jmp 0x4e1e07
xor edi, edi
push 3
push 0x83
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
call fcn.0042a5b0
push 2
mov ecx, edi
call fcn.0042b8a0
movaps xmm0, xmmword [0x56db50]
sub esp, 0x10
mov eax, esp
mov ecx, edi
movups xmmword [eax], xmm0
call fcn.0042b9f0
push edi
mov ecx, esi
call fcn.00415a60
push 0
mov ecx, esi
call fcn.00414010
movaps xmm0, xmmword [0x56df90]
push 0
push ecx
mov eax, esp
push 0x40000
push SysReAllocString
push 0x583bcc
push ecx
mov dword [eax], 0
lea ecx, [ebp - 0x20]
mov eax, esp
movups xmmword [ebp - 0x20], xmm0
push 0
mov dword [eax], ecx
mov ecx, esi
call fcn.00412660
push 1
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, esi
call fcn.00415bb0
push eax
call fcn.00478db0
add esp, 4
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.00502bf3
mov esp, ebp
pop ebp
ret