joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10001324
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0x10]
and dword [ebp - 4], 0
push ebx
mov ebx, dword [eax + 4]
mov eax, dword [eax]
movzx ecx, word [eax + 0x14]
xor edx, edx
push esi
push edi
lea ecx, [ecx + eax + 0x18]
cmp dx, word [eax + 6]
jae 0x100013ff
lea esi, [ecx + 0x10]
mov eax, dword [esi]
test eax, eax
jne 0x10001399
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x38]
test edi, edi
jle 0x100013e7
mov eax, dword [esi - 4]
push 4
push 0x1000
push edi
add eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x10001409
mov eax, dword [esi - 4]
add eax, ebx
mov dword [esi - 8], eax
test edi, edi
je 0x100013e7
push edi
push 0
push eax
call fcn.10036f80
add esp, 0xc
jmp 0x100013e7
mov ecx, dword [esi + 4]
add ecx, eax
push ecx
call fcn.10001308
test eax, eax
je 0x10001409
mov eax, dword [esi - 4]
push 4
push 0x1000
push dword [esi]
add eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x10001409
mov eax, dword [esi - 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
add ecx, dword [ebp + 8]
add eax, ebx
test edx, edx
jbe 0x100013e4
mov edi, eax
sub ecx, eax
mov dword [ebp - 8], edx
mov dl, byte [ecx + edi]
mov byte [edi], dl
inc edi
dec dword [ebp - 8]
jne 0x100013d9
mov dword [esi - 8], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax + 6]
inc dword [ebp - 4]
add esi, 0x28
cmp dword [ebp - 4], eax
jl 0x1000134f
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0xc
xor eax, eax
jmp 0x10001402
Function at 0x1000513a
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
xor ebx, ebx
call fcn.1001e1f9
mov esi, dword [eax + 0xc]
push 5
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
je 0x10005173
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov ecx, dword [ebp - 4]
push esi
push dword [ebp + 0xc]
push ebx
call fcn.10004d8b
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8

Function at 0x100051d1
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [edi + 0x58], ebx
test ebx, 0xffff0000
jne 0x100051f5
cmp dword [edi + 0x54], 0
jne 0x100051f5
movzx eax, bx
mov dword [edi + 0x54], eax
call fcn.1001e1f9
mov esi, dword [eax + 0xc]
push 5
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push dword [ebp + 0xc]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.10005192
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x1000ba62
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], ebx
je 0x1000baa9
call fcn.1001e1f9
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x1000baa9
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
je 0x1000bac5
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov ecx, dword [ebp - 4]
push edi
call fcn.1000b5dc
mov esi, eax
test edi, edi
je 0x1000bac3
test ebx, ebx
je 0x1000bac3
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x1000cd14
Capabilities:
Get graphical window text

Disassembly:
push 4
mov eax, 0x1004b8c8
call fcn.10037b9a
mov esi, ecx
cmp dword [esi + 0x50], 0
jne 0x1000cd39
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x1000cd7f
lea ecx, [ebp - 0x10]
call fcn.10002cf3
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx]
and dword [ebp - 4], 0
lea edx, [ebp - 0x10]
push edx
call dword [eax + 0x8c]
push 0xffffffffffffffff
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1000c50c
add esp, 0x10
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov esi, eax
call fcn.10002cd9
mov eax, esi
call fcn.10037c72
ret 8
Function at 0x100125a0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov dword [ebp - 4], ecx
call fcn.1001e1f9
mov esi, dword [eax + 0xc]
push 0xf1
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
jne 0x100125cd
xor eax, eax
jmp 0x10012673
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 8], eax
test eax, eax
je 0x100125c6
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x100125c6
movzx eax, word [esi + 6]
push ebx
push edi
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10004756
pop ecx
mov edi, eax
xor ecx, ecx
xor eax, eax
cmp cx, word [esi + 6]
jae 0x10012624
lea ecx, [esi + 8]
movzx edx, word [ecx]
mov dword [edi + eax*4], edx
movzx edx, word [esi + 6]
inc eax
inc ecx
inc ecx
cmp eax, edx
jl 0x10012613
movzx eax, word [esi + 6]
mov ecx, dword [ebp - 4]
push eax
push edi
call fcn.1001129f
push edi
mov ebx, eax
call fcn.10004790
pop ecx
test ebx, ebx
je 0x10012666
movzx ecx, word [esi + 4]
movzx eax, word [esi + 2]
push ecx
lea esi, [ecx + 7]
mov ecx, dword [ebp - 4]
push eax
lea edx, [eax + 7]
push esi
push edx
call fcn.10011953
push dword [ebp + 8]
mov ecx, dword [ebp - 4]
call fcn.10011a07
mov ebx, eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, ebx
pop ebx
pop esi
leave
ret 4

