joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4161a0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 0x10], ecx
xor eax, eax
cmp dword [ebp + 0x10], 0
setne al
mov dword [ebp - 0xc], eax
xor ecx, ecx
jne 0x4161b5
xor edx, edx
jne 0x4161b5
cmp dword [ebp - 0xc], 0
jne 0x4161cd
push 0x80004005
call fcn.004064e0
xor eax, eax
jne 0x4161a9
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 4]
push eax
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 8], eax
cmp dword [ebp + 8], 0
je 0x4162e0
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
jbe 0x4162d8
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jbe 0x4162c7
cmp dword [ebp - 0x14], 2
jbe 0x416230
cmp dword [ebp - 0x14], 7
je 0x416266
jmp 0x4162c7
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jne 0x416255
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
shr eax, 1
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + eax*2 - 2]
test edx, edx
je 0x416264
xor eax, eax
mov ecx, dword [ebp + 8]
mov word [ecx], ax
mov eax, 0xd
jmp 0x4162e3
jmp 0x4162d6
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jne 0x4162b6
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
shr eax, 1
cmp eax, 1
jb 0x4162b6
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
shr edx, 1
mov eax, dword [ebp + 8]
movzx ecx, word [eax + edx*2 - 2]
test ecx, ecx
jne 0x4162b6
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
shr eax, 1
cmp eax, 1
jbe 0x4162c5
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
shr edx, 1
mov eax, dword [ebp + 8]
movzx ecx, word [eax + edx*2 - 4]
test ecx, ecx
je 0x4162c5
xor edx, edx
mov eax, dword [ebp + 8]
mov word [eax], dx
mov eax, 0xd
jmp 0x4162e3
jmp 0x4162d6
xor ecx, ecx
mov edx, dword [ebp + 8]
mov word [edx], cx
mov eax, 0xd
jmp 0x4162e3
jmp 0x4162e0
xor eax, eax
mov ecx, dword [ebp + 8]
mov word [ecx], ax
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4162f0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0x10], ecx
xor eax, eax
jne 0x4162f9
xor ecx, ecx
jne 0x4162f9
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
shl eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 4]
push ecx
push 0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x416340
mov eax, dword [ebp - 0xc]
jmp 0x41639d
cmp dword [ebp - 4], 1
je 0x416353
cmp dword [ebp - 4], 2
je 0x416353
mov eax, 0xd
jmp 0x41639d
cmp dword [ebp + 0xc], 0
je 0x416391
cmp dword [ebp - 8], 0
je 0x416389
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jne 0x416380
mov edx, dword [ebp - 8]
shr edx, 1
mov eax, dword [ebp + 0xc]
movzx ecx, word [eax + edx*2 - 2]
test ecx, ecx
je 0x416387
mov eax, 0xd
jmp 0x41639d
jmp 0x416391
xor edx, edx
mov eax, dword [ebp + 0xc]
mov word [eax], dx
mov ecx, dword [ebp - 8]
shr ecx, 1
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
xor eax, eax
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4178d0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x417934
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x3a8]
test edx, edx
je 0x417910
push 5
push 0
push 0
mov eax, dword [ebp - 4]
add eax, 0x10c
call fcn.00405aa0
push eax
push 0x465a4c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x384]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x5c]
call edx
mov eax, 2
mov esi, dword [ebp - 4]
call fcn.00404e70
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x41d97a
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x475080]
jne 0x41d984
repz ret
jmp fcn.0041ec64

