joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47ccd0
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ebx
mov ebx, eax
xor eax, eax
push ebp
push 0x47cd8b
push dword fs:[eax]
mov dword fs:[eax], esp
dec edx
jne 0x47ccfc
lea eax, [ebp - 8]
mov edx, 0x47cda4
call fcn.004049a4
jmp 0x47cd09
lea eax, [ebp - 8]
mov edx, 0x47cdb0
call fcn.004049a4
push 0
push ebx
call sub.user32.dll_MapVirtualKeyA
mov ebx, eax
lea edx, [ebp - 0x10]
mov eax, ebx
call fcn.0040c054
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xc]
mov edx, 0x47cda4
call fcn.00404c18
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00404bcc
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [ebp - 0xc]
call fcn.00404e2c
push 0x47cdbc
push dword [ebp - 8]
push dword [ebp - 0xc]
push 0x47cdc8
lea eax, [ebp - 4]
mov edx, 4
call fcn.00404c8c
mov eax, dword [ebp - 4]
call fcn.0040c1c0
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47cd92
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00404930
ret

Function at 0x47d1d4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
push edi
mov edi, eax
call sub.kernel32.dll_GetTickCount
mov esi, eax
call sub.kernel32.dll_GetTickCount
mov ebx, eax
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
call fcn.004712b4
sub ebx, esi
cmp edi, ebx
ja 0x47d1e0
pop edi
pop esi
pop ebx
ret

Function at 0x47f3dc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov bl, byte [0x47f414]
push 0x10
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47f3f2
or bl, 1
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47f401
or bl, 4
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47f410
or bl, 2
mov eax, ebx
pop ebx
ret

Function at 0x47fc60
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [ebx + 4]
mov edx, dword [0x44da50]
call fcn.00403cc4
test al, al
je 0x47fca2
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x47fca2
mov edx, dword [0x4d88fc]
xor edx, edx
call fcn.0046aa44
push 0
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_ShowWindow
pop ebx
ret
Function at 0x483410
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde4
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x218], ecx
mov dword [ebp - 0x214], ecx
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x20c], ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x483670
push dword fs:[eax]
mov dword fs:[eax], esp
cmp ebx, 1
jl 0x483473
lea edx, [ebp - 0x20c]
mov eax, dword [ebp - 4]
call fcn.00482ed8
mov eax, dword [ebp - 0x20c]
mov edx, ebx
call fcn.004104c0
cmp al, 1
jne 0x483473
dec ebx
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 4]
call fcn.004831f0
test al, al
je 0x4835ff
cmp dword [ebp - 8], 0
jge 0x483491
xor eax, eax
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 8]
inc ebx
lea edx, [ebp - 0x210]
mov eax, dword [ebp - 4]
call fcn.00482ed8
mov eax, dword [ebp - 0x210]
call fcn.00404bcc
cmp ebx, eax
jge 0x4834db
lea edx, [ebp - 0x214]
mov eax, dword [ebp - 4]
call fcn.00482ed8
mov eax, dword [ebp - 0x214]
mov al, byte [eax + ebx - 1]
mov edx, dword [0x4d8be0]
and eax, 0xff
bt dword [edx], eax
jae 0x4834db
inc ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x228]
cmp eax, dword [ebp - 8]
jg 0x4834ef
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 8]
mov ecx, ebx
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004833ec
cmp ebx, dword [ebp - 8]
je 0x4835f1
lea eax, [ebp - 0x108]
push eax
call sub.user32.dll_GetKeyboardState
mov edx, pe_nt_image_headers32
lea eax, [ebp - 0x208]
mov byte [eax], 0
inc eax
dec edx
jne 0x48351b
mov byte [ebp - 0x1f8], 0x81
mov eax, dword [ebp - 4]
mov si, 0xffc8
call fcn.00403d34
and eax, 0x7f
movzx eax, word [eax*2 + 0x4d74dc]
mov byte [ebp + eax - 0x208], 0x81
lea eax, [ebp - 0x208]
push eax
call sub.user32.dll_SetKeyboardState
mov eax, dword [ebp - 4]
mov byte [eax + 0x23c], 1
xor eax, eax
push ebp
push 0x4835de
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
mov eax, dword [ebp - 4]
mov si, 0xffc8
call fcn.00403d34
and eax, 0x7f
movzx eax, word [eax*2 + 0x4d74dc]
push eax
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
call fcn.00458174
push eax
call sub.user32.dll_SendMessageA
push 1
mov eax, dword [ebp - 4]
mov si, 0xffc8
call fcn.00403d34
and eax, 0x7f
movzx eax, word [eax*2 + 0x4d74dc]
push eax
push 0x101
mov eax, dword [ebp - 4]
call fcn.00458174
push eax
call sub.user32.dll_SendMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4835e5
mov eax, dword [ebp - 4]
mov byte [eax + 0x23c], 0
ret
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [eax + 0x230], edx
jmp 0x483652
cmp dword [ebp - 8], 0
jge 0x48360a
xor eax, eax
mov dword [ebp - 8], eax
lea edx, [ebp - 0x218]
mov eax, dword [ebp - 4]
call fcn.00482ed8
mov eax, dword [ebp - 0x218]
call fcn.00404bcc
cmp eax, dword [ebp - 8]
jg 0x483644
lea edx, [ebp - 0x21c]
mov eax, dword [ebp - 4]
call fcn.00482ed8
mov eax, dword [ebp - 0x21c]
call fcn.00404bcc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004833ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x483677
lea eax, [ebp - 0x21c]
mov edx, 5
call fcn.00404930
ret
Function at 0x48fb9c
Capabilities:
Get graphical window text

