joyce8/EMBER2024-capa huggingface dataset:
Function at 0x49291e
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x28
mov eax, 0x5fb442
call fcn.005bb1b8
mov esi, ecx
mov dword [ebp - 0x24], esi
mov eax, dword [esi + 0x8c]
mov edi, dword [esi + 0x88]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], edi
call fcn.00496f4c
xor ebx, ebx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x20], eax
cmp dword [esi + 0x84], ebx
je 0x49297d
call fcn.00496f4c
push 5
push dword [esi + 0x84]
mov edi, dword [eax + 0xc]
push edi
mov dword [ebp - 0x20], edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
mov dword [ebp - 0x1c], eax
test edi, edi
je 0x49298d
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x14], eax
jmp 0x492990
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x49299c
or eax, 0xffffffff
jmp 0x492ae4
mov ecx, esi
call fcn.00492eb5
mov edi, eax
mov dword [ebp - 0x30], edi
call fcn.0048b66e
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], ebx
test edi, edi
je 0x492a14
call dword [sym.imp.USER32.dll_GetDesktopWindow]
cmp edi, eax
je 0x492a14
push edi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x492a14
push ebx
push edi
call dword [sym.imp.USER32.dll_EnableWindow]
mov dword [ebp - 0x2c], 1
call fcn.0042aa17
mov dword [ebp - 0x18], eax
test eax, eax
je 0x492a14
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x150]
test eax, eax
je 0x492a14
mov ecx, dword [ebp - 0x18]
call fcn.00491eff
test eax, eax
je 0x492a14
mov ecx, dword [ebp - 0x18]
push ebx
call fcn.0049187b
mov dword [ebp - 0x28], 1
push esi
mov dword [ebp - 4], ebx
call fcn.0048b306
push edi
call fcn.0048c8c6
push dword [ebp - 0x20]
mov ecx, esi
push eax
push dword [ebp - 0x14]
call fcn.004928bf
test eax, eax
jne 0x492a5c
cmp dword [esi + 0x9c], ebx
jne 0x492a5c
call fcn.00496f4c
push edi
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
call fcn.0048c8c6
push dword [ebp - 0x20]
mov ecx, esi
push eax
push dword [ebp - 0x14]
call fcn.004928bf
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x9c], ebx
jmp 0x492a8d
cmp dword [ebp - 0x28], 0
je 0x492a9d
mov ecx, dword [ebp - 0x18]
push 1
call fcn.0049187b
cmp dword [ebp - 0x2c], 0
je 0x492aac
push 1
push edi
call dword [sym.imp.USER32.dll_EnableWindow]
test edi, edi
je 0x492ac2
call dword [sym.imp.USER32.dll_GetActiveWindow]
cmp eax, dword [esi + 0x20]
jne 0x492ac2
push edi
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x60]
mov ecx, esi
call fcn.00492e6c
cmp dword [esi + 0x84], ebx
je 0x492ae1
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, dword [esi + 0x68]
call fcn.005bb116
ret
Function at 0x496003
Capabilities:
Get disk information