Function at 0x426111
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x475080]
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.0042202c
and dword [ebp - 0x14], 0
cmp dword [0x477fb8], 0
mov dword [ebp - 0x18], eax
jne 0x4261c4
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x42626c
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x45fe5c
push ebx
call edi
test eax, eax
je 0x42626c
mov esi, dword [0x475e90]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x477fb8], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x477fbc], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x477fc0], eax
call edi
push eax
call esi
mov dword [0x477fc8], eax
test eax, eax
je 0x4261c4
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x477fc4], eax
mov eax, dword [0x477fc4]
mov ecx, dword [ebp - 0x18]
mov esi, dword [0x475e94]
cmp eax, ecx
je 0x42621d
cmp dword [0x477fc8], ecx
je 0x42621d
push eax
call esi
push dword [0x477fc8]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x42621d
test ebx, ebx
je 0x42621d
call edi
test eax, eax
je 0x426214
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x426214
test byte [ebp - 8], 1
jne 0x42621d
or dword [ebp + 0x10], 0x200000
jmp 0x426250
mov eax, dword [0x477fbc]
cmp eax, dword [ebp - 0x18]
je 0x426250
push eax
call esi
test eax, eax
je 0x426250
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x426250
mov eax, dword [0x477fc0]
cmp eax, dword [ebp - 0x18]
je 0x426250
push eax
call esi
test eax, eax
je 0x426250
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x477fb8]
call esi
test eax, eax
je 0x42626c
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x42626e
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041d97a
leave
ret
Function at 0x428940
Capabilities:
Encrypt data using rc4 prga
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x469e98
push 0x41ef30
mov eax, dword fs:[0]
push eax
add esp, 0xffffffc8
push ebx
push esi
push edi
mov eax, dword [0x475080]
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 eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 8], 0
jne 0x42898a
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x1c]
movzx edx, word [ecx]
cmp edx, 0x5a4d
je 0x4289c0
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x34], 0
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x34]
jmp 0x428b4b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
cmp dword [edx], 0x4550
je 0x4289f8
push 0xbf
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x38], 0
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x38]
jmp 0x428b4b
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax + 0x14]
test ecx, ecx
jne 0x428a24
push 0xc0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x3c]
jmp 0x428b4b
mov edx, dword [ebp - 0x24]
movzx eax, word [edx + 0x14]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx + eax + 0x18]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], 0
jmp 0x428a47
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx + 6]
cmp dword [ebp - 0x28], edx
jae 0x428af6
push 0x46077c
mov eax, dword [ebp - 0x28]
imul eax, eax, 0x28
add eax, dword [ebp - 0x20]
push eax
call fcn.0041f990
add esp, 8
test eax, eax
jne 0x428af1
mov ecx, dword [ebp - 0x28]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x20]
cmp dword [edx + ecx + 0xc], 0
je 0x428a92
mov eax, dword [ebp - 0x28]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + eax + 0x10], 0
jne 0x428a94
jmp 0x428af6
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + edx + 0xc]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0x40
jb 0x428ac1
mov ecx, dword [ebp - 0x2c]
cmp dword [ecx + 4], 0x727444
je 0x428ac3
jmp 0x428af6
mov edx, dword [ebp - 0x2c]
cmp dword [edx + 8], 0
jne 0x428ad7
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [eax + 8], edx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x40]
jmp 0x428b4b
jmp 0x428a3e
push 0xc0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x44], 0
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x44]
jmp 0x428b4b
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x428e00
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp dword [ecx], 0x678
jne 0x428e21
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
cmp eax, dword [ebp + 0xc]
jbe 0x428e33
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x428f7b
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 8], 0
lea ecx, [ebp - 0x14]
push ecx
push 0x40
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x428f78
lea eax, [ebp - 4]
push eax
push 0x40
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x428f5c
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x1c
push ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x10]
push eax
call fcn.0041f250
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x18]
add eax, 0x5c
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x14]
push edx
call fcn.0041f250
add esp, 0xc
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x18], 0
je 0x428f39
lea ecx, [ebp - 0x10]
push ecx
push 0x40
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x428f37
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x18]
add edx, 0x664
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.0041f250
add esp, 0xc
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 8], 1
jmp 0x428f40
mov dword [ebp - 8], 1
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret 8
Function at 0x429290
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x477fdc]
mov dword [ebp - 4], eax
jmp 0x4292a9
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
je 0x4292c6
lea eax, [ebp - 8]
push eax
push 0x40
push 0x10000
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
jmp 0x4292a0
mov esp, ebp
pop ebp
ret

