joyce8/EMBER2024-capa huggingface dataset:
Function at 0x441060
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 0xc], 0
jne 0x441070
xor eax, eax
jmp 0x44120d
mov eax, dword [ebp + 8]
xor eax, 0xffffffff
mov dword [ebp + 8], eax
cmp dword [ebp + 0x10], 8
jb 0x4411ce
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp + 8]
and edx, 0xff
mov eax, dword [ebp + 8]
shr eax, 8
xor eax, dword [edx*4 + 0x630f70]
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
xor eax, dword [ebp + 8]
and eax, 0xff
mov ecx, dword [ebp + 8]
shr ecx, 8
xor ecx, dword [eax*4 + 0x630f70]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [ecx*4 + 0x630f70]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp + 8]
and edx, 0xff
mov eax, dword [ebp + 8]
shr eax, 8
xor eax, dword [edx*4 + 0x630f70]
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
xor eax, dword [ebp + 8]
and eax, 0xff
mov ecx, dword [ebp + 8]
shr ecx, 8
xor ecx, dword [eax*4 + 0x630f70]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [ecx*4 + 0x630f70]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp + 8]
and edx, 0xff
mov eax, dword [ebp + 8]
shr eax, 8
xor eax, dword [edx*4 + 0x630f70]
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
xor eax, dword [ebp + 8]
and eax, 0xff
mov ecx, dword [ebp + 8]
shr ecx, 8
xor ecx, dword [eax*4 + 0x630f70]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0x10]
sub eax, 8
mov dword [ebp + 0x10], eax
jmp 0x441079
cmp dword [ebp + 0x10], 0
je 0x441207
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp + 8]
and edx, 0xff
mov eax, dword [ebp + 8]
shr eax, 8
xor eax, dword [edx*4 + 0x630f70]
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0x10]
sub edx, 1
mov dword [ebp + 0x10], edx
jne 0x4411d4
mov eax, dword [ebp + 8]
xor eax, 0xffffffff
pop ebp
ret
Function at 0x475220
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x6a4], 0
je 0x4752d1
cmp dword [ebp + 8], 0x100
jne 0x47529d
movzx ecx, word [ebp + 0xc]
cmp ecx, 0xd
jne 0x47529d
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x6aa]
test eax, eax
je 0x475276
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
test ecx, ecx
jge 0x47529d
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x6ab]
test eax, eax
jne 0x47529d
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x44], 0
je 0x475299
push 0
push 0
push 0
push str.return
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x44]
call fcn.00432ff0
xor eax, eax
jmp 0x4752d6
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x6a4]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 8], ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xc]
call eax
jmp 0x4752d6
mov eax, 1
mov esp, ebp
pop ebp
ret 0x10
Function at 0x49c8a0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x6b6538]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0x18]
test ecx, ecx
jne 0x49c8c5
xor eax, eax
jmp 0x49c98c
mov edx, dword [ebp - 8]
cmp dword [edx + 0x10], 0
jne 0x49c8d5
xor eax, eax
jmp 0x49c98c
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
add eax, 1
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
shl eax, 1
call fcn.0050de90
mov dword [ebp - 0x14], esp
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
jne 0x49c908
xor eax, eax
jmp 0x49c98c
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
add ecx, 0x1cc
call fcn.00436860
push 0
push 0
push 0
push str.textchanged
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 8]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x10]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, eax
call fcn.00432ff0
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 8]
mov edx, dword [edx]
mov ecx, dword [eax + 0x10]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, eax
call fcn.0042bf50
movzx ecx, al
test ecx, ecx
je 0x49c98a
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
call fcn.0044d540
xor eax, eax
lea esp, [ebp - 0x14]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050ce82
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4a2450
Capabilities:
Get hostname
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a4
mov eax, dword [0x6b6538]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, 0x202
mov word [ebp - 0x29c], ax
lea ecx, [ebp - 0x294]
push ecx
movzx edx, word [ebp - 0x29c]
push edx
call sub.WS2_32.dll_WSAStartup
test eax, eax
je 0x4a248e
xor eax, eax
jmp 0x4a2531
push 0xff
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.00526600
add esp, 0xc
push 0xff
lea ecx, [ebp - 0x104]
push ecx
call sub.WS2_32.dll_gethostname
lea edx, [ebp - 0x104]
push edx
call sub.WS2_32.dll_gethostbyname
mov dword [ebp - 0x2a0], eax
cmp dword [ebp - 0x2a0], 0
jne 0x4a24d4
xor eax, eax
jmp 0x4a2531
push 4
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x2a0]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + ecx]
push ecx
lea edx, [ebp - 0x298]
push edx
call fcn.00525b00
add esp, 0xc
movzx eax, byte [ebp - 0x298]
shl eax, 0x18
movzx ecx, byte [ebp - 0x297]
shl ecx, 0x10
add eax, ecx
movzx edx, byte [ebp - 0x296]
shl edx, 8
add eax, edx
movzx ecx, byte [ebp - 0x295]
add eax, ecx
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050ce82
mov esp, ebp
pop ebp
ret
Function at 0x4a26d0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62579b
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x6b6538]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xa8], ecx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x10]
mov dword [eax + 0x598], 0
mov ecx, dword [ebp - 0xa8]
cmp dword [ecx + 4], 0
jne 0x4a2809
mov dword [ebp - 0xc0], 8
mov dword [ebp - 0xbc], 0x800
lea edx, [ebp - 0xc0]
push edx
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
test eax, eax
je 0x4a27c3
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0xa8]
call fcn.004a2030
mov dword [ebp - 0xb0], 0x40030000
push 0
sub esp, 0x10
mov ecx, esp
mov edx, dword [ebp - 0x20]
mov dword [ecx], edx
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x18]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0xc], eax
push 0
mov ecx, dword [ebp - 0xb0]
push ecx
push 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x10]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, eax
call fcn.0042bad0
push eax
mov ecx, dword [ebp - 0xa8]
call fcn.00439ed0
push 1
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx + 0x10]
call fcn.00476130
push eax
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x10]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, eax
call fcn.0042b4c0
mov ecx, dword [eax]
push ecx
push 0x30
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0xa4]
push ecx
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x10]
mov eax, dword [edx + 0x28]
call eax
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0xb8]
call fcn.00437610
mov byte [ebp - 0xa9], al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.00436720
movzx edx, byte [ebp - 0xa9]
test edx, edx
je 0x4a2884
call fcn.004a2450
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ecx + 0x10]
mov dword [edx + 0x590], eax
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x590]
push edx
push 0
push 0x465
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push 5
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x18], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050ce82
mov esp, ebp
pop ebp
ret 4
Function at 0x4a2950
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], ecx
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4a2995
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 4]
jne 0x4a2986
mov edx, dword [ebp + 0x14]
mov dword [edx], 1
xor eax, eax
jmp 0x4a2a0d
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 8], eax
jmp 0x4a2962
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
cmp dword [ecx + 0x598], 0
jne 0x4a29fb
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
add eax, 0x590
push eax
push 0
push 0x466
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ecx + 0x598], 1
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x10]
call fcn.004a2a40
push 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret 0x10