Disassembly:
push 0x268
mov eax, 0x5fb6a3
call fcn.005bb181
mov esi, dword [ebp + 8]
xor eax, eax
mov ebx, dword [ebp + 0xc]
test esi, esi
mov edi, dword [ebp + 0x10]
setne al
mov dword [ebp - 0x264], esi
test eax, eax
jne 0x496031
call fcn.00487999
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x49602c
lea eax, [ebp - 0x268]
push eax
push esi
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x496079
push 0xffffffffffffffff
push ebx
push 0x104
push esi
call fcn.005cab0f
push eax
call fcn.004069cf
add esp, 0x14
push ebx
push edi
call fcn.00495fd6
xor eax, eax
jmp 0x49619c
cmp eax, 0x104
jb 0x496096
test edi, edi
je 0x496072
push ebx
lea ecx, [edi + 0x10]
mov dword [edi + 8], 3
call fcn.0048806c
jmp 0x496072
call fcn.004887ac
push eax
lea ecx, [ebp - 0x26c]
call fcn.0040654d
and dword [ebp - 4], 0
lea eax, [ebp - 0x26c]
push eax
push esi
call fcn.004955a4
mov esi, dword [ebp - 0x26c]
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
jne 0x496191
xor ecx, ecx
lea eax, [ebp - 0x270]
push ecx
push ecx
push eax
lea eax, [ebp - 0x274]
push eax
push ecx
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x496101
push ebx
push edi
call fcn.00495fd6
lea ecx, [esi - 0x10]
call fcn.00406e44
jmp 0x496072
mov eax, dword [ebp - 0x270]
test al, 2
jne 0x49611d
push dword [ebp - 0x264]
call dword [sym.imp.USER32.dll_CharUpperW]
mov eax, dword [ebp - 0x270]
test al, 4
jne 0x496191
lea eax, [ebp - 0x260]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x496191
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x268]
test eax, eax
je 0x4960ed
cmp eax, dword [ebp - 0x264]
jbe 0x4960ed
lea eax, [ebp - 0x234]
push eax
call fcn.005cab7e
mov edx, dword [ebp - 0x268]
sub edx, dword [ebp - 0x264]
sar edx, 1
pop ecx
add eax, edx
mov ecx, 0x104
cmp eax, ecx
jge 0x4961a4
lea eax, [ebp - 0x234]
sub ecx, edx
push eax
push ecx
push dword [ebp - 0x268]
call fcn.005cab1a
push eax
call fcn.004069cf
add esp, 0x10
lea ecx, [esi - 0x10]
call fcn.00406e44
xor eax, eax
inc eax
call fcn.005bb12b
ret 0xc
test edi, edi
je 0x4960f4
push ebx
lea ecx, [edi + 0x10]
mov dword [edi + 8], 3
call fcn.0048806c
jmp 0x4960f4
Function at 0x49715d
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
mov ecx, dword [esi + 4]
call fcn.004919d1
push 0xfffffffffffffff0
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
push dword [ebp + 0xc]
and eax, 3
mov ecx, esi
cmp al, 3
je 0x497199
call fcn.0049737c
mov dword [esi + 0xc], 1
jmp 0x49719e
call fcn.0049737c
cmp dword [esi], 0
je 0x4971e7
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov esi, dword [ebp + 0x10]
test eax, eax
jle 0x4971c1
lea ecx, [eax + 1]
push ecx
push eax
mov ecx, esi
call fcn.00462477
jmp 0x4971d2
push 0xff
mov ecx, esi
call fcn.00406dda
push 0x100
push eax
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_GetWindowTextW]
push 0xffffffffffffffff
mov ecx, esi
call fcn.0042b3cc
jmp 0x49720b
mov esi, dword [ebp + 0x10]
push dword [esi]
push 0xffffffffffffffff
push 0x14d
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
jne 0x49720b
push dword [esi]
push dword [ebp - 4]
call fcn.004acfff
pop esi
mov esp, ebp
pop ebp
ret 0xc