Disassembly:
push ebx
push esi
mov esi, edx
mov ebx, eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, ebx
call fcn.004305e0
mov edx, eax
mov eax, dword [esi]
call fcn.004315e4
push ebx
mov eax, dword [esi]
call fcn.004304f4
xor ecx, ecx
xor edx, edx
call fcn.0042b430
pop esi
pop ebx
ret

Function at 0x48fbe8
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc10
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x3f0], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x48fca2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00405018
mov eax, dword [0x4d8490]
cmp byte [eax], 0
je 0x48fc57
push esi
call sub.user32.dll_GetWindowTextLengthW
mov edx, eax
inc edx
mov eax, ebx
call fcn.00405378
mov eax, dword [ebx]
call fcn.004051a4
push eax
mov eax, dword [ebx]
call fcn.00405194
push eax
push esi
call sub.user32.dll_GetWindowTextW
mov eax, dword [ebx]
call fcn.004051a4
mov edx, eax
dec edx
mov eax, ebx
call fcn.00405378
jmp 0x48fc89
lea eax, [ebp - 0x3e9]
push eax
push 0x3e8
push 0xd
push esi
call sub.user32.dll_SendMessageA
lea edx, [ebp - 0x3f0]
lea eax, [ebp - 0x3e9]
call fcn.0040cb54
mov edx, dword [ebp - 0x3f0]
mov eax, ebx
call fcn.00405184
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48fca9
lea eax, [ebp - 0x3f0]
call fcn.0040490c
ret

Function at 0x492c80
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, eax
xor eax, eax
push ebp
push 0x492cda
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [esi + 0x2c8], ecx
mov dword [esi + 0x2cc], edx
mov eax, dword [edx + 0x4c]
mov dword [esi + 0x2bc], eax
mov eax, dword [eax + 0x44]
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0x2c8]
mov eax, esi
call fcn.00492ce4
mov eax, dword [esi + 0x2c8]
mov edx, dword [eax + 0x30]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x492ce1
ret
Function at 0x4983c0
Capabilities:
Capture webcam image

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff0
mov edi, edx
mov ebx, eax
mov eax, dword [ebx + 0x50]
push eax
call sub.user32.dll_IsWindow
test eax, eax
jne 0x4983f6
jmp 0x49849c
push 0xfffffffffffffff0
mov eax, dword [ebx + 0x50]
push eax
call sub.user32.dll_GetWindowLongA
mov esi, eax
mov eax, esp
push eax
push 0
push 0x419
mov eax, dword [ebx + 0x50]
push eax
call sub.user32.dll_SendMessageA
xor eax, eax
test esi, 2
jbe 0x49843a
mov edx, dword [ebx + 0x4c]
cmp dword [edx + 0x160], 0
je 0x49843a
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x14]
jmp 0x49844a
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x15c]
test edx, edx
je 0x49844a
mov eax, dword [edx + 0x14]
test eax, eax
je 0x498463
push eax
push 2
push 5
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0xc]
mov eax, ebx
call fcn.00494e7c
jmp 0x49849c
mov dl, 1
mov eax, dword [0x428fc4]
call fcn.0042afc8
mov esi, eax
mov edx, dword [edi + 0x10]
mov eax, esi
call fcn.0042ba78
mov eax, dword [ebx + 0x4c]
mov edx, dword [eax + 0xb4]
mov eax, dword [esi + 0x10]
call fcn.0042ab58
mov edx, esp
mov eax, esi
call fcn.0042b6cc
mov eax, esi
call fcn.00403b38
add esp, 0x10
pop edi
pop esi
pop ebx
ret