Function at 0x4292d0
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x477fec], eax
je 0x4292ee
mov eax, 0x10dd
jmp 0x4293cf
mov eax, dword [0x477ffc]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x42936c
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
movzx eax, byte [edx + 0x36]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
jne 0x42934a
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
je 0x42934a
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
call fcn.00429440
add esp, 4
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10], 0
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.0041d96f
add esp, 4
mov eax, dword [ebp - 8]
mov dword [ebp - 4], eax
jmp 0x4292f6
mov dword [0x477ffc], 0
call fcn.004293e0
mov ecx, dword [0x477ff8]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
je 0x4293b9
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0041d96f
add esp, 4
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x429384
mov dword [0x477ff8], 0
mov dword [0x477fec], 0
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x429940
Capabilities:
Hook routines via microsoft detours

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
cmp dword [eax], 0x52727464
je 0x429955
xor eax, eax
jmp 0x4299ca
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, 0x10000
mov dword [ebp - 8], edx
mov eax, dword [ebp + 8]
add eax, 0x48
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0
jmp 0x429982
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0x38d
jae 0x4299c5
mov edx, dword [ebp - 0x10]
imul edx, edx, 0x48
mov eax, dword [ebp - 0xc]
cmp dword [eax + edx + 0x40], 0
je 0x4299c3
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x48
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + ecx + 0x40]
cmp eax, dword [ebp - 4]
jb 0x4299bf
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x48
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + ecx + 0x40]
cmp eax, dword [ebp - 8]
jb 0x4299c3
xor eax, eax
jmp 0x4299ca
jmp 0x429979
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x429a70
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
cmp dword [0x477ff0], 0
je 0x429a89
mov eax, dword [0x477ff0]
jmp 0x429b29
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
cmp dword [ebp + 8], eax
jne 0x429a9b
xor eax, eax
jmp 0x429b29
push 8
call fcn.0041e086
add esp, 4
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x429af1
mov dword [ebp - 4], 8
cmp dword [ebp - 8], 0
je 0x429ada
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0041d96f
add esp, 4
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
mov dword [0x477ff0], eax
mov dword [0x477ff4], 0
mov eax, dword [ebp - 4]
jmp 0x429b29
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
jne 0x429b0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
jmp 0x429abb
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 8]
mov edx, dword [0x477ff8]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
mov dword [0x477ff8], eax
xor eax, eax
mov esp, ebp
pop ebp
ret 4
Function at 0x42a350
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
push eax
call fcn.0042a420
add esp, 4
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 0xc]
jae 0x42a40c
cmp dword [ebp - 4], 0x50000000
jb 0x42a38c
cmp dword [ebp - 4], 0x80000000
ja 0x42a38c
mov dword [ebp - 4], 0x80010000
jmp 0x42a365
push 0x1c
push 0
lea edx, [ebp - 0x20]
push edx
call fcn.0041eb30
add esp, 0xc
push 0x1c
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
jne 0x42a3b2
jmp 0x42a40c
cmp dword [ebp - 0x10], 0x10000
jne 0x42a3f5
cmp dword [ebp - 0x14], 0x10000
jb 0x42a3f5
push 0x40
push 0x3000
push 0x10000
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x42a3e8
mov eax, dword [ebp - 0x24]
jmp 0x42a40e
mov eax, dword [ebp - 4]
add eax, 0x10000
mov dword [ebp - 4], eax
jmp 0x42a407
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x14]
push ecx
call fcn.0042a420
add esp, 4
mov dword [ebp - 4], eax
jmp 0x42a365
xor eax, eax
mov esp, ebp
pop ebp
ret