Function at 0x4972d1
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
mov ecx, esi
push edi
push dword [ebp + 0xc]
call fcn.0049737c
cmp dword [esi], 0
mov edi, eax
mov dword [esi + 0xc], 1
je 0x497319
push edi
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [ebp + 0x10]
push eax
call fcn.00462477
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov ecx, dword [ebp + 0x10]
push 0xffffffffffffffff
call fcn.0042b3cc
jmp 0x497324
mov eax, dword [ebp + 0x10]
push dword [eax]
push edi
call fcn.004acfff
pop edi
pop esi
pop ebp
ret 0xc
Function at 0x49e2f3
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fbcfa
mov eax, dword fs:[0]
push eax
mov eax, 0x201c
call fcn.005bb720
mov eax, dword [0x69c24c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebp + 0x10]
xor ebx, ebx
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x2020], edx
mov dword [ebp - 0x2028], ebx
cmp dword [ecx + 0x58], ebx
je 0x49e42a
push ebx
push eax
call fcn.0049e479
mov ebx, eax
test ebx, ebx
jne 0x49e35b
push esi
jmp 0x49e452
call fcn.004887ac
push eax
lea ecx, [ebp - 0x2014]
call fcn.0040654d
xor ecx, ecx
lea eax, [ebp - 0x2018]
push eax
push ecx
lea eax, [ebp - 0x201c]
mov dword [ebp - 4], ecx
push eax
push ecx
push dword [ebp - 0x2020]
mov dword [ebp - 0x201c], ecx
push ebx
mov dword [ebp - 0x2018], ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x2024], eax
test eax, eax
jne 0x49e3e9
mov eax, dword [ebp - 0x2018]
lea ecx, [ebp - 0x2014]
shr eax, 1
push eax
call fcn.00406dda
lea ecx, [ebp - 0x2018]
push ecx
push eax
lea eax, [ebp - 0x201c]
push eax
push 0
push dword [ebp - 0x2020]
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x2014]
mov dword [ebp - 0x2024], eax
call fcn.0042b3cc
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x2024], 0
jne 0x49e417
mov esi, dword [ebp - 0x2014]
add esi, 0xfffffff0
push esi
call fcn.00406a4a
pop ecx
add eax, 0x10
mov ecx, esi
mov dword [edi], eax
call fcn.00406e44
jmp 0x49e459
push esi
mov ecx, edi
call fcn.00408edd
mov ecx, dword [ebp - 0x2014]
lea ecx, [ecx - 0x10]
jmp 0x49e410
test esi, esi
jne 0x49e433
mov esi, 0x60bba8
push dword [ecx + 0x6c]
lea ecx, [ebp - 0x2010]
push 0x1000
push ecx
push esi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x2010]
push eax
mov ecx, edi
call fcn.00408edd
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005bb105
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4a2c68
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov dword [ebp - 4], ecx
call fcn.00496f4c
push 0xf1
push dword [ebp + 8]
mov esi, dword [eax + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x4a2d41
push ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
je 0x4a2d40
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4a2d3f
movzx eax, word [edi + 6]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004878e1
mov esi, eax
xor eax, eax
pop ecx
xor ecx, ecx
mov dword [ebp - 8], esi
cmp ax, word [edi + 6]
jae 0x4a2cf2
lea edx, [edi + 8]
movzx eax, word [edx]
lea edx, [edx + 2]
mov dword [esi + ecx*4], eax
inc ecx
movzx eax, word [edi + 6]
cmp ecx, eax
jl 0x4a2ce0
movzx eax, word [edi + 6]
mov ecx, dword [ebp - 4]
push eax
push esi
call fcn.004a336e
push dword [ebp - 8]
mov esi, eax
call fcn.004878ea
pop ecx
test esi, esi
je 0x4a2d36
movzx ecx, word [edi + 4]
movzx esi, word [edi + 2]
push ecx
push esi
lea eax, [ecx + 7]
mov ecx, dword [ebp - 4]
lea edx, [esi + 7]
push eax
push edx
call fcn.004a34f0
push dword [ebp + 8]
mov ecx, dword [ebp - 4]
call fcn.004a2c17
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x4a9521
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, ecx
cmp dword [edi + 0xc8], 0
jne 0x4a95c6
cmp dword [edi + 0xb8], 0
je 0x4a95c6
push esi
call fcn.00496f4c
push 5
push dword [edi + 0xb8]
mov esi, dword [eax + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4a95c5
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
test ebx, ebx
je 0x4a95c4
call fcn.00496f4c
mov esi, dword [eax + 0x3c]
test esi, esi
je 0x4a95c4
push 0x10
call fcn.004878b4
mov edx, dword [esi]
pop ecx
push ebx
push eax
mov ecx, esi
mov dword [ebp - 4], eax
call dword [edx + 0x14]
mov ecx, dword [edi + 0xcc]
mov ebx, dword [ebp - 4]
mov dword [edi + 0xc8], ebx
test ecx, ecx
je 0x4a95be
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x18]
push 0x10
push dword [edi + 0xcc]
call fcn.005bb24c
pop ecx
pop ecx
mov dword [edi + 0xcc], ebx
pop ebx
pop esi
mov eax, dword [edi + 0xc8]
pop edi
mov esp, ebp
pop ebp
ret

Function at 0x4add55
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x4addb8
mov eax, dword [ebx + 0x3c]
xor esi, esi
mov edi, dword [ebx + eax + 0x78]
add edi, ebx
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 0x20]
add eax, ebx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x1c], esi
je 0x4addb6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
mov dword [esp + 4], eax
mov eax, dword [ecx + esi*4]
add eax, ebx
mov dword [esp], eax
call fcn.004add31
test al, al
je 0x4addb3
lea edx, [esi + esi]
add edx, ebx
add edx, dword [edi + 0x24]
movzx eax, word [edx]
lea eax, [ebx + eax*4]
add eax, dword [edi + 0x1c]
add ebx, dword [eax]
jmp 0x4addb8
inc esi
jmp 0x4add7e
xor ebx, ebx
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x4ade2a
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov esi, dword [ebp + 8]
mov eax, dword fs:[0x30]
mov ebx, dword [eax + 0xc]
mov edi, dword [ebp + 0xc]
add ebx, 0xc
mov ebx, dword [ebx]
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4ade45
test edi, edi
je 0x4ade54
mov dword [edi], eax
test esi, esi
je 0x4ade67
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004addf9
cmp eax, esi
jne 0x4ade45
mov eax, dword [ebx + 0x18]
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x4ade72
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x20]
loopne 0x4adece
sub esp, 0x2c
in al, dx
sub al, 0xc7
inc ebp
loopne 0x4ade82
add byte [eax], al
add byte [ecx - 0x38fbdbbc], cl
add al, 0x24
add byte [eax], al
add byte [eax], al
call fcn.004ade2a
mov dword [esp + 4], 0
add byte [ecx - 0x43c75e39], cl
imul eax, dword [eax], 0xe8240489
and al, 0xe8
jle 0x4adea9
invalid
dec dword [ebx + 0x69bc4035]
add byte [ecx + 0x3e83c3], cl
mov ebx, eax
cmp dword [esi], 0
je 0x4adee7
mov ecx, dword [ebp - 0x20]
mov dword [esp], ecx
call fcn.004add1d
cmp byte [esi], al
je 0x4aded1
cmp byte [esi + 1], al
jne 0x4adfde
mov dword [esp], ecx
call fcn.004adddf
cmp dword [esi + 4], eax
je 0x4adee7
cmp dword [esi + 8], eax
jne 0x4adfde
mov eax, dword [0x69bc28]
mov dword [ebp - 0x1c], 0
mov dword [esp + 0xc], 4
or al, 4
add byte [eax], al
add bh, al
inc esp
and al, 8
add byte [eax], dl
add byte [eax], al
mov dword [esp], 0
and al, 0
add byte [eax], al
add byte [ecx - 0xfbdbbc], cl
adc eax, sym.imp.KERNEL32.dll_VirtualAlloc
movsb byte es:[edi], byte [esi]
pushal
add byte [ecx], dh
invalid
sub esp, 0x10
mov ecx, dword [0x69bc44]
cmp ecx, edx
jbe fcn.004adf39
mov ecx, dword [str.VirtualProtect]
mov ecx, dword [ecx + edx]
mov dword [eax + edx], ecx
mov ecx, dword [0x69bc54]
add edx, ecx
jmp 0x4adf19