Function at 0x49a8a4
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
push 0
mov eax, ebx
call fcn.00458174
push eax
call sub.user32.dll_ShowWindow
mov byte [ebx + 0x279], 0
xor edx, edx
mov eax, ebx
call fcn.00451874
pop ebx
ret
Function at 0x49f458
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc10
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x3f0], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x49f512
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00405018
mov eax, dword [0x4d8490]
cmp byte [eax], 0
je 0x49f4c7
push esi
call sub.user32.dll_GetWindowTextLengthW
mov edx, eax
inc edx
mov eax, ebx
call fcn.00405378
mov eax, dword [ebx]
call fcn.004051a4
push eax
mov eax, dword [ebx]
call fcn.00405194
push eax
push esi
call sub.user32.dll_GetWindowTextW
mov eax, dword [ebx]
call fcn.004051a4
mov edx, eax
dec edx
mov eax, ebx
call fcn.00405378
jmp 0x49f4f9
lea eax, [ebp - 0x3e9]
push eax
push 0x3e8
push 0xd
push esi
call sub.user32.dll_SendMessageA
lea edx, [ebp - 0x3f0]
lea eax, [ebp - 0x3e9]
call fcn.0040cb54
mov edx, dword [ebp - 0x3f0]
mov eax, ebx
call fcn.00405184
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49f519
lea eax, [ebp - 0x3f0]
call fcn.0040490c
ret

Function at 0x49f6b4
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff00
mov ebp, edx
mov esi, eax
mov edx, ebp
mov eax, dword [esi + 0x3c]
call dword [esi + 0x38]
cmp dword [ebp + 0xc], 0
jne 0x49f775
push esp
call sub.user32.dll_GetKeyboardState
mov eax, esp
call fcn.004686e8
mov ebx, eax
mov dx, word [ebp + 4]
mov eax, esi
call fcn.0049f288
mov edi, eax
test edi, edi
je 0x49f713
mov al, byte [0x49f780]
cmp al, bl
jne 0x49f713
mov edx, edi
mov eax, esi
call fcn.0049f1c0
mov dword [ebp + 0xc], 1
mov byte [esi + 0x31], 1
jmp 0x49f775
cmp byte [esi + 0x161], 2
jne 0x49f73e
mov eax, dword [ebp + 8]
push eax
movzx ecx, word [ebp + 4]
mov eax, dword [0x4d8ac4]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, 0xb006
call fcn.00452b08
test eax, eax
jne 0x49f775
jmp 0x49f768
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
cmp eax, dword [esi + 0x128]
je 0x49f768
mov edx, dword [ebp + 8]
push edx
movzx ecx, word [ebp + 4]
mov edx, dword [0x4d88fc]
mov edx, 0xb006
call fcn.00452b08
xor eax, eax
mov dword [ebp + 0xc], eax
mov edx, ebp
mov eax, dword [esi + 0x3c]
call dword [esi + 0x38]
add esp, 0x100
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x4a55d4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff8
mov esi, edx
lea edi, [esp]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, eax
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebx + 0x80]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x84]
cdq
cmp edx, dword [esp + 4]
jne 0x4a5608
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4a5644
jmp 0x4a560c
pop edx
pop eax
jge 0x4a5644
mov eax, dword [0x4d8ac4]
mov eax, dword [eax]
mov dword [eax + 0x44], 2
call sub.kernel32.dll_GetTickCount
mov dword [ebx + 0x80], eax
mov eax, ebx
call fcn.004a0574
mov eax, dword [ebx + 0xf4]
test eax, eax
je 0x4a5669
mov ecx, dword [esp + 4]
mov edx, dword [esp]
mov ebx, dword [eax]
call dword [ebx + 0x40]
jmp 0x4a5669
cmp dword [ebx + 0x11c], 0
je 0x4a5669
xor edx, edx
mov eax, dword [ebx + 0x58]
call fcn.00439fe0
push 0
push 0
push 0x10
mov eax, dword [ebx + 0x12c]
push eax
call sub.user32.dll_PostMessageA
pop ecx
pop edx
pop edi
pop esi
pop ebx
ret
Function at 0x4afb00
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef0
push ebx
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4afc71
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 1
mov eax, dword [ebp - 4]
test byte [eax + 0x1c], 0x10
jne 0x4afc56
lea eax, [ebp - 0x10d]
push eax
push pe_nt_image_headers32
call sub.kernel32.dll_GetTempPathA
lea edx, [ebp - 8]
lea eax, [ebp - 0x10d]
call fcn.0040cb54
mov dl, 1
mov eax, dword [0x480618]
call fcn.00480670
mov edx, dword [ebp - 4]
mov dword [edx + 0x8c], eax
mov dl, 1
mov eax, dword [0x41f3f4]
call fcn.00403b08
mov edx, dword [ebp - 4]
mov dword [edx + 0x3c], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x90]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
call fcn.004806ec
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4afc53
mov dl, 1
mov eax, dword [0x481790]
call fcn.004817f8
mov edx, dword [ebp - 4]
mov dword [edx + 0x34], eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
mov edx, 0x4afc88
call fcn.00480a38
lea eax, [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00404c18
xor eax, eax
push ebp
push 0x4afc4c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
xor ecx, ecx
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00481af8
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004afc90
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4afc53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
call fcn.00403b38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00403b38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00403b38
ret
mov bl, byte [ebp - 0xd]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4afc78
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404930
ret
Function at 0x4b18ec
Capabilities:
Log keystrokes via application hook

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4b1a0d
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
mov edx, dword [0x4d8a00]
mov dword [edx], eax
lea eax, [ebp - 4]
push eax
mov eax, dword [0x4d8a00]
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0
lea edx, [ebp - 0xc]
xor ecx, ecx
mov eax, 0x4b1a24
call fcn.0040d044
mov eax, dword [ebp - 4]
call fcn.004a9fbc
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x4d861c]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0
mov eax, dword [0x4d8990]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0
lea edx, [ebp - 0x20]
mov ecx, 1
mov eax, 0x4b1a40
call fcn.0040d044
mov eax, dword [ebp - 0x10]
call fcn.004a9fbc
call sub.kernel32.dll_GetCurrentThreadId_1
mov esi, eax
push esi
push 0
push 0x4b14cc
push 5
call sub.user32.dll_SetWindowsHookExA
mov dword [ebx + 0x1c], eax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0xc], esi
mov byte [ebp - 8], 0
lea edx, [ebp - 0xc]
xor ecx, ecx
mov eax, 0x4b1a60
call fcn.0040d044
mov eax, dword [ebp - 0x24]
call fcn.004a9fbc
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0
lea edx, [ebp - 0xc]
xor ecx, ecx
mov eax, 0x4b1a78
call fcn.0040d044
mov eax, dword [ebp - 0x28]
call fcn.004a9fbc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b1a14
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.00404930
lea eax, [ebp - 0x10]
call fcn.0040490c
lea eax, [ebp - 4]
call fcn.0040490c
ret

