joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44ef78
Capabilities:
Connect to http server
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x74], 4
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x54]
mov dword [ebp + 0xc], eax
jne 0x44ef9a
or dword [ebp + 0xc], 0x800000
mov ebx, dword [esi + 0x70]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x10]
push 0
push 0
push ebx
push eax
push ecx
movzx ecx, word [esi + 0x78]
push ecx
push edx
mov edx, dword [edi + 4]
push edx
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [edi], eax
push 0
test eax, eax
jne 0x44efdb
push 0xdeadbeef
push 0xb
push edi
call fcn.004466d2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x60]
push edx
push 0
push 0
push 0
push ecx
push 0
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov ebx, eax
mov eax, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [ebp - 8], ebx
mov dword [ebp - 4], eax
test ebx, ebx
jne 0x44f027
push ebx
push 0xdeadbeef
push 0xc
push edi
call fcn.004466d2
lea ecx, [ebp - 8]
push ecx
mov bl, al
call fcn.00435a34
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebp + 0x10], 0
je 0x44f035
push esi
push ebx
push edi
call fcn.0044691d
test dword [ebp + 0xc], 0x1000
je 0x44f06c
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 0x10]
push eax
push 0x1f
push ebx
mov dword [ebp + 0xc], 4
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
or dword [ebp + 0x10], 0x100
push 4
lea ecx, [ebp + 0x10]
push ecx
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
push 0
push 0
push 0
push 0
push ebx
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x44f10a
push ebx
call fcn.00435abe
cmp eax, 0xc8
jne 0x44f10a
lea edx, [ebp + 0x10]
push edx
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x28]
push ecx
push 5
push ebx
mov dword [ebp + 0x10], 0
mov dword [ebp + 0xc], 0x20
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea edx, [ebp - 0x28]
push edx
call fcn.004132d5
add esp, 4
cmp byte [ebp + 0x14], 0
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
je 0x44f0e8
push ebx
push edi
call fcn.004468fa
mov bl, al
lea eax, [ebp - 8]
push eax
call fcn.00435a34
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 1
push 0
push 0
push edi
call fcn.004466d2
lea ecx, [ebp - 8]
push ecx
mov bl, al
call fcn.00435a34
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0xdeadbeef
push 0xd
push edi
call fcn.004466d2
lea edx, [ebp - 8]
push edx
mov bl, al
call fcn.00435a34
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x44f514
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0xdc]
push eax
call fcn.00447060
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0xdc]
push edx
call fcn.00446fba
xor esi, esi
test edi, edi
je 0x44f55c
lea eax, [ebp - 0xdc]
push eax
call fcn.0044702f
xor byte [esi + ebx], al
inc esi
cmp esi, edi
jb 0x44f548
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x44f829
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
push ecx
dec dword [0x4a3104]
jne 0x44f83a
call fcn.00447212
mov ecx, dword [0x4b8624]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4b8624], ecx
mov ecx, eax
shr ecx, 0xb
xor eax, ecx
mov edx, eax
and edx, 0xff3a58ad
shl edx, 7
xor eax, edx
mov ecx, eax
and ecx, 0xffffdf8c
shl ecx, 0xf
xor eax, ecx
mov edx, eax
shr edx, 0x12
xor edx, eax
mov dword [ebp - 4], edx
fild dword [ebp - 4]
jns 0x44f881
fadd qword [0x49d8f0]
fmul qword [0x49d900]
mov esp, ebp
pop ebp
ret