Function at 0x4a9f50
Capabilities:
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6266db
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x6b6538]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
call fcn.00439b80
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
call fcn.004aa0e0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x10]
add eax, 0x18
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ecx], vtable.DuiLib::INotifyUI.0
mov edx, dword [ebp - 0x10]
add edx, 0x1c
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov dword [eax], vtable.DuiLib::IDialogBuilderCallback.0
mov ecx, dword [ebp - 0x10]
mov dword [ecx], vtable.DuiLib::CMenuWnd.0
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x10], vtable.DuiLib::CMenuWnd.1.0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], vtable.DuiLib::CMenuWnd.2.0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x1c], vtable.DuiLib::CMenuWnd.3.0
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x20], 0
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x6a18f4
mov ecx, dword [ebp - 0x10]
add ecx, 0x30
call fcn.00428880
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x76c], 0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x770], 0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x774], 6
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4ad330
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x6b6538]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp + 0x14]
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x76c], ecx
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x770], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 0x20]
mov dword [edx + 0x774], eax
cmp dword [ebp + 8], 0
jne 0x4ad3be
call fcn.004acf60
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x30]
mov edx, dword [eax + 0xc]
call edx
cmp dword [ebp + 0x1c], 0
je 0x4ad3be
call fcn.004acf60
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x34]
mov eax, dword [edx + 0x14]
call eax
cmp dword [ebp - 0x28], 0
je 0x4ad3cf
mov ecx, dword [ebp - 0x28]
add ecx, 0x10
mov dword [ebp - 0x38], ecx
jmp 0x4ad3d6
mov dword [ebp - 0x38], 0
call fcn.004acf60
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [edx]
call eax
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 0x76c], 0
jne 0x4ad407
mov ecx, dword [ebp + 0x18]
call fcn.0042bad0
mov dword [ebp - 0x40], eax
jmp 0x4ad42a
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x76c]
mov ecx, dword [ebp - 0x28]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x76c]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, eax
call fcn.0042bad0
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x24]
call fcn.004364d0
mov ecx, dword [eax]
mov dword [ebp - 0x14], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x10], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 8], edx
push 0
sub esp, 0x10
mov eax, esp
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
mov edx, dword [ebp - 0x10]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 8]
mov dword [eax + 0xc], edx
push 0x88
push SysReAllocString
push 0
mov eax, dword [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x28]
call fcn.00439ed0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
test eax, eax
je 0x4ad4a5
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x2c], eax
jmp 0x4ad488
push 5
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 1
push 0x86
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050ce82
mov esp, ebp
pop ebp
ret 0x1c
Function at 0x4b7640
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x6b6538]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x218], 0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov dword [ebp - 0x210], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x214], ecx
mov edx, dword [ebp - 0x214]
sub edx, 0x21
mov dword [ebp - 0x214], edx
cmp dword [ebp - 0x214], 0xd
ja case.0x4b76ac.8
mov eax, dword [ebp - 0x214]
movzx ecx, byte [eax + 0x4b774c]
jmp dword [ecx*4 + 0x4b7744]
mov edx, dword [ebp - 0x210]
or edx, 0x100
mov dword [ebp - 0x210], edx
cmp dword [ebp + 0x10], 0
je 0x4b76dc
mov eax, dword [ebp - 0x210]
or eax, 0x1000000
mov dword [ebp - 0x210], eax
push 0x208
push 0
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00526600
add esp, 0xc
push 0x104
lea edx, [ebp - 0x20c]
push edx
mov eax, dword [ebp - 0x210]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00436580
mov edx, dword [ebp - 0x218]
or edx, 1
mov dword [ebp - 0x218], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050ce82
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4be7c0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
xor edx, edx
mov ecx, edx
mov eax, edx
and ecx, 1
shr eax, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov dword [edx*4 + 0x6c6080], eax
inc edx
cmp edx, 0x100
jb 0x4be7c2
push esi
mov eax, 0x6c6084
mov esi, 0x1c0
mov edx, dword [eax - 4]
lea eax, [eax + 0x10]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x6c6080]
mov dword [eax + 0x3ec], edx
mov edx, dword [eax - 0x10]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x6c6080]
mov dword [eax + 0x3f0], edx
mov edx, dword [eax - 0xc]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x6c6080]
mov dword [eax + 0x3f4], edx
mov edx, dword [eax - 8]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x6c6080]
mov dword [eax + 0x3f8], edx
sub esi, 1
jne 0x4be867
mov dword [0x6c6074], 0x4bfc90
mov dword [0x6c606c], 0x4bfc90
mov dword [0x6c6070], 0x4bfd30
call fcn.004bfaa0
mov ecx, dword [0x6c606c]
test eax, eax
mov edx, 0x4bfd30
cmove ecx, edx
mov dword [0x6c606c], ecx
pop esi
ret

