joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10001c60
Capabilities:
Link many functions at runtime

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 0x24], 0
jne 0x10001cf8
push str.avifil32.dll
call fcn.10005560
test al, al
jne 0x10001c7d
pop esi
ret
push str.AVIFileInit
push dword [esi + 4]
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.AVIFileExit
push dword [esi + 4]
mov dword [esi + 8], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.AVIFileRelease
push dword [esi + 4]
mov dword [esi + 0xc], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.AVIFileOpen
push dword [esi + 4]
mov dword [esi + 0x10], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.AVIStreamInfo
push dword [esi + 4]
mov dword [esi + 0x14], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.AVIStreamOpenFromFile
push dword [esi + 4]
mov dword [esi + 0x18], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.AVIStreamRelease
push dword [esi + 4]
mov dword [esi + 0x1c], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esi + 0x20], eax
mov byte [esi + 0x24], 1
mov al, 1
pop esi
ret

Function at 0x10001d40
Capabilities:
Link many functions at runtime

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 0x24], 0
jne 0x10001dd8
push str.winmm.dll
call fcn.10005560
test al, al
jne 0x10001d5d
pop esi
ret
push str.mmioInstallIOProcA
push dword [esi + 4]
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.mmioOpenA
push dword [esi + 4]
mov dword [esi + 8], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.mmioClose
push dword [esi + 4]
mov dword [esi + 0xc], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.mmioAscend
push dword [esi + 4]
mov dword [esi + 0x10], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.mmioRead
push dword [esi + 4]
mov dword [esi + 0x14], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.mmioDescend
push dword [esi + 4]
mov dword [esi + 0x18], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
push str.mciSendCommandA
push dword [esi + 4]
mov dword [esi + 0x1c], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esi + 0x20], eax
mov byte [esi + 0x24], 1
mov al, 1
pop esi
ret
Function at 0x10005770
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x14]
sub esp, 0x10
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x20]
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
push edi
mov dword [esi], eax
mov ecx, dword [ecx]
cmp ecx, dword [ebp + 0x10]
je 0x100058cf
mov eax, ecx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 0x1c]
xor ebx, ebx
inc ebx
mov edi, 0x3ff
mov ecx, eax
cmp dword [esi], edx
je 0x100058cf
mov edx, dword [ebp + 8]
movzx ecx, word [eax]
mov eax, ecx
mov byte [ebp - 1], 0
movzx edx, word [edx]
cmp bx, dx
jae 0x100057ef
lea eax, [ecx + 0x2400]
cmp ax, di
ja 0x100058de
mov eax, edx
lea ebx, [ecx - 0xdc00]
shl eax, 0xa
or ebx, eax
mov cl, byte [ebp - 1]
cmp ebx, 0x80
jae 0x1000580c
mov dl, bl
xor edi, edi
jmp 0x1000583c
mov ebx, eax
lea eax, [ecx + 0x2800]
cmp ax, di
ja 0x100057de
add ebx, 0xffff2840
mov cl, 1
shl ebx, 0xa
mov byte [ebp - 1], cl
jmp 0x100057e1
mov edx, ebx
cmp ebx, 0x800
jae 0x10005821
shr edx, 6
xor edi, edi
or dl, 0xc0
inc edi
jmp 0x1000583c
cmp ebx, 0x10000
jae 0x10005833
shr edx, 0xc
or dl, 0xe0
push 2
jmp 0x1000583b
shr edx, 0x12
or dl, 0xf0
push 3
pop edi
movzx eax, cl
mov ecx, dword [ebp - 0xc]
xor eax, 1
add eax, eax
cmp edi, 3
cmovb eax, edi
mov dword [ebp - 0x10], eax
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x1c]
sub eax, dword [esi]
cmp eax, dword [ebp - 8]
jl 0x100058cf
mov eax, ecx
mov ecx, dword [ebp + 0x14]
add eax, 2
cmp byte [ebp - 1], 0
mov dword [ecx], eax
jne 0x10005873
cmp edi, 3
jae 0x1000587e
mov eax, dword [esi]
mov byte [eax], dl
inc dword [esi]
mov eax, dword [ebp - 0x10]
jmp 0x10005881
mov eax, dword [ebp - 8]
test eax, eax
je 0x100058a6
imul ecx, edi, 6
sub ecx, 6
mov edx, ebx
dec eax
shr edx, cl
mov dword [ebp - 8], eax
and dl, 0x3f
mov eax, dword [esi]
or dl, 0x80
mov byte [eax], dl
inc dword [esi]
mov eax, dword [ebp - 8]
test eax, eax
jg 0x10005888
xor ecx, ecx
shr ebx, 0xa
inc ecx
movzx eax, bx
cmp byte [ebp - 1], 0
cmovne ecx, eax
mov eax, dword [ebp + 8]
mov word [eax], cx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov eax, ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp + 0x10]
jne 0x10005799
xor eax, eax
cmp dword [ebp + 0xc], ecx
sete al
pop edi
pop esi
pop ebx
leave
ret 0x1c
push 2
pop eax
jmp 0x100058d7