Function at 0x10015d1a
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
xor ebx, ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0xc], ebx
je 0x10015d62
call fcn.1001e1f9
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x10015d62
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 4], eax
test eax, eax
je 0x10015da5
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov esi, dword [ebp + 8]
mov dword [ebp + 0xc], 1
test ebx, ebx
je 0x10015d8e
push dword [ebp + 0x10]
mov eax, dword [edi]
push ebx
push esi
mov ecx, edi
call dword [eax + 0x20]
cmp dword [ebp - 4], 0
mov dword [ebp + 0xc], eax
je 0x10015d8e
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeResource]
cmp dword [esi + 0x4c], 0
je 0x10015da2
mov ecx, dword [esi + 0x4c]
push dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 0xc
Function at 0x1003165d
Capabilities:
Query or enumerate registry value

Disassembly:
push 0
mov eax, 0x1004cc7e
call fcn.10037b9a
push dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
call fcn.1000b406
and dword [ebp - 4], 0
cmp dword [ebp + 8], 0x80000000
jne 0x100316bf
call fcn.1001dad3
cmp eax, 1
jne 0x100316bf
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push str.SoftwareClasses_
push eax
call fcn.1001709a
add esp, 0xc
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call fcn.10010beb
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.10002cd9
mov dword [ebp + 8], SysReAllocStringLen
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov esi, eax
call fcn.10002cd9
mov eax, esi
call fcn.10037c72
ret 0x10

Function at 0x100316e8
Capabilities:
Set registry value

Disassembly:
push 0
mov eax, 0x1004cc7e
call fcn.10037b9a
push dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
call fcn.1000b406
and dword [ebp - 4], 0
cmp dword [ebp + 8], 0x80000000
jne 0x1003174a
call fcn.1001dad3
cmp eax, 1
jne 0x1003174a
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push str.SoftwareClasses_
push eax
call fcn.1001709a
add esp, 0xc
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call fcn.10010beb
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.10002cd9
mov dword [ebp + 8], SysReAllocStringLen
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueA]
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov esi, eax
call fcn.10002cd9
mov eax, esi
call fcn.10037c72
ret 0x14