Function at 0x4be940
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, dword [edi]
test esi, esi
je 0x4be993
mov ebx, dword [ebp + 0xc]
mov dword [edi], 0
push 0
mov ecx, 0x400000
mov dword [ebp + 0x10], 0
lea eax, [ebp + 0x10]
cmp esi, ecx
push eax
mov eax, esi
cmova eax, ecx
push eax
mov eax, dword [ebp + 8]
push ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 0x10]
add ebx, ecx
add dword [edi], ecx
sub esi, ecx
test eax, eax
je 0x4be99a
test ecx, ecx
je 0x4be993
test esi, esi
jne 0x4be958
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
pop edi
pop esi
pop ebx
pop ebp
jmp dword [sym.imp.KERNEL32.dll_GetLastError]
Function at 0x4c0160
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x14]
push edi
xor edi, edi
mov esi, dword [esi]
and esi, 7
cmp eax, 5
jae 0x4c0180
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
add dword [ebp + 0x10], 5
mov ecx, dword [ebp + 8]
push ebx
lea ebx, [eax - 4]
add ebx, ecx
mov dword [ebp - 4], ebx
lea eax, [edi + ecx]
cmp eax, ebx
jae 0x4c01a9
mov cl, byte [eax]
and cl, 0xfe
cmp cl, 0xe8
je 0x4c01a6
inc eax
cmp eax, ebx
jb 0x4c0197
mov ecx, dword [ebp + 8]
mov edx, eax
sub edx, edi
mov edi, eax
sub edx, ecx
sub edi, ecx
cmp eax, ebx
jae 0x4c02ad
cmp edx, 2
jbe 0x4c0232
xor esi, esi
movzx edx, byte [eax + 4]
lea ecx, [edx + 1]
test cl, 0xfe
jne 0x4c0299
movzx ecx, byte [eax + 3]
mov ebx, dword [ebp + 0x10]
shl edx, 8
add ebx, edi
or edx, ecx
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax + 1]
shl edx, 8
or edx, ecx
mov ecx, edx
add edx, ebx
sub ecx, ebx
cmp dword [ebp + 0x18], 0
cmove edx, ecx
mov dword [ebp + 0xc], edx
mov ebx, edx
test esi, esi
je 0x4c0269
and esi, 6
shl esi, 2
mov ecx, esi
shr edx, cl
inc edx
test dl, 0xfe
jne 0x4c0267
mov ebx, 0x100
shl ebx, cl
mov ecx, dword [ebp + 0x10]
dec ebx
xor ebx, dword [ebp + 0xc]
add ecx, edi
cmp dword [ebp + 0x18], 0
je 0x4c0265
add ebx, ecx
jmp 0x4c0267
mov ecx, edx
shr esi, cl
test esi, esi
je 0x4c01c2
cmp esi, 4
ja 0x4c0257
cmp esi, 3
je 0x4c0257
mov ecx, esi
shr ecx, 1
movzx ecx, byte [ecx + eax + 1]
inc ecx
test cl, 0xfe
jne 0x4c01c2
mov ecx, dword [ebp + 8]
or esi, 8
shr esi, 1
inc edi
jmp 0x4c0190
sub ebx, ecx
xor esi, esi
mov ecx, ebx
mov byte [eax + 1], bl
shr ecx, 8
mov byte [eax + 2], cl
mov ecx, ebx
shr ebx, 0x18
and bl, 1
shr ecx, 0x10
neg bl
mov byte [eax + 3], cl
mov ecx, dword [ebp + 8]
mov byte [eax + 4], bl
mov eax, 5
mov ebx, dword [ebp - 4]
add edi, eax
jmp 0x4c0190
mov ecx, dword [ebp + 8]
or esi, 8
mov eax, 1
shr esi, 1
add edi, eax
jmp 0x4c0190
mov eax, dword [ebp + 0x14]
mov ecx, edx
shr esi, cl
xor ecx, ecx
cmp edx, 2
pop ebx
cmovbe ecx, esi
mov dword [eax], ecx
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4ce930
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, 0x1505
add eax, esi
mov ecx, eax
sub ecx, esi
push edi
xor edi, edi
cmp esi, eax
cmova ecx, edx
mov dword [ebp + 8], ecx
test ecx, ecx
je 0x4ce979
mov al, byte [esi]
push eax
call fcn.004ddd10
movsx ecx, al
lea esi, [esi + 1]
mov eax, ebx
inc edi
shl eax, 5
add esp, 4
add eax, ebx
xor ecx, eax
mov ebx, ecx
cmp edi, dword [ebp + 8]
jb 0x4ce957
pop edi
pop esi
movzx eax, bl
pop ebx
pop ebp
ret