Function at 0x1000b1e0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 4]
cmp eax, 0x1a
jl 0x1000b238
mov eax, dword [esi + 8]
cmp eax, dword [esi]
jl 0x1000b238
push 0
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 4]
push 0x10
push eax
mov eax, dword [esi + 8]
sub eax, dword [esi]
push eax
push dword [esi + 4]
push dword [esi]
push 0
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, edi
call fcn.10005560
push 1
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebp
ret 4
Function at 0x1000b7d0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 8]
push dword [ebp + 0xc]
push 0xd
push dword [ecx + 0x38]
call dword [sym.imp.USER32.dll_SendMessageA]
pop ebp
ret 8
Function at 0x401140
Capabilities:
Load windows common language runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x411d5c
call esi
push 0x411d70
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40116e
push 0x800
call eax
push 0x411d8c
call esi
push str.CLRCreateInstance
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 4], 0
test eax, eax
je 0x4011e8
lea ecx, [esp + 8]
mov dword [esp + 8], 0
push ecx
push 0x411e2c
push 0x411e3c
call eax
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x4011e0
mov eax, dword [ecx]
lea edx, [esp + 0x10]
push edx
push 0x411e4c
push str.v4.0.30319
push ecx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4011e0
mov eax, dword [ecx]
lea edx, [esp + 4]
push edx
push 0x411dfc
push 0x411e1c
push ecx
call dword [eax + 0x24]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x401207
lea eax, [esp + 4]
push eax
push 0x411dfc
push 0x411e1c
push 0
push 0
push 0
call dword [sym.imp.mscoree.dll_CorBindToRuntimeEx]
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x28]
mov eax, dword [esp + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0xc]
push edx
push 0x411e0c
push eax
mov ecx, dword [eax]
call dword [ecx]
mov edx, dword [esp + 0xc]
mov ecx, dword [ebp + 8]
push str._RESOLVER
call fcn.00401010
mov edx, dword [esp + 0x10]
add esp, 4
mov ecx, dword [ebp + 8]
push str._ENTRYPOINT
call fcn.00401010
add esp, 4
pop esi
mov esp, ebp
pop ebp
ret 0x10

Function at 0x401a94
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x401ad3
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x401ad3
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x401ad3
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x401ad3
cmp dword [ecx + 0x74], 0xe
jbe 0x401ad3
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x40bf80
Capabilities:
Parse pe header

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

Function at 0x401000
Capabilities:
Log keystrokes via polling

Disassembly:
mov ecx, 0x5bfe
mov eax, ecx
mov dword [0x4b4752], eax
mov dword [0x4b4739], 0
mov eax, dword [0x4b4739]
mov dword [0x4b48ef], eax
mov dword [0x4b49c1], 0
mov eax, dword [0x4b49c1]
mov eax, ebx
xor ebx, eax
test dword [0x4b428b], eax
jne 0x401045
mov ebx, 0x19c2
sub eax, ebx
dec eax
shl eax, 1
ror eax, 1
or eax, dword [0x4b43b9]
je 0x401077
sub eax, dword [0x4b47dd]
dec eax
mov ebx, 0x11e8
add eax, ebx
dec eax
or eax, ebx
mov ebx, 0x1dd0
sub eax, ebx
add eax, dword [0x4b4a1d]
xor ebx, eax
sub eax, dword [0x4b46db]
shr eax, 1
add dword [0x4b42db], eax
jmp fcn.00402754
Function at 0x431000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43100c
nop
nop
nop
nop
pop eax
nop
nop
add eax, 0x403e6a
nop
sub eax, 0x403e10
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
nop
nop
xor dword [ebx], edx
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x431030
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x43101e
nop
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp fcn.00401219

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
pop eax
nop
nop
nop
nop
add eax, 0x403d6f
nop
nop
sub eax, 0x403d15
nop
nop
nop
nop
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
nop
jmp fcn.00401219

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

