joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47cd5c
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 0x47ce17
push dword fs:[eax]
mov dword fs:[eax], esp
dec edx
jne 0x47cd88
lea eax, [ebp - 8]
mov edx, 0x47ce30
call fcn.004049a4
jmp 0x47cd95
lea eax, [ebp - 8]
mov edx, 0x47ce3c
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, 0x47ce30
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 0x47ce48
push dword [ebp - 8]
push dword [ebp - 0xc]
push 0x47ce54
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 0x47ce1e
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00404930
ret

Function at 0x47d0d4
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 [0x4d88f8]
mov eax, dword [eax]
call fcn.00471340
sub ebx, esi
cmp edi, ebx
ja 0x47d0e0
pop edi
pop esi
pop ebx
ret

Function at 0x47f28c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov bl, byte [0x47f2c4]
push 0x10
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47f2a2
or bl, 1
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47f2b1
or bl, 4
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47f2c0
or bl, 2
mov eax, ebx
pop ebx
ret

Function at 0x47fb10
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [ebx + 4]
mov edx, dword [0x44dadc]
call fcn.00403cc4
test al, al
je 0x47fb52
mov eax, dword [0x4d88f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x47fb52
mov edx, dword [0x4d88f8]
xor edx, edx
call fcn.0046aad0
push 0
mov eax, dword [0x4d88f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_ShowWindow
pop ebx
ret
Function at 0x4832c0
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 0x483520
push dword fs:[eax]
mov dword fs:[eax], esp
cmp ebx, 1
jl 0x483323
lea edx, [ebp - 0x20c]
mov eax, dword [ebp - 4]
call fcn.00482d88
mov eax, dword [ebp - 0x20c]
mov edx, ebx
call fcn.004104c0
cmp al, 1
jne 0x483323
dec ebx
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 4]
call fcn.004830a0
test al, al
je 0x4834af
cmp dword [ebp - 8], 0
jge 0x483341
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.00482d88
mov eax, dword [ebp - 0x210]
call fcn.00404bcc
cmp ebx, eax
jge 0x48338b
lea edx, [ebp - 0x214]
mov eax, dword [ebp - 4]
call fcn.00482d88
mov eax, dword [ebp - 0x214]
mov al, byte [eax + ebx - 1]
mov edx, dword [0x4d8bdc]
and eax, 0xff
bt dword [edx], eax
jae 0x48338b
inc ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x228]
cmp eax, dword [ebp - 8]
jg 0x48339f
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 8]
mov ecx, ebx
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0048329c
cmp ebx, dword [ebp - 8]
je 0x4834a1
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 0x4833cb
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 0x48348e
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.00458200
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.00458200
push eax
call sub.user32.dll_SendMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x483495
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 0x483502
cmp dword [ebp - 8], 0
jge 0x4834ba
xor eax, eax
mov dword [ebp - 8], eax
lea edx, [ebp - 0x218]
mov eax, dword [ebp - 4]
call fcn.00482d88
mov eax, dword [ebp - 0x218]
call fcn.00404bcc
cmp eax, dword [ebp - 8]
jg 0x4834f4
lea edx, [ebp - 0x21c]
mov eax, dword [ebp - 4]
call fcn.00482d88
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.0048329c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x483527
lea eax, [ebp - 0x21c]
mov edx, 5
call fcn.00404930
ret
Function at 0x48fa98
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 0x48fb52
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00405018
mov eax, dword [0x4d8490]
cmp byte [eax], 0
je 0x48fb07
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 0x48fb39
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 0x48fb59
lea eax, [ebp - 0x3f0]
call fcn.0040490c
ret

Function at 0x492b30
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, eax
xor eax, eax
push ebp
push 0x492b8a
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.00492b94
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 0x492b91
ret