Function at 0x100361ba
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x10062a20]
jne 0x100361c4
repz ret
jmp fcn.1003b8c9
Function at 0x10045992
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.1003db0b
and dword [ebp - 4], 0
cmp dword [0x10088ebc], 0
mov ebx, eax
jne 0x10045a43
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x10045af4
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x10055250
push edi
call esi
test eax, eax
je 0x10045af4
push eax
call fcn.1003da99
mov dword [esp], 0x10055240
push edi
mov dword [0x10088ebc], eax
call esi
push eax
call fcn.1003da99
mov dword [esp], 0x1005522c
push edi
mov dword [0x10088ec0], eax
call esi
push eax
call fcn.1003da99
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x10088ec4], eax
call esi
push eax
call fcn.1003da99
pop ecx
mov dword [0x10088ecc], eax
test eax, eax
je 0x10045a43
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.1003da99
pop ecx
mov dword [0x10088ec8], eax
mov eax, dword [0x10088ec8]
cmp eax, ebx
je 0x10045a9b
cmp dword [0x10088ecc], ebx
je 0x10045a9b
push eax
call fcn.1003db14
push dword [0x10088ecc]
mov esi, eax
call fcn.1003db14
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x10045a9b
test edi, edi
je 0x10045a9b
call esi
test eax, eax
je 0x10045a92
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x10045a92
test byte [ebp - 0xc], 1
jne 0x10045a9b
or dword [ebp + 0x10], 0x200000
jmp 0x10045ad4
mov eax, dword [0x10088ec0]
cmp eax, ebx
je 0x10045ad4
push eax
call fcn.1003db14
pop ecx
test eax, eax
je 0x10045ad4
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x10045ad4
mov eax, dword [0x10088ec4]
cmp eax, ebx
je 0x10045ad4
push eax
call fcn.1003db14
pop ecx
test eax, eax
je 0x10045ad4
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x10088ebc]
call fcn.1003db14
pop ecx
test eax, eax
je 0x10045af4
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x10045af6
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x407180
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
push edi
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
movzx ebx, word [ecx + 6]
add eax, 0x18
add eax, ecx
test ebx, ebx
je 0x4071be
mov edi, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
cmp edi, esi
jb 0x4071b6
mov ecx, dword [eax + 8]
add ecx, esi
cmp edi, ecx
jb 0x4071c0
inc edx
add eax, 0x28
cmp edx, ebx
jb 0x4071a6
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x4072a0
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
je 0x4072b6
xor eax, eax
pop ebp
ret
mov ecx, dword [eax + 0x3c]
add ecx, eax
xor eax, eax
cmp dword [ecx], 0x4550
jne 0x4072d1
mov edx, 0x10b
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret

Function at 0x433002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
mov eax, section..text
nop
nop
nop
push 4
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x433072
nop
mov ebx, 0x40de38
nop
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x1c484d88
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x433060
mov eax, section..data
nop
cmp eax, 0
nop
nop
nop
nop
nop
nop
nop
je 0x4330d2
mov ebx, 0x4304d8
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x61011160
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x4330c0
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x409b31
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x417344]
jne 0x409b3b
repz ret
jmp fcn.0040e5dc

Function at 0x41280c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x417344]
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.0040c3d2
and dword [ebp - 0x14], 0
cmp dword [0x439eec], 0
mov dword [ebp - 0x18], eax
jne 0x4128bf
push 0x403744
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x412967
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x403738
push ebx
call edi
test eax, eax
je 0x412967
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push 0x403728
push ebx
mov dword [0x439eec], eax
call edi
push eax
call esi
push 0x403714
push ebx
mov dword [0x439ef0], eax
call edi
push eax
call esi
push 0x4036f8
push ebx
mov dword [0x439ef4], eax
call edi
push eax
call esi
mov dword [0x439efc], eax
test eax, eax
je 0x4128bf
push 0x4036e0
push ebx
call edi
push eax
call esi
mov dword [0x439ef8], eax
mov eax, dword [0x439ef8]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x412918
cmp dword [0x439efc], ecx
je 0x412918
push eax
call esi
push dword [0x439efc]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x412918
test ebx, ebx
je 0x412918
call edi
test eax, eax
je 0x41290f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x41290f
test byte [ebp - 8], 1
jne 0x412918
or dword [ebp + 0x10], 0x200000
jmp 0x41294b
mov eax, dword [0x439ef0]
cmp eax, dword [ebp - 0x18]
je 0x41294b
push eax
call esi
test eax, eax
je 0x41294b
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x41294b
mov eax, dword [0x439ef4]
cmp eax, dword [ebp - 0x18]
je 0x41294b
push eax
call esi
test eax, eax
je 0x41294b
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x439eec]
call esi
test eax, eax
je 0x412967
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x412969
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00409b31
leave
ret
Function at 0x4147a0
Capabilities:
Delete directory
Delete file
Get disk information
Read .ini file