Function at 0x44f88b
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
dec dword [0x4a3104]
jne 0x44f898
call fcn.00447212
mov eax, dword [0x4b8624]
mov ecx, dword [eax]
add eax, 4
mov dword [0x4b8624], eax
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov edx, ecx
and edx, 0xff3a58ad
shl edx, 7
xor ecx, edx
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
shr eax, 1
ret
Function at 0x44fa89
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10010
call fcn.00426550
push esi
mov esi, dword [ebp + 8]
push edi
lea edi, [esi + 0x34]
push 0x1f5
push edi
mov dword [ebp - 0x10], edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push 0xffff
mov dword [esi + 0x10], 0xffff
call fcn.00412999
mov edx, dword [esi + 0x2c]
add esp, 4
push 0
mov dword [esi + 8], eax
lea eax, [ebp - 4]
push eax
push 0xffff
lea ecx, [ebp - 0x10010]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44fbb2
push ebx
cmp dword [ebp - 4], 0
jbe 0x44fbb1
lea ebx, [esi + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0xc]
add eax, dword [ebp - 4]
cmp dword [esi + 0x10], eax
jae 0x44fb66
mov ecx, dword [esi + 0xc]
add ecx, dword [ebp - 4]
mov edi, dword [esi + 8]
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
jns 0x44fb1f
fadd qword [0x49d8f0]
fmul qword [0x49d928]
fnstcw word [ebp + 0xa]
movzx eax, word [ebp + 0xa]
or eax, 0xc00
mov dword [ebp - 8], eax
fldcw word [ebp - 8]
fistp qword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
push eax
mov dword [esi + 0x10], eax
fldcw word [ebp + 0xa]
call fcn.00412999
mov edx, dword [esi + 0xc]
push edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
push edi
push eax
call fcn.004124f0
push edi
call fcn.00410f86
mov edi, dword [ebp - 0x10]
add esp, 0x14
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0xc]
add eax, dword [esi + 8]
push ecx
lea edx, [ebp - 0x10010]
push edx
push eax
call fcn.004124f0
mov ecx, dword [ebp - 4]
add dword [esi + 0xc], ecx
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esi + 0x2c]
push 0
lea edx, [ebp - 4]
push edx
push 0xffff
lea eax, [ebp - 0x10010]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x44fae9
pop ebx
push 0x1f6
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
pop edi
mov eax, 0x1f6
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x44fc3b
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 0x30], 0
lea esi, [edi + 0x30]
je 0x44fca5
mov eax, dword [edi + 0x34]
push ebx
lea ebx, [edi + 0x34]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
cmp eax, 0x1f6
je 0x44fca4
add edi, 0x14
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esi]
push 0x1f6
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov edx, dword [esi]
push 0x3e8
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call fcn.004367e7
add esp, 4
push 0x1f6
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop ebx
pop edi
pop esi
pop ebp
ret 4