Function at 0x498270
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 0x4982a6
jmp 0x49834c
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 0x4982ea
mov edx, dword [ebx + 0x4c]
cmp dword [edx + 0x160], 0
je 0x4982ea
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x14]
jmp 0x4982fa
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x15c]
test edx, edx
je 0x4982fa
mov eax, dword [edx + 0x14]
test eax, eax
je 0x498313
push eax
push 2
push 5
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0xc]
mov eax, ebx
call fcn.00494d2c
jmp 0x49834c
mov dl, 1
mov eax, dword [0x428fc4]
call fcn.0042afc8
mov esi, eax
mov edx, dword [edi + 0x10]
mov eax, esi
call fcn.0042bb04
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 0x49a754
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
push 0
mov eax, ebx
call fcn.00458200
push eax
call sub.user32.dll_ShowWindow
mov byte [ebx + 0x279], 0
xor edx, edx
mov eax, ebx
call fcn.00451900
pop ebx
ret
Function at 0x49f308
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 0x49f3c2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00405018
mov eax, dword [0x4d8490]
cmp byte [eax], 0
je 0x49f377
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 0x49f3a9
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 0x49f3c9
lea eax, [ebp - 0x3f0]
call fcn.0040490c
ret

Function at 0x49f564
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 0x49f625
push esp
call sub.user32.dll_GetKeyboardState
mov eax, esp
call fcn.00468774
mov ebx, eax
mov dx, word [ebp + 4]
mov eax, esi
call fcn.0049f138
mov edi, eax
test edi, edi
je 0x49f5c3
mov al, byte [0x49f630]
cmp al, bl
jne 0x49f5c3
mov edx, edi
mov eax, esi
call fcn.0049f070
mov dword [ebp + 0xc], 1
mov byte [esi + 0x31], 1
jmp 0x49f625
cmp byte [esi + 0x161], 2
jne 0x49f5ee
mov eax, dword [ebp + 8]
push eax
movzx ecx, word [ebp + 4]
mov eax, dword [0x4d8ac0]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, 0xb006
call fcn.00452b94
test eax, eax
jne 0x49f625
jmp 0x49f618
mov eax, dword [0x4d88f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
cmp eax, dword [esi + 0x128]
je 0x49f618
mov edx, dword [ebp + 8]
push edx
movzx ecx, word [ebp + 4]
mov edx, dword [0x4d88f8]
mov edx, 0xb006
call fcn.00452b94
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 0x4a5484
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 0x4a54b8
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4a54f4
jmp 0x4a54bc
pop edx
pop eax
jge 0x4a54f4
mov eax, dword [0x4d8ac0]
mov eax, dword [eax]
mov dword [eax + 0x44], 2
call sub.kernel32.dll_GetTickCount
mov dword [ebx + 0x80], eax
mov eax, ebx
call fcn.004a0424
mov eax, dword [ebx + 0xf4]
test eax, eax
je 0x4a5519
mov ecx, dword [esp + 4]
mov edx, dword [esp]
mov ebx, dword [eax]
call dword [ebx + 0x40]
jmp 0x4a5519
cmp dword [ebx + 0x11c], 0
je 0x4a5519
xor edx, edx
mov eax, dword [ebx + 0x58]
call fcn.0043a06c
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 0x4af9b0
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 0x4afb21
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 0x4afb06
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 [0x4804c8]
call fcn.00480520
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.0048059c
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4afb03
mov dl, 1
mov eax, dword [0x481640]
call fcn.004816a8
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, 0x4afb38
call fcn.004808e8
lea eax, [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00404c18
xor eax, eax
push ebp
push 0x4afafc
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.004819a8
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004afb40
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4afb03
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 0x4afb28
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404930
ret
Function at 0x4b179c
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 0x4b18bd
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
mov edx, dword [0x4d89fc]
mov dword [edx], eax
lea eax, [ebp - 4]
push eax
mov eax, dword [0x4d89fc]
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0
lea edx, [ebp - 0xc]
xor ecx, ecx
mov eax, 0x4b18d4
call fcn.0040d044
mov eax, dword [ebp - 4]
call fcn.004a9e6c
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 [0x4d898c]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0
lea edx, [ebp - 0x20]
mov ecx, 1
mov eax, 0x4b18f0
call fcn.0040d044
mov eax, dword [ebp - 0x10]
call fcn.004a9e6c
call sub.kernel32.dll_GetCurrentThreadId_1
mov esi, eax
push esi
push 0
push 0x4b137c
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, 0x4b1910
call fcn.0040d044
mov eax, dword [ebp - 0x24]
call fcn.004a9e6c
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, 0x4b1928
call fcn.0040d044
mov eax, dword [ebp - 0x28]
call fcn.004a9e6c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b18c4
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 0x4b2dec
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 0x4b2ea6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00405018
mov eax, dword [0x4d8490]
cmp byte [eax], 0
je 0x4b2e5b
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 0x4b2e8d
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 0x4b2ead
lea eax, [ebp - 0x3f0]
call fcn.0040490c
ret

Function at 0x4b2eb4
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 0x4b83fc
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, eax
cmp dword [ebx + 0x14], 0xca
jne 0x4b842a
mov eax, ebx
call fcn.004b8eb0
cmp dword [ebx + 0x40], 0
je 0x4b8423
mov dword [ebx + 0x14], 0xcf
mov eax, 1
pop ebx
ret
mov dword [ebx + 0x14], 0xcb
cmp dword [ebx + 0x14], 0xcb
jne 0x4b849b
mov edx, dword [ebx + 0x1b4]
cmp dword [edx + 0x10], 0
je 0x4b848d
cmp dword [ebx + 8], 0
je 0x4b844c
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 0x4b845e
xor eax, eax
pop ebx
ret
cmp eax, 2
je 0x4b848d
cmp dword [ebx + 8], 0
je 0x4b843f
cmp eax, 3
je 0x4b8471
dec eax
jne 0x4b843f
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 0x4b843f
mov edx, dword [ebx + 0x140]
add dword [eax + 8], edx
jmp 0x4b843f
mov ecx, dword [ebx + 0x90]
mov dword [ebx + 0x98], ecx
jmp 0x4b84b9
cmp dword [ebx + 0x14], 0xcc
je 0x4b84b9
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.004b84c4
pop ebx
ret

Function at 0x4c8ef4
Capabilities:
Suspend thread

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

Function at 0x4c8f04
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 0x4c8f19
mov byte [ebx + 0xd], 0
pop ebx
ret

Function at 0x4c901c
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.004c8f88
mov esi, eax
mov eax, ebx
call fcn.00403b38
mov eax, esi
pop esi
pop ebx
ret

Function at 0x4c9620
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
add esp, 0xfffffff0
lea eax, [esp + 0xc]
push eax
push 0x4c968c
push 0x80000002
call sub.advapi32.dll_RegOpenKeyA
test eax, eax
jne 0x4c967d
mov dword [esp], 4
push esp
lea eax, [esp + 8]
push eax
push 0
push 0
push 0x4c96bc
mov eax, dword [esp + 0x20]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x4c966a
cmp byte [esp + 4], 1
sete bl
jmp 0x4c9671
call fcn.004c955c
mov ebx, eax
mov eax, dword [esp + 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
jmp 0x4c9684
call fcn.004c955c
mov ebx, eax
mov eax, ebx
add esp, 0x10
pop ebx
ret
Function at 0x4c9ab4
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 0x4c9b75
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
mov eax, 0x4c9b8c
call fcn.00404f10
test eax, eax
jne 0x4c9afc
lea eax, [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, 0x4c9b98
call fcn.00404c18
test bl, bl
je 0x4c9b3b
lea edx, [ebp - 8]
mov eax, 0x4c9ba8
call fcn.004c9734
cmp dword [ebp - 8], 0
je 0x4c9b3b
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 0x4c9bb0
call sub.user32.dll_GetDesktopWindow
push eax
call sub.shell32.dll_ShellExecuteA
jmp 0x4c9b5a
push 1
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00404dcc
push eax
push 0x4c9bb0
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 0x4c9b7c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404930
ret

Function at 0x4c9bb8
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 0x4c9c6e
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.004c9c7c
test al, al
jne 0x4c9c50
lea edx, [ebp - 0x114]
mov eax, dword [0x4d88f8]
mov eax, dword [eax]
call fcn.00471afc
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 0x4c9c75
lea eax, [ebp - 0x114]
mov edx, 3
call fcn.00404930
ret

Function at 0x4c9c7c
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 0x4c9c95
test al, 0x10
jne 0x4c9c99
xor eax, eax
pop ebx
ret
mov al, 1
pop ebx
ret