Disassembly:
mov eax, 0x1400
call fcn.00413de0
cmp dword [0x6b50c4], 0x37
jne 0x414817
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x404020
call edi
push 0
lea eax, [esp + 0x808]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x4040e4
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea ecx, [esp + 4]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
push 0x404108
call edi
push 0
lea edx, [esp + 0xc08]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointW]
pop edi
mov eax, dword [0x6b5ca8]
mov edx, dword [0x6b2124]
mov cl, byte [eax + esi + 0x38d6]
mov byte [edx + esi], cl
add esp, 0x1400
ret
Function at 0x10001d20
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov dword [ebp - 0x14], ecx
mov al, byte [esi]
mov bl, byte [esi + 1]
test edx, edx
jle 0x10001df1
movzx ecx, al
mov esi, edx
movzx eax, bl
mov ebx, dword [0x1004dd24]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], 0x321
lea eax, [ecx + 1]
xor edx, edx
mov ecx, 0x321
div ecx
mov al, dl
xor edx, edx
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0xc], eax
lea ecx, [eax + ebx]
movzx eax, byte [ecx]
add eax, dword [ebp - 8]
div dword [ebp - 0x10]
mov al, dl
mov byte [ebp - 2], al
movzx eax, al
mov dword [ebp - 8], eax
lea edx, [eax + ebx]
call fcn.10001e00
movzx eax, byte [edx]
xor edx, edx
movzx ecx, byte [ecx]
add eax, ecx
mov ecx, 0x321
div ecx
push 0
push 0
mov bl, dl
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0x14]
mov eax, edi
sub eax, dword [0x1004c8e0]
inc edi
add ecx, eax
movzx eax, bl
mov ebx, dword [0x1004dd24]
mov al, byte [eax + ebx]
xor byte [ecx], al
mov ecx, dword [ebp - 0xc]
cmp edi, esi
jl 0x10001d56
mov esi, dword [ebp + 8]
mov al, byte [ebp - 1]
pop edi
mov byte [esi], al
mov al, byte [ebp - 2]
mov byte [esi + 1], al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov byte [esi + 1], bl
mov byte [esi], al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x10001e10
Capabilities:
Allocate or change rwx memory

Disassembly:
push 0
push 0x40
push 0x3000
push 0x11
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualAllocExNuma]
mov ecx, dword [0x1004c8e0]
xor edx, edx
movups xmm0, xmmword [str.LdrFindResource_U]
test eax, eax
cmovne ecx, edx
movups xmmword [eax], xmm0
mov dword [0x1004c8e0], ecx
mov cl, byte [0x10049bd4]
mov byte [eax + 0x10], cl
ret
Function at 0x100285ad
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.10027f6b

Function at 0x1003a969
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.1003a83d
Function at 0x5d5c4d
Capabilities:
Encode data using xor

Disassembly:
mov edi, 0xd7f597c5
cmp byte [ecx], ch
inc eax
mov esi, dword [esi - 0x11]
sub ebp, dword [ecx]
imul eax, dword [eax], 0x85db6b68
or esi, ebx
mov ah, 0x22
insb byte es:[edi], dx
stc
clc
imul ebx, esp, 0x3d
invalid

Function at 0x5d635f
Capabilities:
Encode data using xor

Disassembly:
shl ecx, cl
movsb byte es:[edi], byte [esi]
pop esp
call 0x79135581
mov ecx, 0x2be8768c
mov bl, 0xb4
sub dword [edi], 0xffffffef
daa
out dx, eax
daa
out dx, eax
dec esi
mov eax, 0xf9fd62a0
jae 0x5d634c
mov bl, 0x3b
clc
sub dh, bl
sub ecx, dword [ebp + ebp*8 + 0x2edaaa70]
test dword [ecx + 0x5d7478cc], edi
invalid