Function at 0x44fcab
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
cmp dword [esi + 0x30], 0
jne 0x44fcd1
lea eax, [ebp + 8]
push eax
push 0
push esi
push 0x44fbcb
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x30], eax
pop esi
pop ebp
ret 4
Function at 0x45014e
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
push str.SeShutdownPrivilege
lea eax, [ebp - 0x10]
push eax
call fcn.0044810d
lea ecx, [ebp - 0x10]
push ecx
call fcn.0043ad90
test al, al
jne 0x450183
lea edx, [ebp - 0x10]
push edx
call fcn.0044a93b
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
cmp ebx, 0x20
je 0x4501ec
cmp ebx, 0x40
je 0x4501f3
test bl, 0xb
jne 0x4501af
push 0
push ebx
call dword [sym.imp.USER32.dll_ExitWindowsEx]
mov esi, eax
lea eax, [ebp - 0x10]
push eax
call fcn.0044a93b
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
test bl, 0x14
je 0x4501bb
mov ecx, 1
xor eax, eax
test bl, 2
je 0x4501c7
mov eax, 1
mov edx, dword [ebp + 0xc]
push edx
push eax
push ecx
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_InitiateSystemShutdownExW]
mov esi, eax
lea eax, [ebp - 0x10]
push eax
call fcn.0044a93b
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
jmp 0x4501f5
xor eax, eax
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetSystemPowerState]
lea ecx, [ebp - 0x10]
push ecx
mov esi, eax
call fcn.0044a93b
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x450211
Capabilities:
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x22c
lea eax, [ebp - 0x22c]
call fcn.00410390
lea eax, [ebp - 0x22c]
push eax
call fcn.00437aa7
add esp, 4
test al, al
jne 0x45023f
mov esp, ebp
pop ebp
ret
push ebx
xor ebx, ebx
cmp byte [ebp + 0xc], bl
jne 0x45025e
lea ecx, [ebp - 0x22c]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
setne al
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x22c]
push edx
call fcn.00412851
xor ecx, ecx
mov word [ebp + eax*2 - 0x22a], cx
add esp, 4
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x22c]
mov eax, 0x614
push ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xa], ebx
mov dword [ebp - 6], ebx
mov dword [ebp - 0xe], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 3
mov word [ebp - 0x10], ax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
sete al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4502b3
Capabilities:
Copy file
Move file

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x438
push ebx
mov bl, byte [ebp + 0x10]
lea eax, [ebp - 0x438]
call fcn.00410390
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x22c]
call fcn.00410390
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x438]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x45032d
test bl, bl
je 0x450357
lea edx, [ebp - 0x22c]
push edx
lea eax, [ebp - 0x438]
push eax
call fcn.00413276
add esp, 8
test eax, eax
je 0x450326
lea ecx, [ebp - 0x22c]
push ecx
lea edx, [ebp - 0x438]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x438]
push eax
call fcn.00437aa7
add esp, 4
test al, al
je 0x450357
lea ecx, [ebp - 0x22c]
push ecx
call fcn.00437aa7
add esp, 4
test al, al
je 0x45035e
test bl, bl
jne 0x450384
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x22c]
push edx
call fcn.004376dc
add esp, 4
test al, al
je 0x450357
lea eax, [ebp - 0x22c]
push eax
call fcn.00437aa7
add esp, 4
test al, al
je 0x450357
lea ecx, [ebp - 0x438]
push str..
push ecx
call fcn.00412877
lea edx, [ebp - 0x438]
push edx
call fcn.00412851
lea edx, [ebp - 0x22c]
xor ecx, ecx
push edx
mov word [ebp + eax*2 - 0x436], cx
call fcn.00412851
xor ecx, ecx
mov word [ebp + eax*2 - 0x22a], cx
lea edx, [ebp - 0x438]
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x18], edx
add esp, 0x10
mov dword [ebp - 0x14], eax
xor eax, eax
lea edx, [ebp - 0x20]
mov ecx, 0x614
push edx
mov dword [ebp - 0xa], eax
mov dword [ebp - 6], eax
mov dword [ebp - 0xe], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 2
mov word [ebp - 0x10], cx
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
sete al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x450408
Capabilities:
Copy file
Delete file
Enumerate files on windows
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10b4
call fcn.00426550
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
lea eax, [esp + 0x438]
xor bl, bl
call fcn.00410390
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x648]
call fcn.00410390
lea eax, [esp + 0x648]
push eax
lea ecx, [esp + 0x43c]
push ecx
call fcn.00437a17
lea edx, [esp + 0x440]
push edx
mov byte [esp + 0x1b], al
call fcn.00437aa7
add esp, 0xc
test al, al
je 0x45047d
lea eax, [esp + 0x438]
push str..
push eax
call fcn.00412877
add esp, 8
lea ecx, [esp + 0x648]
push ecx
call fcn.00437aa7
add esp, 4
test al, al
je 0x4504a6
lea edx, [esp + 0x648]
push str..
push edx
call fcn.00412877
add esp, 8
lea eax, [esp + 0xcb0]
push eax
lea ecx, [esp + 0xebc]
push ecx
lea edx, [esp + 0xab0]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x448]
push ecx
call fcn.00413b4e
add esp, 0x14
lea edx, [esp + 0x858]
push edx
lea eax, [esp + 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov byte [esp + 0xe], 1
cmp esi, 0xffffffff
je 0x45065c
mov edi, dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp byte [esp + 0xe], 1
jne 0x45065c
test byte [esp + 0x858], 0x10
jne 0x45063c
lea ecx, [esp + 0x228]
push ecx
lea edx, [esp + 0x64c]
push edx
lea eax, [esp + 0xcb8]
push eax
lea ecx, [esp + 0xec4]
push ecx
lea edx, [esp + 0x894]
push edx
call fcn.00437893
add esp, 0x14
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004128a8
lea edx, [esp + 0xab0]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.00412877
lea ecx, [esp + 0x894]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00412877
lea eax, [esp + 0x240]
push eax
call fcn.00437b09
add esp, 0x1c
test al, al
je 0x4505ba
cmp byte [ebp + 0x10], 0
je 0x450613
lea ecx, [esp + 0x228]
push ecx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x450623
lea eax, [esp + 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [ebp + 0x14], 1
jne 0x4505fe
cmp byte [esp + 0xf], 0
jne 0x4505dc
lea ecx, [esp + 0x228]
push ecx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
jmp 0x45060f
push 0
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x20]
push ecx
call edi
test eax, eax
je 0x450613
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x45060f
push 0
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x20]
push ecx
call edi
test eax, eax
jne 0x45063a
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x450613
mov bl, 1
lea ecx, [esp + 0x858]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4504ff
mov byte [esp + 0xe], al
jmp 0x4504ff
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x45066c
Capabilities:
Delete file
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa88
mov ecx, dword [ebp + 8]
push ebx
push esi
lea eax, [esp + 0x18]
mov byte [esp + 0xf], 0
call fcn.00410390
lea eax, [esp + 0x18]
push eax
call fcn.00437aa7
add esp, 4
test al, al
je 0x4506ae
lea ecx, [esp + 0x18]
push str..
push ecx
call fcn.00412877
add esp, 8
lea edx, [esp + 0x680]
push edx
lea eax, [esp + 0x88c]
push eax
lea ecx, [esp + 0x480]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.00413b4e
add esp, 0x14
lea ecx, [esp + 0x228]
push ecx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov bl, 1
cmp esi, 0xffffffff
je 0x450773
cmp bl, 1
jne 0x450773
test byte [esp + 0x228], 0x10
jne 0x45074d
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x17], bl
call fcn.004128a8
lea edx, [esp + 0x480]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.00412877
lea ecx, [esp + 0x264]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00412877
add esp, 0x18
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp eax, 1
jne 0x450764
lea ecx, [esp + 0x228]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4506f4
xor bl, bl
jmp 0x4506f4
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor al, al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov al, byte [esp + 0xf]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x450a45
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x20], 0
push esi
push edi
mov edi, dword [ebp + 0xc]
mov al, byte [edi]
mov cl, byte [edi + 7]
movzx esi, word [edi + 8]
mov byte [ebp + 0xc], al
mov byte [ebp + 8], cl
je 0x450b52
cmp al, 0x14
je 0x450b52
cmp al, 0x90
je 0x450b52
cmp al, 0x91
je 0x450b52
push edi
call fcn.0043898b
test al, al
je 0x450bd0
lea edx, [ebp - 0x11c]
push edx
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x450ac7
movzx eax, byte [ebp + 0xc]
xor byte [ebp + eax - 0x11c], 0x80
lea eax, [ebp + eax - 0x11c]
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
movzx esi, byte [ebp + 8]
shl esi, 0x10
push edi
or esi, 0xc0000001
call fcn.00448d7e
cmp al, 1
jne 0x450ae4
or esi, 0x1000000
cmp byte [ebx + 0x17], 0
jne 0x450b1a
cmp byte [ebx + 0x1d], 0
jne 0x450b1a
mov al, byte [ebp + 0xc]
cmp al, 0x12
je 0x450b1d
mov ecx, dword [ebx + 0x20]
push esi
movzx eax, al
push eax
push 0x101
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
push ebx
call fcn.004388b8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [ebp + 0xc]
cmp byte [ebx + 0x16], 0
jne 0x450af7
cmp byte [ebx + 0x1c], 0
jne 0x450af7
mov edx, dword [ebx + 0x20]
movzx ecx, al
or esi, 0x20000000
push esi
push ecx
push 0x105
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
push ebx
call fcn.004388b8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
call fcn.0043898b
test al, al
je 0x450ba4
push edi
call fcn.00448d7e
cmp al, 1
jne 0x450b85
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push 3
push edx
push eax
push ebx
call fcn.0043882c
push ebx
call fcn.004388b8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 2
push ecx
push edx
push ebx
call fcn.0043882c
push ebx
call fcn.004388b8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x1c
lea ecx, [ebp - 0x1c]
xor eax, eax
push ecx
push 1
mov dword [ebp - 0x1c], 1
mov word [ebp - 0x18], ax
mov word [ebp - 0x16], si
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
call dword [sym.imp.USER32.dll_SendInput]
push ebx
call fcn.004388b8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x450dc1
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, dword [ebp + 0xc]
mov byte [esi + 7], bl
mov word [esi], 0xff
mov dword [esi + 2], ebx
mov byte [esi + 6], bl
push esi
mov byte [esi + 0xa], bl
mov word [esi + 8], di
call fcn.00438978
test al, al
je 0x450dfe
push edi
call dword [sym.imp.USER32.dll_VkKeyScanW]
movzx eax, ax
cmp ax, 0xffff
jne 0x450e07
xor al, al
pop edi
pop esi
pop ebx
pop ebp
ret 8
movzx edx, al
mov ecx, eax
push ebx
sar ecx, 8
push edx
mov byte [esi], al
mov byte [ebp + 0xf], cl
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
mov cl, byte [ebp + 0xf]
mov byte [esi + 7], al
mov al, 1
test al, cl
je 0x450e2b
mov byte [esi + 1], al
test cl, 2
je 0x450e33
mov byte [esi + 3], al
test cl, 4
je 0x450e00
pop edi
mov byte [esi + 4], al
pop esi
pop ebx
pop ebp
ret 8
Function at 0x456f78
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea esi, [ebp - 0x10]
mov dword [ebp - 0x14], ecx
call fcn.00401bb0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
inc dword [eax]
mov dword [ebp - 0x18], eax
mov edi, 0x49b71c
mov eax, esi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
call fcn.00401c80
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x278]
push eax
push ecx
mov bl, 1
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp + 8], eax
cmp eax, 0xffffffff
je 0x4570e1
nop
mov edx, dword [ebp - 0x14]
push edx
call fcn.00446e89
cmp eax, 1
je 0x4570df
cmp eax, 0xb
jne 0x456ff9
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x456fd8
lea eax, [ebp - 0x24c]
push 0x495738
push eax
call fcn.00413276
add esp, 8
test eax, eax
je 0x4570c4
lea ecx, [ebp - 0x24c]
push 0x49b724
push ecx
call fcn.00413276
add esp, 8
test eax, eax
je 0x4570c4
lea edx, [ebp - 0x24]
push edx
lea esi, [ebp - 0x10]
call fcn.0040e270
lea edi, [ebp - 0x24c]
mov eax, esi
call fcn.00401c80
test byte [ebp - 0x278], 0x10
je 0x45709b
cmp byte [ebp + 0x18], 0
mov esi, dword [ebp + 0x14]
je 0x457063
add dword [esi], 1
adc dword [esi + 4], 0
cmp byte [ebp + 0x1c], 0
je 0x4570c4
mov edi, 0x4961f8
lea eax, [ebp - 0x10]
call fcn.00401c80
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x10]
push esi
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00456f78
mov bl, al
test bl, bl
je 0x4570e1
jmp 0x4570c4
mov ecx, dword [ebp - 0x25c]
mov eax, dword [ebp + 0xc]
xor edx, edx
or edx, dword [ebp - 0x258]
xor esi, esi
or ecx, esi
add dword [eax], edx
adc dword [eax + 4], ecx
cmp byte [ebp + 0x18], 0
je 0x4570c4
mov eax, dword [ebp + 0x10]
add dword [eax], 1
adc dword [eax + 4], esi
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x278]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x456fd8
jmp 0x4570e1
xor bl, bl
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x24]
call fcn.00402340
lea ecx, [ebp - 0x10]
call fcn.00402340
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x18
Function at 0x4571ff
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x430
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 4], 0
mov eax, dword [esi]
push eax
push 4
mov edi, 1
lea ecx, [ebp - 0xc]
push edi
push ecx
call fcn.0041519b
add esp, 0x10
push 0x18ee
push 4
lea edx, [ebp - 0xc]
push edx
call fcn.0044f514
lea eax, [ebp - 0xc]
push str.FILE
push eax
mov byte [ebp - 8], 0
call fcn.004151c0
add esp, 8
test eax, eax
jne 0x457395
mov ecx, dword [esi]
add dword [ebp - 4], edi
push ecx
push edi
lea edx, [ebp + 8]
push 4
push edx
call fcn.0041519b
mov edi, dword [ebp + 8]
mov eax, dword [esi]
push eax
xor edi, 0xadbc
lea ebx, [edi + edi]
push ebx
lea ecx, [ebp - 0x220]
push 1
push ecx
call fcn.0041519b
add esp, 0x20
add edi, 0xb33f
push edi
push ebx
lea edx, [ebp - 0x220]
push edx
call fcn.0044f514
lea ecx, [ebp - 0x220]
push ecx
lea edx, [ebp - 0x430]
xor eax, eax
push edx
mov word [ebp + ebx - 0x220], ax
call fcn.004128a8
mov eax, dword [esi]
push eax
push 1
lea ecx, [ebp + 8]
push 4
push ecx
call fcn.0041519b
mov edi, dword [ebp + 8]
mov edx, dword [esi]
push edx
xor edi, 0xf820
lea ebx, [edi + edi]
push ebx
lea eax, [ebp - 0x220]
push 1
push eax
call fcn.0041519b
add esp, 0x28
add edi, 0xf479
push edi
push ebx
lea ecx, [ebp - 0x220]
push ecx
call fcn.0044f514
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x220]
push eax
xor edx, edx
push ecx
mov word [ebp + ebx - 0x220], dx
call fcn.004128a8
mov edi, dword [ebp + 0xc]
lea edx, [ebp - 0x430]
push edi
push edx
call fcn.00413276
add esp, 0x10
test eax, eax
je 0x45738a
push 0x498d3c
push edi
call fcn.00413276
add esp, 8
test eax, eax
jne 0x45734a
cmp dword [ebp - 4], eax
je 0x45738a
mov eax, dword [esi]
push 1
push 1
push eax
call fcn.00415561
mov ecx, dword [esi]
add esp, 0xc
push ecx
push 1
lea edx, [ebp - 0x10]
push 4
push edx
call fcn.0041519b
mov eax, dword [ebp - 0x10]
xor eax, 0x87bc
mov dword [ebp - 0x10], eax
add eax, 0x18
push 1
push eax
mov eax, dword [esi]
push eax
call fcn.00415561
add esp, 0x1c
jmp 0x457215
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
mov eax, 6
pop ebx
mov esp, ebp
pop ebp
ret 0xc