Function at 0x4adf39
Capabilities:
Terminate process

Disassembly:
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004add55
mov esi, eax
test eax, eax
je 0x4adfde
mov ebx, dword [fcn.005030ad]
lea ecx, [ebp - 0x1c]
mov edx, dword [0x69bc44]
mov dword [esp + 0xc], ecx
mov eax, dword [0x69bc48]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call esi
mov eax, dword [0x69bc14]
mov edx, 8
sub esp, 0x10
add edi, eax
mov ecx, dword [edi + 4]
mov eax, dword [0x69bc48]
cmp eax, edx
jbe 0x4adfa0
mov eax, dword [edi + edx]
add eax, ecx
mov dword [ebx + edx], eax
mov eax, dword [0x69bc54]
add edx, eax
jmp 0x4adf86
mov eax, dword [0x69bc4c]
lea edi, [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [ebx + 8], eax
mov eax, dword [0x69bc48]
add byte [ecx - 0x76f7dbac], cl
sbb al, 0x24
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call esi
mov eax, dword [0x69bc30]
mov edx, dword [0x69bc30]
sub esp, 0x10
add eax, dword [ebx + 0xc]
add eax, ebx
add ebx, edx
mov dword [esp], ebx
call eax
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x4b1ca7
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
push edi
mov dword [ebp - 4], ebx
test byte [esi + 4], 1
je 0x4b1cc1
mov edi, dword [esi + 0xc]
jmp 0x4b1d01
push 5
push dword [esi + 0xc]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x4b1cda
call fcn.00489250
push edi
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
jne 0x4b1cef
call fcn.00489250
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
jne 0x4b1d01
call fcn.00489250
call fcn.00496f4c
cmp dword [eax + 0x3c], 0
je 0x4b1d16
push edi
mov ecx, ebx
call fcn.004b14a4
mov edi, eax
push dword [ebp + 0xc]
push edi
call fcn.004b1eea
mov ebx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je 0x4b1d3f
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 4]
and dword [eax + 0x88], 0
test ebx, ebx
je 0x4b1d4b
mov edi, ebx
mov dword [eax + 0x88], ebx
or dword [esi + 4], 1
mov dword [esi + 0xc], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x4d149c
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xddc
mov eax, dword [0x69c24c]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
test edx, edx
je 0x4d16c1
test esi, esi
je 0x4d16c1
mov eax, dword [ebp + 0x10]
xor ebx, ebx
mov dword [ebp - 0x874], ebx
mov dword [ebp - 0x870], ebx
mov dword [ebp - 0x86c], ebx
mov dword [ebp - 0x868], ebx
mov dword [ebp - 0x864], ebx
mov dword [ebp - 0x860], ebx
mov dword [ebp - 0x644], ebx
mov dword [ebp - 0x640], ebx
mov dword [ebp - 0x63c], ebx
mov dword [ebp - 0x638], ebx
mov dword [ebp - 0x634], ebx
mov dword [ebp - 0x630], ebx
sub eax, ebx
je 0x4d1692
sub eax, 1
je 0x4d1534
sub eax, 1
je 0x4d15fa
sub eax, 1
jne 0x4d16ac
mov edi, dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea eax, [ebp - 0x20c]
push eax
push dword [edx + 4]
call edi
test eax, eax
je 0x4d168d
push ebx
lea eax, [ebp - 0x874]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00496a4f
test eax, eax
je 0x4d168d
lea eax, [ebp - 0x414]
push eax
push dword [esi + 4]
call edi
test eax, eax
je 0x4d15f2
push ebx
lea eax, [ebp - 0x644]
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.00496a4f
test eax, eax
je 0x4d15f2
cmp dword [ebp + 0x10], 1
jne 0x4d1652
test byte [ebp - 0x854], 0x10
jne 0x4d168d
test byte [ebp - 0x624], 0x10
jne 0x4d15f2
mov ecx, dword [ebp - 0x628]
mov eax, dword [ebp - 0x62c]
cmp dword [ebp - 0x858], ecx
ja 0x4d15f2
jb 0x4d168d
cmp dword [ebp - 0x85c], eax
jb 0x4d168d
cmp dword [ebp - 0x858], ecx
jb 0x4d16ac
ja 0x4d15f2
cmp dword [ebp - 0x85c], eax
jbe 0x4d16ac
xor ebx, ebx
inc ebx
jmp 0x4d16ac
mov edi, dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea eax, [ebp - 0xddc]
push 0x408
push 0x2b4
push eax
push ebx
push dword [edx + 4]
call edi
test eax, eax
je 0x4d16ac
push 0x408
push 0x2b4
lea eax, [ebp - 0xb28]
push eax
push ebx
push dword [esi + 4]
call edi
test eax, eax
je 0x4d16ac
lea eax, [ebp - 0x914]
push eax
lea eax, [ebp - 0xbc8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov ebx, eax
jmp 0x4d16ac
push dword [ebp - 0x638]
lea ecx, [ebp - 0x86c]
push dword [ebp - 0x63c]
call fcn.004d0bd4
test al, al
jne 0x4d168d
push dword [ebp - 0x638]
lea ecx, [ebp - 0x86c]
push dword [ebp - 0x63c]
call fcn.004d0bf3
xor ebx, ebx
test al, al
setne bl
jmp 0x4d16ac
or ebx, 0xffffffff
jmp 0x4d16ac
push dword [esi + 8]
mov eax, dword [edx]
push dword [edx + 8]
push ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
test eax, eax
jns 0x4d16a9
xor eax, eax
jmp 0x4d16ae
movsx ebx, ax
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005bb105
mov esp, ebp
pop ebp
ret 0xc
call fcn.00487999
int3

Function at 0x4d1f7a
Capabilities:
Get common file path

Disassembly:
push esi
mov esi, ecx
call fcn.0051808c
call fcn.00496fa0
cmp dword [eax + 0x14], 0
jne 0x4d1f95
mov ecx, esi
pop esi
jmp fcn.004d1371
pop esi
ret
Function at 0x4d4329
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
call dword [eax + 0x178]
mov bx, word [ebp + 8]
mov edi, eax
push 2
movzx edx, bx
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
cmp byte [ebp + 0xc], 0
movzx eax, ax
jne 0x4d436e
test edi, edi
js 0x4d436e
cmp eax, 0x20
je 0x4d4363
cmp bx, 0x71
jne 0x4d436e
mov eax, dword [esi]
mov ecx, esi
push edi
call dword [eax + 0x190]
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x4fdb02
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
mov edx, 0x104
xor ecx, ecx
mov eax, dword [edi + 4]
cmp eax, edx
ja 0x4fdcab
je 0x4fdcd5
cmp eax, 0xa1
jb 0x4fdd18
cmp eax, 0xa2
jbe 0x4fdcd5
cmp eax, 0xa3
jbe 0x4fdd18
cmp eax, 0xa5
jbe 0x4fdcd5
cmp eax, 0xa6
jbe 0x4fdd18
cmp eax, 0xa8
jbe 0x4fdcd5
cmp eax, 0x100
jne 0x4fdd18
cmp dword [esi + 0xc0], 0xffffffff
je 0x4fdcd5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4fdcd3
mov eax, dword [edi + 8]
sub eax, 0x21
je 0x4fdc33
sub eax, 1
jne 0x4fdcd3
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + 0xbc]
add eax, ecx
lea edi, [ecx + 1]
jmp 0x4fdbe6
mov eax, edi
cdq
idiv dword [esi + 0xbc]
mov eax, dword [esi]
mov ecx, edx
mov dword [ebp + 8], ecx
push ecx
mov ecx, esi
call dword [eax + 0x27c]
test eax, eax
jne 0x4fdbec
mov eax, dword [esi + 0xbc]
inc edi
add eax, dword [esi + 0xc0]
cmp edi, eax
jl 0x4fdbbc
jmp 0x4fdc2b
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 8]
mov dword [esi + 0x24c], 1
call dword [eax + 0x214]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x210]
mov ecx, eax
call fcn.00492229
mov edx, dword [esi]
mov ecx, esi
push dword [esi + 0xc0]
call dword [edx + 0x270]
and dword [esi + 0x24c], 0
xor eax, eax
inc eax
jmp 0x4fdd3e
mov ecx, dword [esi + 0xc0]
lea edi, [ecx - 1]
add edi, dword [esi + 0xbc]
cmp edi, ecx
jle 0x4fdc2b
mov eax, edi
cdq
idiv dword [esi + 0xbc]
mov eax, dword [esi]
mov ecx, edx
mov dword [ebp + 8], ecx
push ecx
mov ecx, esi
call dword [eax + 0x27c]
test eax, eax
jne 0x4fdc6e
dec edi
cmp edi, dword [esi + 0xc0]
jg 0x4fdc46
jmp 0x4fdc2b
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 8]
mov dword [esi + 0x24c], 1
call dword [eax + 0x214]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x210]
mov ecx, eax
call fcn.00492229
mov eax, dword [esi]
mov ecx, esi
push dword [esi + 0xc0]
call dword [eax + 0x270]
jmp 0x4fdc24
cmp eax, 0x200
jb 0x4fdd18
cmp eax, 0x202
jbe 0x4fdcd5
cmp eax, 0x203
jbe 0x4fdd18
cmp eax, 0x205
jbe 0x4fdcd5
add eax, 0xfffffdf9
cmp eax, 1
ja 0x4fdd18
jmp 0x4fdcd5
xor ecx, ecx
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x4fdcf5
cmp dword [eax + 0x20], 0
je 0x4fdcf5
push edi
push ecx
push 0x407
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x4fdd16
cmp dword [eax + 0x20], 0
je 0x4fdd16
push edi
push 0
push 0x407
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
cmp dword [edi + 4], 0x203
jne 0x4fdd36
lea eax, [esi + 0x2250]
test eax, eax
je 0x4fdd2e
mov ecx, dword [eax + 0x20]
cmp dword [edi], ecx
je 0x4fdc2b
push edi
mov ecx, esi
call fcn.004f6657
pop edi
pop esi
pop ebp
ret 4