Function at 0x5ddd34
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2bc
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x5ddd4f
add esi, 0x1000
lea eax, [ebp - 0x2bc]
push edx
push 0x1c
push eax
push esi
call dword [edx + 0x124a2f74]
pop edx
test eax, eax
je 0x5dde21
cmp dword [ebp - 0x2ac], 0x1000
jne 0x5dde10
test dword [ebp - 0x2a8], 1
jne 0x5dde10
and dword [ebp - 0x2a8], 0x100
jne 0x5dde10
push esi
push edx
push 4
push esi
call dword [edx + 0x122d2e66]
pop edx
pop esi
test eax, eax
je 0x5dddb3
jmp 0x5dde10
cmp word [esi], 0x5a4d
jne 0x5dde10
mov eax, esi
push ebx
mov ebx, dword [esi + 0x3c]
add eax, ebx
pop ebx
cmp dword [eax], 0x4550
jne 0x5dde10
lea eax, [ebp - 0x28c]
push edx
push 0x28a
push eax
push esi
call dword [edx + 0x122d2da6]
pop edx
test eax, eax
je 0x5dde10
lea eax, [ebp - 0x28c]
push eax
call fcn.005ddc90
test eax, eax
jne 0x5dde09
jmp 0x5dde10
mov eax, esi
jmp 0x5dde21
mov esi, dword [ebp - 0x2b0]
add esi, dword [ebp - 0x2bc]
jmp 0x5ddd4f
pop esi
leave
ret 4
Function at 0x567611
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x9811c0]
add eax, 0x38
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x34], 0x80000000
mov ecx, dword [0x9811c0]
mov edx, dword [ecx + 0x14]
mov eax, dword [edx + 0xc]
xor ecx, ecx
mov cl, byte [eax + 0x19]
imul ecx, ecx, 0x420
mov edx, dword [ecx + 0x61cd90]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
sub eax, 2
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
ja case.default.0x56765b
mov ecx, dword [ebp - 0x3c]
jmp dword [ecx*4 + 0x5677d2]
mov edx, dword [ebp - 0x34]
or edx, 0x4000000
mov dword [ebp - 0x34], edx
jmp 0x5676ae
mov eax, dword [ebp - 0x34]
or eax, 0x8000000
mov dword [ebp - 0x34], eax
jmp 0x5676ae
mov ecx, dword [ebp - 0x34]
or ecx, 0x10000000
mov dword [ebp - 0x34], ecx
jmp 0x5676ae
mov edx, dword [ebp - 0x34]
or edx, 0x20000000
mov dword [ebp - 0x34], edx
jmp 0x5676ae
mov eax, dword [0x9811c0]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x34]
mov dword [ecx + 0x10], edx
xor eax, eax
jmp 0x5677ce
lea eax, [ebp - 8]
push eax
push 5
call fcn.005668bf
add esp, 8
test eax, eax
jne 0x5676d2
cmp dword [ebp - 8], 0
je 0x5676d2
mov ecx, dword [ebp - 0x34]
or ecx, 0x40000000
mov dword [ebp - 0x34], ecx
lea edx, [ebp - 8]
push edx
push 4
call fcn.005668bf
add esp, 8
test eax, eax
jne 0x56771b
mov eax, dword [ebp - 8]
and eax, 0x3ff
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov dx, word [ecx + eax*2 + 0x30]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 0
je 0x56770f
mov eax, dword [ebp - 0x38]
shl eax, 0x10
mov ecx, dword [ebp - 0x34]
or ecx, eax
mov dword [ebp - 0x34], ecx
jmp 0x56771b
mov edx, dword [ebp - 0x34]
or edx, 0x3ff0000
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x28], 0
je 0x5677b2
lea ecx, [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0xc]
call dword [edx + 0x28]
add esp, 4
test eax, eax
jne 0x5677b0
mov eax, dword [ebp - 0xc]
add eax, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [edx + 0x10]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [edx]
push ecx
call fcn.005671a4
add esp, 0x20
mov edx, dword [ebp - 0x34]
or edx, eax
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x1c]
push edx
mov eax, dword [ecx + 0x18]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ecx + 8]
push eax
call fcn.005671a4
add esp, 0x20
shl eax, 8
mov ecx, dword [ebp - 0x34]
or ecx, eax
mov dword [ebp - 0x34], ecx
jmp 0x5677be
mov edx, dword [ebp - 0x34]
or edx, 0xffff
mov dword [ebp - 0x34], edx
mov eax, dword [0x9811c0]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x34]
mov dword [ecx + 0x10], edx
xor eax, eax
mov esp, ebp
pop ebp
ret