Disassembly:
pushal
nop
nop
mov eax, section..text
nop
nop
nop
nop
push 4
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x433072
nop
mov ebx, 0x40de38
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x7a6732ae
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
nop
nop
add eax, edi
nop
loop 0x433060
nop
nop
nop
mov eax, section..data
nop
nop
nop
nop
cmp eax, 0
je 0x4330d2
nop
nop
nop
nop
nop
mov ebx, 0x4304d8
nop
mov ecx, ebx
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x6984069f
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
loop 0x4330c0
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219
Function at 0x4016e6
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10
push ebx
push esi
mov esi, ecx
and dword [esi + 0x30], 0
push edi
call fcn.004015ad
mov eax, dword [eax + 0x30]
mov edi, dword [eax + 0xc]
add edi, 0xc
mov ebx, dword [edi]
jmp 0x40172c
push 0xa
push 0xa
push 0xfbc204
push 0x3114b604
call fcn.00401dd2
add esp, 0xc
push eax
push dword [ebx + 0x30]
call fcn.0040161c
add esp, 0xc
test eax, eax
je 0x401735
mov ebx, dword [ebx]
cmp ebx, edi
jne 0x401704
jmp 0x4017c7
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x4017c7
mov eax, dword [ebx + 0x3c]
mov edi, dword [eax + ebx + 0x78]
and dword [esp + 0xc], 0
add edi, ebx
mov eax, dword [edi + 0x1c]
add eax, ebx
push ebp
mov ebp, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x24]
add eax, ebx
add ebp, ebx
cmp dword [edi + 0x18], 0
mov dword [esp + 0x18], eax
jbe 0x4017c3
mov eax, dword [esp + 0x10]
mov eax, dword [ebp + eax*4]
push 0x16
add eax, ebx
push 0xfbc1ec
push 0x40704011
mov dword [esp + 0x20], eax
call fcn.00401d84
push eax
push dword [esp + 0x24]
call fcn.00401648
add esp, 0x14
test eax, eax
je 0x4017ab
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [edi + 0x18]
jb 0x40176c
jmp 0x4017c3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
add eax, ebx
mov dword [esi + 4], eax
mov dword [esi + 0x30], ebx
pop ebp
cmp dword [esi + 0x30], 0
je 0x40192e
push 0xa
push 0xfbc1e0
push 0x29a1a909
call fcn.00401d84
add esp, 0xc
push eax
push esi
mov ecx, esi
call fcn.004016be
push 0xc
push 0xfbc1d0
push 0x13cbcee9
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 8]
push eax
mov ecx, esi
call fcn.004016be
push 0x18
push 0xfbc1b4
push 0x17ce53be
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0xc]
push eax
mov ecx, esi
call fcn.004016be
push 0xf
push 0xfbc1a4
push 0x26b30b69
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x10]
push eax
mov ecx, esi
call fcn.004016be
push 0x12
push 0xfbc190
push 0x3d924530
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x14]
push eax
mov ecx, esi
call fcn.004016be
push 7
push 0xfbc188
push 0x2236409a
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x18]
push eax
mov ecx, esi
call fcn.004016be
push 0x14
push 0xfbc170
push 0x149ccd04
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x1c]
push eax
mov ecx, esi
call fcn.004016be
push 0x11
push 0xfbc15c
push 0x673ebfe9
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x20]
push eax
mov ecx, esi
call fcn.004016be
push 0x11
push 0xfbc148
push 0x68d29b96
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x24]
push eax
mov ecx, esi
call fcn.004016be
push 0x16
push 0xfbc130
push 0x7db65c79
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x28]
push eax
mov ecx, esi
call fcn.004016be
push 0x13
push 0xfbc11c
push 0x65fa79df
call fcn.00401d84
add esp, 0xc
push eax
lea eax, [esi + 0x2c]
push eax
mov ecx, esi
call fcn.004016be
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x10
ret
Function at 0x401937
Capabilities:
Encode data using xor