Function at 0x42a450
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 0xc]
sub eax, 0x10000
push eax
call fcn.0042a520
add esp, 4
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 8]
jbe 0x42a514
cmp dword [ebp - 4], 0x50000000
jb 0x42a491
cmp dword [ebp - 4], 0x80000000
ja 0x42a491
mov dword [ebp - 4], 0x4fff0000
jmp 0x42a46a
push 0x1c
push 0
lea edx, [ebp - 0x20]
push edx
call fcn.0041eb30
add esp, 0xc
push 0x1c
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
jne 0x42a4b7
jmp 0x42a514
cmp dword [ebp - 0x10], 0x10000
jne 0x42a4fa
cmp dword [ebp - 0x14], 0x10000
jb 0x42a4fa
push 0x40
push 0x3000
push 0x10000
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x42a4ed
mov eax, dword [ebp - 0x24]
jmp 0x42a516
mov eax, dword [ebp - 4]
sub eax, 0x10000
mov dword [ebp - 4], eax
jmp 0x42a50f
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x10000
push ecx
call fcn.0042a520
add esp, 4
mov dword [ebp - 4], eax
jmp 0x42a46a
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x42a550
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x477fec], eax
je 0x42a575
mov eax, 0x10dd
jmp 0x42a70d
cmp dword [0x477ff0], 0
je 0x42a588
mov eax, dword [0x477ff0]
jmp 0x42a70d
cmp dword [ebp + 8], 0
jne 0x42a598
mov eax, 6
jmp 0x42a70d
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x42a5c1
mov dword [ebp - 0xc], 6
mov ecx, dword [ebp - 0xc]
mov dword [0x477ff0], ecx
mov edx, dword [ebp + 8]
mov dword [0x477ff4], edx
mov eax, dword [ebp - 0xc]
jmp 0x42a70d
push 0x18
call fcn.0041e086
add esp, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x42a61a
mov dword [ebp - 0xc], 8
mov ecx, dword [ebp - 0xc]
mov dword [0x477ff0], ecx
cmp dword [ebp - 0x18], 0
je 0x42a609
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
push eax
call fcn.0041d96f
add esp, 4
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp + 8]
mov dword [0x477ff4], ecx
mov eax, dword [ebp - 0xc]
jmp 0x42a70d
push 0
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
call fcn.00428fd0
mov dword [ebp - 0x10], eax
push 0
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00428fd0
mov dword [ebp + 0xc], eax
mov edx, dword [ebp - 0x10]
movzx eax, byte [edx + 0x36]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x40]
sub edx, dword [ebp - 8]
mov dword [ebp - 4], edx
cmp dword [ebp - 8], 0
je 0x42a65a
cmp dword [ebp - 8], 0x1e
jbe 0x42a676
mov dword [ebp - 0xc], 9
cmp dword [0x477fe4], 0
je 0x42a671
jmp 0x42a5ea
jmp 0x42a5e1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [ebp + 0xc]
je 0x42a69d
mov dword [ebp - 0xc], 9
cmp dword [0x477fe4], 0
je 0x42a698
jmp 0x42a5ea
jmp 0x42a5e1
mov dword [ebp - 0x14], 0
lea edx, [ebp - 0x14]
push edx
push 0x40
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x42a6ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xc], eax
jmp 0x42a5e1
mov edx, dword [ebp - 0x18]
mov dword [edx + 4], 1
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [0x477ffc]
mov dword [edx], eax
mov ecx, dword [ebp - 0x18]
mov dword [0x477ffc], ecx
xor eax, eax
mov esp, ebp
pop ebp
ret 8
Function at 0x42aaf0
Capabilities:
Encrypt data using rc4 prga
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x469ef8
push 0x41ef30
mov eax, dword fs:[0]
push eax
add esp, 0xffffff8c
mov eax, dword [0x475080]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x3c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
cmp dword [ebp + 0xc], 0
jne 0x42ab35
mov dword [ebp - 0x1c], 0x10000
jmp 0x42ab40
mov eax, dword [ebp + 0xc]
add eax, 0x10000
mov dword [ebp - 0x1c], eax
push 0x1c
push 0
lea ecx, [ebp - 0x38]
push ecx
call fcn.0041eb30
add esp, 0xc
jmp 0x42ab5b
mov edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], edx
push 0x1c
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
test eax, eax
jne 0x42ab78
jmp 0x42ac97
mov eax, dword [ebp - 0x2c]
and eax, 0xfff
cmp eax, 0xfff
jne 0x42ab8c
jmp 0x42ac97
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x1c]
jae 0x42ab9c
jmp 0x42ac97
cmp dword [ebp - 0x28], 0x1000
jne 0x42abbd
mov edx, dword [ebp - 0x24]
and edx, 0xff
cmp edx, 1
je 0x42abbd
mov eax, dword [ebp - 0x24]
and eax, 0x100
je 0x42abbf
jmp 0x42ab52
mov dword [ebp - 4], 0
push 0
push 0x40
lea ecx, [ebp - 0x80]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x42abec
mov dword [ebp - 4], 0xfffffffe
jmp 0x42ab52
movzx ecx, word [ebp - 0x80]
cmp ecx, 0x5a4d
jne 0x42ac06
mov edx, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x2c]
ja 0x42ac06
cmp dword [ebp - 0x44], 0x40
jae 0x42ac12
mov dword [ebp - 4], 0xfffffffe
jmp 0x42ab52
push 0
push 0xf8
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x42ac3e
mov dword [ebp - 4], 0xfffffffe
jmp 0x42ab52
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0x4550
je 0x42ac55
mov dword [ebp - 4], 0xfffffffe
jmp 0x42ab52
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x84]
jmp 0x42ac99
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x3c]
xor ecx, ebp
call fcn.0041d97a
mov esp, ebp
pop ebp
ret 0xc