Function at 0x4b2f3c
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc10
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x3f0], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x4b2ff6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00405018
mov eax, dword [0x4d8490]
cmp byte [eax], 0
je 0x4b2fab
push esi
call sub.user32.dll_GetWindowTextLengthW
mov edx, eax
inc edx
mov eax, ebx
call fcn.00405378
mov eax, dword [ebx]
call fcn.004051a4
push eax
mov eax, dword [ebx]
call fcn.00405194
push eax
push esi
call sub.user32.dll_GetWindowTextW
mov eax, dword [ebx]
call fcn.004051a4
mov edx, eax
dec edx
mov eax, ebx
call fcn.00405378
jmp 0x4b2fdd
lea eax, [ebp - 0x3e9]
push eax
push 0x3e8
push 0xd
push esi
call sub.user32.dll_SendMessageA
lea edx, [ebp - 0x3f0]
lea eax, [ebp - 0x3e9]
call fcn.0040cb54
mov edx, dword [ebp - 0x3f0]
mov eax, ebx
call fcn.00405184
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b2ffd
lea eax, [ebp - 0x3f0]
call fcn.0040490c
ret

Function at 0x4b3004
Capabilities:
Get graphical window text

Disassembly:
push ebx
add esp, 0xfffffc14
mov ebx, edx
mov edx, esp
push edx
push 0x3e8
push 0xd
push eax
call sub.user32.dll_SendMessageA
mov edx, ebx
mov eax, esp
call fcn.0040cb54
add esp, 0x3ec
pop ebx
ret
Function at 0x4b854c
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, eax
cmp dword [ebx + 0x14], 0xca
jne 0x4b857a
mov eax, ebx
call fcn.004b9000
cmp dword [ebx + 0x40], 0
je 0x4b8573
mov dword [ebx + 0x14], 0xcf
mov eax, 1
pop ebx
ret
mov dword [ebx + 0x14], 0xcb
cmp dword [ebx + 0x14], 0xcb
jne 0x4b85eb
mov edx, dword [ebx + 0x1b4]
cmp dword [edx + 0x10], 0
je 0x4b85dd
cmp dword [ebx + 8], 0
je 0x4b859c
mov eax, ebx
mov edx, dword [eax + 8]
call dword [edx]
mov eax, ebx
mov edx, dword [eax + 0x1b4]
call dword [edx]
test eax, eax
jne 0x4b85ae
xor eax, eax
pop ebx
ret
cmp eax, 2
je 0x4b85dd
cmp dword [ebx + 8], 0
je 0x4b858f
cmp eax, 3
je 0x4b85c1
dec eax
jne 0x4b858f
mov edx, dword [ebx + 8]
inc dword [edx + 4]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 8]
cmp ecx, dword [eax + 8]
jl 0x4b858f
mov edx, dword [ebx + 0x140]
add dword [eax + 8], edx
jmp 0x4b858f
mov ecx, dword [ebx + 0x90]
mov dword [ebx + 0x98], ecx
jmp 0x4b8609
cmp dword [ebx + 0x14], 0xcc
je 0x4b8609
mov eax, dword [ebx]
mov dword [eax + 0x14], 0x14
mov edx, dword [ebx + 0x14]
mov dword [eax + 0x18], edx
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.004b8614
pop ebx
ret