Disassembly:
push esi
mov eax, section..data
mov ecx, 0x774
mov esi, 0x3953e5
imul ecx, ecx, 0x19660d
add ecx, 0x3c6ef35f
mov edx, ecx
shr edx, 0xc
xor byte [eax], dl
inc eax
dec esi
jne 0x401947
pop esi
ret

Function at 0x401aa3
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
and dword [ebp - 4], 0
push ebx
mov ebx, eax
push esi
mov esi, dword [ebx + 0x3c]
add esi, ebx
movzx eax, word [esi + 0x14]
push edi
lea edi, [eax + esi + 0x18]
xor eax, eax
cmp ax, word [esi + 6]
jae 0x401aea
push 7
push str..custom
push edi
call fcn.0040161c
add esp, 0xc
test eax, eax
je 0x401af1
movzx eax, word [esi + 6]
inc dword [ebp - 4]
add edi, 0x28
cmp dword [ebp - 4], eax
jl 0x401ac7
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [edi + 0xc]
mov esi, dword [eax + ebx]
lea edi, [eax + ebx + 8]
mov ebx, dword [eax + ebx + 4]
push esi
call fcn.00401e30
and dword [ebp - 8], 0
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 8]
push ecx
push 1
push 5
push edi
lea ecx, [ebp - 0xc]
push ecx
add edi, 5
push edi
lea ecx, [ebp - 0x10]
push ecx
push eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x18], 0x401960
mov dword [ebp - 0x14], 0x40196b
call fcn.0040379c
add esp, 0x28
test eax, eax
je 0x401b51
push dword [ebp - 4]
call fcn.00401e47
pop ecx
jmp 0x401aea
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov eax, dword [ebp - 4]
jmp 0x401aec

Function at 0x401d84
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
push ebx
mov ebx, dword [esp + 0x10]
push esi
xor esi, esi
test ebx, ebx
je 0x401dc3
push edi
mov edi, dword [esp + 0x14]
sub edi, 0x13523f0
imul edx, edx, 0x19660d
add edx, 0x3c6ef35f
mov eax, edx
shr eax, 0xc
xor al, byte [edi + esi + 0x13523f0]
inc esi
mov byte [esi + 0x13523ef], al
cmp esi, ebx
jb 0x401d9f
pop edi
pop esi
mov byte [ebx + 0x13523f0], 0
mov eax, 0x13523f0
pop ebx
ret

