joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401120
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43f898
mov eax, dword fs:[0]
push eax
push esi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], edx
mov edx, dword [ebp + 0xc]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], ecx
mov dword [esi + 8], edx
mov dword [esi + 4], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [ebp - 4], eax
push ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x60], ecx
push eax
mov ecx, esi
mov dword [esi], vtable.TrButton.0
mov dword [esi + 0x50], eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], eax
mov dword [esi + 0x54], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x64], eax
call fcn.004011d0
mov eax, dword [esi + 0x40]
mov dword [esi + 0x3c], eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x401ac0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4400ee
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor ebx, ebx
mov eax, 0xf
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], ebx
mov byte [esi + 0x38], bl
mov dword [ebp - 4], ebx
mov dword [esi + 0x68], eax
mov dword [esi + 0x64], ebx
mov byte [esi + 0x54], bl
mov dword [esi + 0x84], eax
mov dword [esi + 0x80], ebx
mov byte [esi + 0x70], bl
mov dword [esi + 0xa0], eax
mov dword [esi + 0x9c], ebx
mov byte [esi + 0x8c], bl
mov byte [ebp - 4], 3
push 0x30
mov dword [esi + 0xb0], ebx
call fcn.0042919d
add esp, 4
cmp eax, ebx
je 0x401bf4
mov dword [esi + 0xac], eax
mov dword [eax], eax
mov eax, dword [esi + 0xac]
mov dword [eax + 4], eax
mov eax, dword [esi + 0xac]
mov dword [eax + 8], eax
mov ecx, dword [esi + 0xac]
mov eax, 1
mov byte [ecx + 0x2c], al
mov edx, dword [esi + 0xac]
mov byte [edx + 0x2d], al
mov byte [ebp - 4], 4
push ebx
push 0x445abc
lea ecx, [esi + 0x8c]
mov dword [esi + 4], ebx
mov dword [esi], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
mov byte [esi + 0xb8], 0xe9
mov dword [esi + 0x24], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
call fcn.00407c10
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x70]
call fcn.004080b0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x54]
call fcn.004080b0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x38]
call fcn.004080b0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x10], ebx
call fcn.004292f6
push 0x44b6a0
lea ecx, [ebp - 0x1c]
push ecx
mov dword [ebp - 0x1c], vtable.std::bad_alloc.0
call fcn.0042b568
int3
Function at 0x404280
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43f69b
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea ecx, [esi + 4]
mov dword [esi], vtable.std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__.0
call fcn.00414a62
push 4
mov dword [ebp - 4], 0
call fcn.0042919d
mov edi, eax
add esp, 4
test edi, edi
je 0x4042fc
call fcn.00414d15
mov dword [edi], eax
call fcn.00414bcf
push 0
lea ecx, [ebp - 0x10]
mov ebx, eax
call fcn.00414b04
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
jae 0x4042f2
inc eax
mov dword [ebx + 4], eax
lea ecx, [ebp - 0x10]
call fcn.00414b2c
jmp 0x4042fe
xor edi, edi
lea eax, [esi + 8]
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x18]
mov dword [esi + 0x20], ecx
lea edx, [esi + 0x1c]
mov dword [esi + 0x24], edx
mov dword [esi + 0x38], edi
lea eax, [esi + 0xc]
mov dword [esi + 0x14], eax
lea ecx, [esi + 0x28]
mov dword [esi + 0x30], ecx
lea edx, [esi + 0x2c]
mov dword [esi + 0x34], edx
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov edx, dword [esi + 0x10]
mov dword [edx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x407720
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor esi, esi
push esi
mov ecx, 0x4513ec
call fcn.00414717
mov ebx, eax
mov dword [ebp - 4], 1
test ebx, ebx
je 0x4077d4
test esi, esi
jne 0x4077d4
mov eax, dword [ebp + 8]
shr eax, 4
inc eax
push esi
movzx ecx, ax
push ecx
push 6
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
mov edi, eax
test edi, edi
je 0x4077b8
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4077b2
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x4077b2
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 8]
add eax, esi
and ecx, 0xf
jbe 0x4077a1
cmp esi, eax
jae 0x4077a5
dec ecx
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x407793
cmp esi, eax
jb 0x4077a9
xor eax, eax
jmp 0x4077b2
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
mov esi, eax
test eax, eax
jne 0x4077dd
mov edi, dword [ebp - 4]
push edi
mov ecx, 0x4513ec
call fcn.00414717
mov ebx, eax
inc edi
mov dword [ebp - 4], edi
test ebx, ebx
jne 0x407745
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4078c0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
mov eax, dword [ebp + 8]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x4078d8
pop edi
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x40790a
mov ecx, dword [ebp + 8]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, esi
and edi, 0xf
jbe 0x407906
cmp esi, eax
jae 0x40790a
dec edi
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x4078f8
cmp esi, eax
jb 0x407910
pop esi
xor eax, eax
pop edi
pop ebp
ret
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebp
ret
Function at 0x408f70
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 8
push esi
push edi
push 0
mov dword [eax], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, dword [ebp + 0xc]
movzx edx, word [ebp + 8]
push ecx
mov esi, eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x408fa7
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
mov dword [ebp - 8], esi
test esi, esi
jne 0x408fca
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push ebx
push esi
push eax
call fcn.0042b670
add esp, 0xc
lea eax, [ebp - 4]
push eax
push 0
push edi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ebx, dword [ebp - 4]
push 0x10
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov esi, eax
test esi, esi
je 0x409028
lea ecx, [ebp + 8]
push ecx
push ebx
mov dword [esi], vtable.Gdiplus::Bitmap.0
mov dword [ebp + 8], 0
call dword [sym.imp.gdiplus.dll_GdipCreateBitmapFromStream]
mov edx, dword [ebp + 8]
mov dword [esi + 8], eax
mov dword [esi + 4], edx
jmp 0x40902a
xor esi, esi
mov eax, dword [ebp + 0x10]
push edi
mov dword [eax], esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop ebx
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x409060
Capabilities:
Extract resource via kernel32 functions
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4406d8
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x448040
mov esi, eax
push 0xa7
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x4091ae
push 0xa7
lea edi, [ebp - 0x1c]
call fcn.00402860
add esp, 4
lea ecx, [ebp - 0x18]
push 0x447394
push ecx
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00401fc0
push eax
lea edx, [ebp - 0x14]
push edx
mov ebx, 0x447384
mov byte [ebp - 4], 1
call fcn.00409a80
push eax
lea eax, [ebp - 0x10]
push eax
mov ebx, 0x448040
mov byte [ebp - 4], 2
call fcn.00409a80
mov eax, dword [eax]
add esp, 0x18
push 0
push 0x44737c
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40912e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409151
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409174
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40919a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push edi
push esi
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 8]
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
push ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push esi
push 0
push 4
mov edi, eax
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
push 0
push 0
push 0
mov ebx, eax
push 2
push ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edx, dword [ebp - 0x1c]
push esi
push edx
push eax
mov dword [ebp - 0x18], eax
call fcn.0042b670
mov eax, dword [ebp - 0x18]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call esi
push edi
call esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x409e90
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43f8d5
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
xor edi, edi
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x14], ecx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0xc], edx
mov dword [esi + 8], eax
mov dword [esi + 4], 1
mov dword [esi + 0x34], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [ebp - 4], edi
mov dword [esi], vtable.TrImage.0
push 0x18
mov dword [esi + 0x48], edi
call fcn.0042919d
add esp, 4
cmp eax, edi
je 0x409f3b
mov dword [esi + 0x44], eax
mov dword [eax], eax
mov eax, dword [esi + 0x44]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x44]
mov dword [eax + 8], eax
mov ecx, dword [esi + 0x44]
mov byte [ecx + 0x14], 1
mov edx, dword [esi + 0x44]
mov byte [edx + 0x15], 1
mov dword [esi + 0x28], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x38], edi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp + 0x10], edi
call fcn.004292f6
push 0x44b6a0
lea ecx, [ebp - 0x18]
push ecx
mov dword [ebp - 0x18], vtable.std::bad_alloc.0
call fcn.0042b568
int3
Function at 0x40c020
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x440b20
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x44fb90]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 9
xor ebx, ebx
push str.iMoneyMTP
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
call fcn.00407c10
lea edx, [ebp - 0x2c]
mov ecx, edi
mov dword [ebp - 4], ebx
call fcn.0040e160
mov esi, eax
cmp dword [esi + 0x18], ebx
je 0x40c098
cmp dword [ebp - 0x18], 0x10
jb 0x40c08e
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00429183
add esp, 4
mov eax, 1
jmp 0x40c204
mov eax, 1
mov dword [esi], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], 2
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x34]
cmp eax, ebx
jne 0x40c0c0
xor eax, eax
jmp 0x40c0d7
mov ecx, dword [eax + 0x1c]
push 0x40
push 0x1000
push 0x1000
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x54], esp
mov dword [esi + 4], eax
push 0x65
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push str.8B_54_24_10_83_FA_00_7E_14_83_3D_00_02_45_24_00_74_0B_0F_AF_15_00_02_45_24_89_54_24_10_8B_54_24_10_52
mov byte [ecx], bl
call fcn.00407c10
sub esp, 0x1c
mov byte [ebp - 4], 1
mov ecx, esp
mov dword [ebp - 0x50], esp
push 0xe
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push str.8B_54_24_10_52
mov byte [ecx], bl
call fcn.00407c10
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x4c], esp
mov byte [ebp - 4], 2
push 0x1c
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push str.8B_54_24_10_52_E8_____33
mov byte [ecx], bl
call fcn.00407c10
mov ecx, esi
mov byte [ebp - 4], bl
call fcn.004019f0
mov eax, dword [esi + 4]
push eax
lea ecx, [esi + 0x70]
mov edx, 0x24450000
call fcn.00401c20
push 4
push str.MTP1
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x34], 0xf
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x48], bl
call fcn.00407c10
mov byte [ebp - 4], 3
mov esi, dword [esi + 4]
lea edx, [ebp - 0x48]
mov ecx, edi
add esi, 0x200
call fcn.0040e160
mov dword [eax], esi
mov esi, 1
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ebx
mov dword [eax + 0x28], esi
mov dword [eax + 0x20], ebx
mov dword [eax + 0x30], 2
mov byte [ebp - 4], bl
cmp dword [ebp - 0x34], 0x10
jb 0x40c1bf
mov edx, dword [ebp - 0x48]
push edx
call fcn.00429183
add esp, 4
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push esi
push esi
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x2c]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push eax
mov byte [ecx], bl
call fcn.004080b0
mov ecx, edi
call fcn.0040cd20
cmp dword [ebp - 0x18], 0x10
mov esi, eax
jb 0x40c202
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00429183
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042918e
mov esp, ebp
pop ebp
ret
Function at 0x40d830
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4409c8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
cmp dword [edi + 0xa8], ebx
jne 0x40d96e
mov esi, dword [edi + 0x18]
push ecx
mov eax, esp
mov dword [ebp - 0x10], esp
push eax
mov ecx, 0x4477d0
call fcn.00402a70
mov ecx, esi
lea esi, [ebp - 0x24]
call fcn.00411d40
add esp, 4
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x24]
cmp eax, 0x10000
jae 0x40d8d8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov dword [edi + 0xa8], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d978
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x20]
push ebx
push ebx
add ecx, eax
push ecx
push eax
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], ebx
push 0x21
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push str.__FF_75_14_8B_CE_FF_75_10_53_E8
mov byte [ecx], 0
call fcn.00407c10
lea esi, [edi + 0x34]
push esi
call fcn.00410fe0
lea edx, [ebp - 0x10]
push edx
push 0x40
mov ebx, eax
mov eax, dword [edi + 0x2c]
push 0x100
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov esi, dword [esi]
mov dword [ebp - 0x14], 0x14eb
test esi, esi
je 0x40d948
mov edx, dword [esi + 0x1c]
push 0
push 2
lea ecx, [ebp - 0x14]
push ecx
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d96e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [edi + 0xa8], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40e5a0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43fd6f
mov eax, dword fs:[0]
push eax
push ebx
push esi
mov eax, dword [0x44fb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
mov edx, dword [edi + 8]
mov dword [esi + 8], edx
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x10], ecx
mov edx, dword [edi + 0x14]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov ecx, dword [edi + 0x1c]
mov dword [esi + 0x1c], ecx
mov edx, dword [edi + 0x20]
mov dword [esi + 0x20], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
mov ecx, dword [edi + 0x28]
mov dword [esi + 0x28], ecx
mov edx, dword [edi + 0x2c]
mov dword [esi + 0x2c], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov ecx, dword [edi + 0x34]
mov dword [esi + 0x34], ecx
xor ebx, ebx
push 0xffffffffffffffff
lea ecx, [esi + 0x38]
push ebx
lea edx, [edi + 0x38]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
mov byte [ecx], bl
call fcn.004080b0
push 0xffffffffffffffff
lea ecx, [esi + 0x54]
mov dword [ebp - 4], ebx
push ebx
lea eax, [edi + 0x54]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push eax
mov byte [ecx], bl
call fcn.004080b0
push 0xffffffffffffffff
lea ecx, [esi + 0x70]
mov byte [ebp - 4], 1
push ebx
lea edx, [edi + 0x70]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
mov byte [ecx], bl
call fcn.004080b0
push 0xffffffffffffffff
lea ecx, [esi + 0x8c]
mov byte [ebp - 4], 2
push ebx
lea eax, [edi + 0x8c]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push eax
mov byte [ecx], bl
call fcn.004080b0
lea ecx, [edi + 0xa8]
push ecx
lea edx, [esi + 0xa8]
push edx
mov byte [ebp - 4], 3
call fcn.0040ea80
mov al, byte [edi + 0xb8]
mov byte [esi + 0xb8], al
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x410f70
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [esi], eax
xor eax, eax
lea ecx, [ebp - 4]
push ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
cmp dword [ebp - 4], 0
je 0x410fc7
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov eax, dword [ebp - 0x24]
mov dword [esi + 4], eax
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [ebp - 0x24]
mov dword [esi + 4], edx
mov esp, ebp
pop ebp
ret
Function at 0x42918e
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x44fb90]
jne 0x429198
repz ret
jmp fcn.00430475