Function at 0x4c9044
Capabilities:
Suspend thread

Disassembly:
mov byte [eax + 0xd], 1
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SuspendThread
ret

Function at 0x4c9054
Capabilities:
Resume thread

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_ResumeThread
cmp eax, 1
jne 0x4c9069
mov byte [ebx + 0xd], 0
pop ebx
ret

Function at 0x4c916c
Capabilities:
Terminate thread

Disassembly:
push ebx
push esi
mov ebx, eax
push 0
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_TerminateThread
mov eax, ebx
call fcn.004c90d8
mov esi, eax
mov eax, ebx
call fcn.00403b38
mov eax, esi
pop esi
pop ebx
ret

Function at 0x4c9770
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
add esp, 0xfffffff0
lea eax, [esp + 0xc]
push eax
push 0x4c97dc
push 0x80000002
call sub.advapi32.dll_RegOpenKeyA
test eax, eax
jne 0x4c97cd
mov dword [esp], 4
push esp
lea eax, [esp + 8]
push eax
push 0
push 0
push 0x4c980c
mov eax, dword [esp + 0x20]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x4c97ba
cmp byte [esp + 4], 1
sete bl
jmp 0x4c97c1
call fcn.004c96ac
mov ebx, eax
mov eax, dword [esp + 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
jmp 0x4c97d4
call fcn.004c96ac
mov ebx, eax
mov eax, ebx
add esp, 0x10
pop ebx
ret
Function at 0x4c9c04
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
xor ecx, ecx
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404dbc
xor eax, eax
push ebp
push 0x4c9cc5
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
mov eax, 0x4c9cdc
call fcn.00404f10
test eax, eax
jne 0x4c9c4c
lea eax, [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, 0x4c9ce8
call fcn.00404c18
test bl, bl
je 0x4c9c8b
lea edx, [ebp - 8]
mov eax, 0x4c9cf8
call fcn.004c9884
cmp dword [ebp - 8], 0
je 0x4c9c8b
push 1
push 0
mov eax, dword [ebp - 4]
call fcn.00404dcc
push eax
mov eax, dword [ebp - 8]
call fcn.00404dcc
push eax
push 0x4c9d00
call sub.user32.dll_GetDesktopWindow
push eax
call sub.shell32.dll_ShellExecuteA
jmp 0x4c9caa
push 1
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00404dcc
push eax
push 0x4c9d00
call sub.user32.dll_GetDesktopWindow
push eax
call sub.shell32.dll_ShellExecuteA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9ccc
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404930
ret

Function at 0x4c9d08
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeec
push ebx
xor edx, edx
mov dword [ebp - 0x110], edx
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x10c], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4c9dbe
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x106]
push eax
push 0x104
call sub.kernel32.dll_GetTempPathA
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x106]
call fcn.0040cb54
mov eax, dword [ebp - 0x10c]
mov edx, ebx
call fcn.004107a4
mov eax, dword [ebx]
call fcn.004c9dcc
test al, al
jne 0x4c9da0
lea edx, [ebp - 0x114]
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
call fcn.00471a70
mov eax, dword [ebp - 0x114]
lea edx, [ebp - 0x110]
call fcn.0040c774
mov eax, dword [ebp - 0x110]
mov edx, ebx
call fcn.004107a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9dc5
lea eax, [ebp - 0x114]
mov edx, 3
call fcn.00404930
ret

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

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
call fcn.00404dcc
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x4c9de5
test al, 0x10
jne 0x4c9de9
xor eax, eax
pop ebx
ret
mov al, 1
pop ebx
ret