Function at 0x401dd2
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
push esi
push edi
mov edi, dword [esp + 0x14]
xor esi, esi
test edi, edi
je 0x401e10
mov eax, dword [esp + 0x10]
sub eax, 0x13523f0
push ebx
imul edx, edx, 0x19660d
add edx, 0x3c6ef35f
mov ebx, edx
shr ebx, 0xc
xor bl, byte [eax + esi + 0x13523f0]
inc esi
mov byte [esi + 0x13523ef], bl
cmp esi, edi
jb 0x401dec
pop ebx
mov byte [edi + 0x13523f0], 0
mov byte [edi + 0x13523f1], 0
pop edi
mov eax, 0x13523f0
pop esi
ret
Function at 0x401eec
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0xc]
xor eax, eax
and edx, 7
cmp ecx, 5
jae 0x401f05
leave
ret
add dword [ebp + 0x10], 5
or dword [ebp + 0xc], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 8]
lea ecx, [esi + ecx - 4]
push edi
mov dword [ebp - 4], ecx
lea edi, [eax + esi]
jmp 0x401f28
mov al, byte [edi]
and al, 0xfe
cmp al, 0xe8
je 0x401f2d
inc edi
cmp edi, dword [ebp - 4]
jb 0x401f1f
mov eax, edi
sub eax, esi
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 4]
jae 0x402025
mov ecx, eax
sub ecx, dword [ebp + 0xc]
cmp ecx, 3
jbe 0x401f84
xor edx, edx
mov cl, byte [edi + 4]
mov dword [ebp + 0xc], eax
test cl, cl
je 0x401f58
cmp cl, 0xff
jne 0x401faf
movzx esi, cl
movzx ecx, byte [edi + 3]
shl esi, 8
or esi, ecx
movzx ecx, byte [edi + 2]
shl esi, 8
or esi, ecx
movzx ecx, byte [edi + 1]
shl esi, 8
or esi, ecx
cmp dword [ebp + 0x18], 0
je 0x401fbd
lea ebx, [esi + eax]
add ebx, dword [ebp + 0x10]
jmp 0x401fc4
dec ecx
shl edx, cl
and edx, 7
je 0x401f49
movzx ecx, byte [edx + 0xfbc294]
mov ebx, edi
sub ebx, ecx
cmp byte [edx + 0xfbc28c], 0
mov cl, byte [ebx + 4]
je 0x401fac
test cl, cl
je 0x401fac
cmp cl, 0xff
jne 0x401f49
mov dword [ebp + 0xc], eax
and edx, 3
add edx, edx
or edx, 1
inc eax
jmp 0x401f1a
sub esi, eax
sub esi, dword [ebp + 0x10]
mov ebx, esi
test edx, edx
je 0x401ff8
movzx esi, byte [edx + 0xfbc294]
push 0x18
shl esi, 3
pop ecx
sub ecx, esi
mov eax, ebx
shr eax, cl
test al, al
je 0x401fe3
cmp al, 0xff
jne 0x401ff5
mov eax, dword [ebp - 8]
push 0x20
pop ecx
sub ecx, esi
xor esi, esi
inc esi
shl esi, cl
dec esi
xor esi, ebx
jmp 0x401f76
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov ecx, ebx
shr ecx, 0x18
and cl, 1
dec cl
not cl
mov byte [edi + 4], cl
mov ecx, ebx
shr ecx, 0x10
mov byte [edi + 3], cl
mov ecx, ebx
shr ecx, 8
mov byte [edi + 2], cl
mov byte [edi + 1], bl
add eax, 5
jmp 0x401f1a
mov esi, eax
sub esi, dword [ebp + 0xc]
push 3
lea ecx, [esi - 1]
shl edx, cl
pop edi
and edx, 7
cmp edi, esi
sbb ecx, ecx
not ecx
pop edi
and ecx, edx
mov edx, dword [ebp + 0x14]
pop esi
mov dword [edx], ecx
pop ebx
leave
ret
Function at 0x404e4a
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x44093c]
jne 0x404e54
repz ret
jmp fcn.00408c42