Function at 0x43a24c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x44fb90]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.004313e2
and dword [ebp - 0x14], 0
cmp dword [0x4525c8], 0
mov dword [ebp - 0x18], eax
jne 0x43a2ff
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x43a3a7
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x445a24
push ebx
call edi
test eax, eax
je 0x43a3a7
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x4525c8], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x4525cc], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x4525d0], eax
call edi
push eax
call esi
mov dword [0x4525d8], eax
test eax, eax
je 0x43a2ff
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x4525d4], eax
mov eax, dword [0x4525d4]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x43a358
cmp dword [0x4525d8], ecx
je 0x43a358
push eax
call esi
push dword [0x4525d8]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x43a358
test ebx, ebx
je 0x43a358
call edi
test eax, eax
je 0x43a34f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x43a34f
test byte [ebp - 8], 1
jne 0x43a358
or dword [ebp + 0x10], 0x200000
jmp 0x43a38b
mov eax, dword [0x4525cc]
cmp eax, dword [ebp - 0x18]
je 0x43a38b
push eax
call esi
test eax, eax
je 0x43a38b
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x43a38b
mov eax, dword [0x4525d0]
cmp eax, dword [ebp - 0x18]
je 0x43a38b
push eax
call esi
test eax, eax
je 0x43a38b
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x4525c8]
call esi
test eax, eax
je 0x43a3a7
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x43a3a9
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042918e
leave
ret