Function at 0x40b6dc
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.004068a4
and dword [ebp - 4], 0
cmp dword [0x442250], 0
mov ebx, eax
jne 0x40b78d
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40b83e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x40b83e
push eax
call fcn.00406832
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x442250], eax
call esi
push eax
call fcn.00406832
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x442254], eax
call esi
push eax
call fcn.00406832
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x442258], eax
call esi
push eax
call fcn.00406832
pop ecx
mov dword [0x442260], eax
test eax, eax
je 0x40b78d
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00406832
pop ecx
mov dword [0x44225c], eax
mov eax, dword [0x44225c]
cmp eax, ebx
je 0x40b7e5
cmp dword [0x442260], ebx
je 0x40b7e5
push eax
call fcn.004068ad
push dword [0x442260]
mov esi, eax
call fcn.004068ad
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x40b7e5
test edi, edi
je 0x40b7e5
call esi
test eax, eax
je 0x40b7dc
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x40b7dc
test byte [ebp - 0xc], 1
jne 0x40b7e5
or dword [ebp + 0x10], 0x200000
jmp 0x40b81e
mov eax, dword [0x442254]
cmp eax, ebx
je 0x40b81e
push eax
call fcn.004068ad
pop ecx
test eax, eax
je 0x40b81e
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40b81e
mov eax, dword [0x442258]
cmp eax, ebx
je 0x40b81e
push eax
call fcn.004068ad
pop ecx
test eax, eax
je 0x40b81e
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x442250]
call fcn.004068ad
pop ecx
test eax, eax
je 0x40b83e
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x40b840
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40f240
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
dec esi
neg esi
imul esi
and edx, 0xba
sbb eax, 0xea
inc eax
or edx, 0xa3
dec eax
rcr edi, 0x38
imul ebx
inc esi
rcl eax, 0x99
sbb ebx, 0x2b
rol esi, 0x5f
rcr edx, 0x7f
imul ebx
rcr eax, 6
ror esi, 0x90
rol esi, 0x54
add edx, 0x69
inc edi
inc esi
mov eax, 0x9e
rcr eax, 2
inc esi
rcl ebx, 0xe1
rcr edi, 0xb9
inc eax
rcl ebx, 0xeb
not eax
bswap edx
dec edi
dec esi
sbb esi, 0x5e
rcr edx, 0xfa
inc ebx
inc eax
bswap ebx
mov edx, 6
rcr esi, 0x39
bswap edx
bswap edi
imul edi
not esi
bswap esi
rcr esi, 0xf7
rcr edi, 0x63
inc ebx
bswap edx
rcr ebx, 0x53
xor ecx, ecx
xor edi, edi
ror edx, 0xd
rcr ebx, 0x4e
not ebx
imul edx
dec edx
inc eax
neg eax
or edi, 0xae
inc esi
rcl edi, 0x77
bswap ebx
and eax, 0xae
dec ebx
not edx
rcr edx, 0xd1
not eax
sbb ebx, 0xad
sub edx, 0x6b
or edi, 0x23
neg ebx
inc edx
dec eax
ror ebx, 0xa8
sub edi, 0x62
and esi, 0x8f
imul esi
bswap ebx
neg eax
sbb ebx, 0xcb
not ebx
and edi, 0x15
inc eax
sbb esi, 0xbd
rcl ebx, 0xe4
dec esi
imul ebx
and ebx, 0x18
or edi, 0x53
dec edi
neg eax
imul ebx
bswap eax
neg edx
not ebx
rcr eax, 0xf7
rcl esi, 0xb8
mov ebx, 0xeb
rol eax, 0xcb
rcl eax, 0xe0
bswap edi
mov ecx, dword [ebp + 0xc]
sbb edx, 0xb
mov ebx, 0x78
or eax, 0x79
and esi, 0xb5
mov edi, 0x94
ror ebx, 0x73
bswap eax
bswap edx
not ebx
dec ebx
not edi
add edi, 0x71
ror esi, 0x2c
rcr ebx, 0x31
neg ebx
or eax, 0x76
imul edi
inc edx
inc eax
not ebx
dec edi
neg esi
not edx
inc edx
neg edx
inc edx
add edx, 0x4d
bswap esi
bswap edi
rol esi, 0x1b
rcl edx, 0xc6
not edx
mov eax, 0x27
imul esi
ror edi, 0xc5
and edx, 0xdb
neg edi
dec edx
and ebx, 0xc9
neg esi
bswap esi
add esi, 0x34
dec ebx
imul eax
sub esi, 0x4e
neg eax
neg ebx
add esi, 0x8b
sub edi, 0xf3
and ebx, 0x1f
mov edi, dword [ebp + 8]
mov eax, ebx
mov esi, eax
mov eax, esi
not byte [edi]
mov esi, eax
xor eax, ebx
mov ebx, eax
xor esi, ebx
mov esi, ebx
xor eax, ebx
mov esi, eax
mov esi, esi
mov esi, esi
add byte [edi], 0x26
mov esi, eax
xor eax, ebx
xor eax, esi
xor ebx, esi
xor eax, esi
mov esi, ebx
mov esi, eax
mov eax, eax
xor esi, ebx
sub byte [edi], 0x86
mov esi, esi
xor esi, eax
xor esi, esi
xor ebx, eax
mov eax, eax
mov esi, ebx
mov eax, eax
xor eax, eax
mov esi, esi
imul byte [edi]
inc edi
loop 0x40f3dd
pop edi
pop esi
pop ebx
pop ebp
ret