joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41840f
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x204]
sub esp, 0x284
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp + 0x200], eax
and dword [ebp - 0x74], 0
and dword [ebp - 0x60], 0
mov ecx, str.Path
mov eax, 0x80000002
push esi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x64], ecx
mov ecx, str.UninstallString
push edi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], str.SoftwareMicrosoftWindowsCurrentVersionApp_Paths360Safe.exe
mov byte [ebp - 0x70], 1
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], str.SoftwareMicrosoftWindowsCurrentVersionApp_Paths360sd.exe
mov byte [ebp - 0x5c], 1
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], str.SoftwareMicrosoftWindowsCurrentVersionUninstallQQPCMgr
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], str.QQPCMgr.exe
mov byte [ebp - 0x48], 2
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], str.BaiduAn.exe
mov byte [ebp - 0x34], 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], str.SoftwareMicrosoftWindowsCurrentVersionUninstallKingsoft_Internet_Security
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], str.kismain.exe
mov byte [ebp - 0x20], 8
mov byte [ebp - 0xd], 0
lea esi, [ebp - 0x7c]
mov dword [ebp - 0x14], 5
xor eax, eax
push 0x208
push eax
mov word [ebp - 0xc], ax
lea eax, [ebp - 0xa]
push eax
mov dword [ebp - 0x18], 0x104
mov dword [ebp - 0x1c], 1
call fcn.004dbcc0
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [esi + 4]
push dword [esi]
push dword [esi - 4]
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x418535
cmp ax, word [ebp - 0xc]
je 0x418535
mov edi, dword [esi + 8]
test edi, edi
je 0x418521
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push edi
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x418535
mov al, byte [esi + 0xc]
or byte [ebp - 0xd], al
add esi, 0x14
dec dword [ebp - 0x14]
jne 0x4184bb
mov ecx, dword [ebp + 0x200]
mov al, byte [ebp - 0xd]
pop edi
xor ecx, ebp
pop esi
call fcn.004d5a7d
add ebp, 0x204
leave
ret
Function at 0x41855b
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x144
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp + 0x74], eax
push esi
push edi
push 0x118
xor edi, edi
lea eax, [ebp - 0xa4]
push edi
push eax
mov dword [ebp - 0xa8], 0x11c
call fcn.004dbcc0
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea eax, [ebp - 0xa8]
push eax
call esi
test eax, eax
jne 0x4185c1
lea eax, [ebp - 0xa8]
push eax
mov dword [ebp - 0xa8], 0x114
call esi
test eax, eax
je 0x418666
mov eax, dword [ebp - 0x98]
sub eax, edi
je 0x418666
dec eax
je 0x418666
dec eax
jne 0x418666
cmp dword [ebp - 0xa4], 6
jne 0x418609
mov eax, dword [ebp - 0xa0]
cmp eax, 2
je 0x4185f6
cmp eax, 3
jne 0x4185fa
mov al, 3
jmp 0x418668
cmp eax, 1
jne 0x418603
mov al, 2
jmp 0x418668
cmp eax, edi
jne 0x418666
jmp 0x4185ff
cmp dword [ebp - 0xa4], 5
jne 0x418666
cmp dword [ebp - 0xa0], 2
jne 0x41865b
push 8
pop ecx
xor eax, eax
mov dword [ebp - 0xcc], 0x24
lea edi, [ebp - 0xc8]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x418666
cmp byte [ebp + 0x72], 1
jne 0x418666
cmp word [ebp - 0xcc], 9
jmp 0x418662
cmp dword [ebp - 0xa0], 1
mov al, 1
je 0x418668
mov al, 4
mov ecx, dword [ebp + 0x74]
pop edi
xor ecx, ebp
pop esi
call fcn.004d5a7d
add ebp, 0x78
leave
ret

Function at 0x418679
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x29c
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x294], eax
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x290], ax
lea eax, [ebp - 0x28e]
push eax
call fcn.004dbcc0
add esp, 0xc
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x507b1c
push str.CLSIDD27CDB6E_AE6D_11cf_96B8_444553540000InprocServer32
push 0x80000000
mov dword [ebp - 0x298], 1
mov dword [ebp - 0x29c], 0x104
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x418792
lea eax, [ebp - 0x290]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x418792
push ebx
push esi
push edi
xor eax, eax
push 0x7e
push eax
mov word [ebp - 0x84], ax
lea eax, [ebp - 0x82]
push eax
call fcn.004dbcc0
add esp, 0xc
push 0x3f
pop ebx
lea esi, [ebp - 0x84]
lea edi, [ebp - 0x290]
call fcn.00436f88
pop edi
pop esi
pop ebx
test eax, eax
je 0x418792
lea eax, [ebp - 0x84]
push 0x2e
push eax
call fcn.004d86e3
pop ecx
pop ecx
test eax, eax
je 0x418792
add eax, 2
push 0x2e
push eax
call fcn.004d86e3
pop ecx
pop ecx
test eax, eax
je 0x418792
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x84]
push eax
push 0x50e498
push 0x40
push dword [ebp - 0x294]
call fcn.004d5add
xor eax, eax
add esp, 0x10
inc eax
jmp 0x418794
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d5a7d
leave
ret
Function at 0x418b6e
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2cc
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x290], ax
lea eax, [ebp - 0x28e]
push eax
call fcn.004dbcc0
mov esi, dword [0x5bf684]
add esp, 0xc
call fcn.00429f42
cmp esi, dword [eax + 4]
jae 0x418bd4
mov eax, dword [eax]
test eax, eax
je 0x418bd4
imul esi, esi, 0x1458
lea eax, [esi + eax + 0x208]
push eax
mov ecx, 0x104
lea edx, [ebp - 0x290]
call fcn.00402b1f
xor eax, eax
push 0x7e
push eax
mov word [ebp - 0x84], ax
lea eax, [ebp - 0x82]
push eax
call fcn.004dbcc0
push 0x38
lea eax, [ebp - 0x2c8]
push 0
push eax
mov dword [ebp - 0x2cc], 0x3c
call fcn.004dbcc0
lea eax, [ebp - 0x84]
mov dword [ebp - 0x2bc], eax
add esp, 0x18
lea eax, [ebp - 0x290]
mov dword [ebp - 0x2b8], 0x3f
lea edx, [eax + 2]
pop esi
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x418c29
lea ecx, [ebp - 0x2cc]
push ecx
sub eax, edx
sar eax, 1
push 0
push eax
lea eax, [ebp - 0x290]
push eax
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
push str.baidu.com
lea eax, [ebp - 0x84]
call fcn.0041756a
pop ecx
test eax, eax
je 0x418c67
mov al, 1
jmp 0x418cde
push str.google.com.hk
lea eax, [ebp - 0x84]
call fcn.0041756a
pop ecx
test eax, eax
je 0x418c80
mov al, 2
jmp 0x418cde
push str.so.com
lea eax, [ebp - 0x84]
call fcn.0041756a
pop ecx
test eax, eax
jne 0x418cdc
push str.so.360.cn
lea eax, [ebp - 0x84]
call fcn.0041756a
pop ecx
test eax, eax
jne 0x418cdc
push str.sogou.com
lea eax, [ebp - 0x84]
call fcn.0041756a
pop ecx
test eax, eax
je 0x418cc3
mov al, 4
jmp 0x418cde
push str.soso.com
lea eax, [ebp - 0x84]
call fcn.0041756a
neg eax
sbb al, al
pop ecx
add al, 6
jmp 0x418cde
mov al, 3
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d5a7d
leave
ret

Function at 0x418cea
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
and dword [ebp - 4], 0
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edi, dword [ebp + 8]
mov ebx, eax
lea eax, [ebp - 4]
push eax
mov eax, dword [esi]
push 0x40
shl edi, 2
push 4
add eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
and dword [ebp - 8], 0
lea eax, [ebp - 4]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [esi]
add eax, edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x418d60
mov eax, dword [ebp - 8]
cmp dword [ebp + 0xc], eax
je 0x418d60
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [ebp + 0xc]
push eax
mov eax, dword [esi]
add eax, edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x418d60
xor eax, eax
inc eax
jmp 0x418d62
xor eax, eax
pop edi
pop ebx
leave
ret
Function at 0x418e0d
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x418e31
xor eax, eax
jmp 0x418f28
mov eax, 0xcd44
mov word [ebp - 0x10], ax
mov eax, 0x11d0
mov word [ebp - 0xe], ax
xor eax, eax
lea edi, [ebp - 0x30]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x10
pop edi
xor ebx, ebx
push 0x30
lea eax, [ebp - 0x60]
push ebx
push eax
mov dword [ebp - 0x14], 0xaac56b
mov byte [ebp - 0xc], 0x8c
mov byte [ebp - 0xb], 0xc2
mov byte [ebp - 0xa], bl
mov byte [ebp - 9], 0xc0
mov byte [ebp - 8], 0x4f
mov byte [ebp - 7], 0xc2
mov byte [ebp - 6], 0x95
mov byte [ebp - 5], 0xee
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
call fcn.004dbcc0
lea eax, [ebp - 0x30]
add esp, 0xc
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
mov dword [ebp - 0x60], 0x30
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x54], 2
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x38], edi
call sub.WINTRUST.dll_WinVerifyTrust
test eax, eax
jl 0x418ecb
xor eax, eax
inc eax
jmp 0x418f28
push ebx
push ebx
lea eax, [ebp - 0x18]
push eax
call sub.WINTRUST.dll_CryptCATAdminAcquireContext
test eax, eax
je 0x418e2a
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
push esi
xor edi, edi
call fcn.00418d66
add esp, 0xc
test eax, eax
je 0x418f1d
push ebx
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call sub.WINTRUST.dll_CryptCATAdminEnumCatalogFromHash
cmp eax, ebx
je 0x418f14
push ebx
push eax
push dword [ebp - 0x18]
inc edi
call sub.WINTRUST.dll_CryptCATAdminReleaseCatalogContext
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push ebx
push dword [ebp - 0x18]
call sub.WINTRUST.dll_CryptCATAdminReleaseContext
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004d5a7d
leave
ret
Function at 0x41b6e7
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x5ac]
sub esp, 0x62c
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp + 0x5a8], eax
mov eax, dword [ebp + 0x5b8]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0x5bc]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x5c4]
push ebx
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x5cc]
push esi
push edi
mov dword [ebp - 0x74], eax
xor eax, eax
mov ebx, 0x206
push ebx
mov word [ebp + 0x198], ax
xor edi, edi
lea eax, [ebp + 0x19a]
push edi
push eax
call fcn.004dbcc0
movzx eax, byte [ebp + 0x5c0]
add esp, 0xc
sub eax, 0x20
mov esi, 0x104
je 0x41b7c1
dec eax
jne 0x41b810
cmp dword [0x53ffa4], 2
jne 0x41b79e
cmp dword [0x546fa8], edi
je 0x41b810
push ebx
mov word [ebp + 0x3a0], ax
lea eax, [ebp + 0x3a2]
push edi
push eax
call fcn.004dbcc0
push dword [0x546fa8]
push str.Cookies
push str._s_d
jmp 0x41b7f0
xor eax, eax
push ebx
mov word [ebp + 0x3a0], ax
lea eax, [ebp + 0x3a2]
push edi
push eax
call fcn.004dbcc0
push str.Default
push str.Cookies
jmp 0x41b7eb
cmp dword [0x53ffa4], 2
je 0x41b810
xor eax, eax
push ebx
mov word [ebp + 0x3a0], ax
lea eax, [ebp + 0x3a2]
push edi
push eax
call fcn.004dbcc0
push str.Default
push str.Temporary
push 0x507a0c
mov ecx, esi
lea edi, [ebp + 0x3a0]
call fcn.0040299a
add esp, 0x18
mov eax, edi
push eax
lea eax, [ebp + 0x198]
call fcn.0040239a
xor edi, edi
xor eax, eax
cmp ax, word [ebp + 0x198]
je 0x41b8fb
push ebx
mov word [ebp - 0x70], ax
lea eax, [ebp - 0x6e]
push edi
push eax
call fcn.004dbcc0
xor eax, eax
push ebx
mov word [ebp + 0x3a0], ax
lea eax, [ebp + 0x3a2]
push edi
push eax
call fcn.004dbcc0
add esp, 0x18
push esi
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x198]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea eax, [ebp - 0x70]
push eax
push 0x549db4
lea eax, [ebp + 0x3a0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp + 0x3a0]
call fcn.00436ebe
lea ebx, [ebp + 0x3a0]
call fcn.004371a4
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov eax, ebx
push eax
call esi
xor ecx, ecx
mov word [ebp + eax*2 + 0x39e], cx
mov eax, ebx
push eax
cmp dword [ebp + 0x5b4], edi
je 0x41b8ba
mov edi, dword [ebp - 0x74]
push 0x50e498
mov ecx, 0x103
call fcn.0040299a
jmp 0x41b8f5
call esi
inc eax
cmp eax, 0x3fffffff
jle 0x41b8c8
xor eax, eax
jmp 0x41b8e2
lea ebx, [eax + eax]
mov eax, ebx
call fcn.004de320
mov esi, esp
push edi
push ebx
lea eax, [ebp + 0x3a0]
push eax
call fcn.00406a80
mov edi, dword [ebp - 0x74]
push eax
push 0x514d4c
mov ecx, 0x103
call fcn.00412a82
pop ecx
pop ecx
xor eax, eax
jmp 0x41b91f
cmp dword [ebp - 0x78], edi
je 0x41b91a
push dword [ebp - 0x74]
push dword [ebp + 0x5c8]
push dword [ebp - 0x80]
push dword [ebp + 0x5c0]
push dword [ebp - 0x7c]
call dword [ebp - 0x78]
jmp 0x41b91f
mov eax, 0x80070057
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x5a8]
xor ecx, ebp
call fcn.004d5a7d
add ebp, 0x5ac
leave
ret 0x1c
Function at 0x41dd26
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push 0x18
call fcn.004d6661
pop ecx
test eax, eax
je 0x41dd97
mov ecx, dword [ebp + 0xc]
and dword [ebp - 4], 0
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x14], ecx
lea ecx, [ebp - 4]
push ecx
push 0
push eax
push fcn.0041dd99
push 0x200000
push 0
mov dword [eax], 1
mov dword [eax + 0xc], esi
call fcn.004d67c7
add esp, 0x18
test eax, eax
je 0x41dd81
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 0xffffffff
jne 0x41dd97
cmp dword [0x548518], 0
jne 0x41dd97
mov eax, dword [ebp - 4]
mov dword [0x548518], eax
leave
ret
Function at 0x41f1fd
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
lea ebp, [esp - 0x1070]
mov eax, 0x1070
call fcn.004e84e0
push 0xffffffffffffffff
push 0x4f4c00
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp + 0x106c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x1078]
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x18], eax
cmp byte [0x54d4a0], bl
jne 0x41f2e3
mov byte [0x54d4a0], 1
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], ebx
mov eax, dword [edi + 0x3124]
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push eax
call dword [ecx + 0x48]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], ebx
cmp eax, ebx
je 0x41f288
mov ecx, dword [eax]
lea edx, [ebp - 0x14]
push edx
push 0x515868
push eax
call dword [ecx]
mov dword [ebp - 0x1c], ebx
lea edx, [ebp - 0x1c]
push edx
push 0x515848
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push 0x5054e0
push eax
call dword [ecx + 0xc]
neg eax
sbb al, al
inc al
mov byte [0x54d4a1], al
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x41f2c2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x41f2d2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x41f2e3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0x1068
lea eax, [ebp + 4]
push ebx
push eax
mov dword [ebp - 0x20], ebx
mov dword [ebp], ebx
call fcn.004dbcc0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
add esp, 0xc
push 0x10
call esi
push 0x11
shr eax, 8
movzx eax, al
mov dword [ebp - 0x24], eax
call esi
xor edx, edx
inc edx
shr eax, 8
movzx ecx, al
mov eax, dword [edi + 0x3218]
cmp eax, edx
je 0x41f32d
mov dword [ebp + 0x10], ebx
cmp dword [ebp - 0x24], ebx
je 0x41f330
mov dword [ebp + 0x10], edx
cmp eax, edx
je 0x41f343
cmp ecx, ebx
jne 0x41f343
mov dword [ebp + 0x14], ebx
cmp dword [0x5bf640], ebx
jne 0x41f346
mov dword [ebp + 0x14], edx
xor ecx, ecx
push 3
pop esi
cmp eax, esi
sete cl
mov dword [ebp + 0x18], ecx
cmp dword [ebp - 0x18], ebx
je 0x41f371
push dword [ebp - 0x18]
lea eax, [ebp + 0x24]
push 0x50e498
push 0x823
push eax
call fcn.004d5add
add esp, 0x10
lea eax, [ebp]
push eax
push dword [edi + 4]
mov ecx, edi
call fcn.0040cb3d
mov dword [ebp - 0x38], 0x515d28
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], esi
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x38]
call fcn.0042b62d
cmp eax, ebx
je 0x41f3b2
push dword [ebp + 0x20]
lea edi, [ebp - 0x20]
push eax
call fcn.00416f38
pop ecx
pop ecx
mov esi, dword [ebp - 0x20]
lea ecx, [ebp - 0x38]
call fcn.0042b548
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x106c]
xor ecx, ebp
call fcn.004d5a7d
add ebp, 0x1070
leave
ret 4
Function at 0x420445
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1050
call fcn.004e84e0
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 4]
mov eax, 0x202
sub ecx, eax
je 0x42051d
sub ecx, 5
je 0x420496
dec ecx
jne 0x420566
lea ecx, [edi + 0x3224]
xor ebx, ebx
cmp dword [ecx], ebx
je 0x420566
mov dword [ecx], ebx
mov dword [esi + 4], eax
jmp 0x420566
xor eax, eax
push 0x1046
mov word [ebp - 0x1050], ax
xor ebx, ebx
lea eax, [ebp - 0x104e]
push ebx
push eax
call fcn.004dbcc0
add esp, 0xc
lea eax, [ebp - 0x1050]
push eax
mov ecx, edi
call fcn.004200fc
test eax, eax
je 0x420566
cmp word [ebp - 0x1050], bx
je 0x420566
lea eax, [ebp - 0x1050]
push eax
call fcn.0043a1f1
pop ecx
test eax, eax
je 0x4204fd
mov dword [esi + 4], 0x201
mov dword [edi + 0x3224], 1
jmp 0x420566
cmp dword [0x54846c], ebx
jne 0x420518
mov eax, dword [edi]
push 1
lea ecx, [ebp - 0x1050]
push ecx
mov ecx, edi
call dword [eax + 0xcc]
xor eax, eax
inc eax
jmp 0x420568
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
call ebx
push 0x11
mov dword [edi + 0x3220], eax
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 8
test al, al
je 0x420566
push esi
mov esi, dword [edi + 0x3124]
call fcn.00438d0c
pop ecx
test eax, eax
jne 0x420566
mov dword [edi + 0x3228], 1
call ebx
mov dword [edi + 0x321c], eax
xor eax, eax
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.004d5a7d
leave
ret

Function at 0x42159d
Capabilities:
Create process on windows
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x194]
sub esp, 0x214
mov eax, dword [0x52ec00]
xor eax, ebp
mov dword [ebp + 0x190], eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
lea eax, [ebp - 0x80]
push eax
push str.SoftwareMicrosoftInternet_ExplorerDefault_HTML_Editor_shelleditcommand
push 0x80000001
mov dword [ebp - 0x7c], 0x104
call esi
test eax, eax
je 0x4215f2
lea eax, [ebp - 0x80]
push eax
push str.InternetShortcut_shelleditcommand
push 0x80000000
call esi
test eax, eax
jne 0x42167b
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
push 0
push 0x507b1c
push dword [ebp - 0x80]
mov dword [ebp - 0x7c], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x80]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x7c], 0
lea esi, [ebp - 0x78]
jbe 0x42167b
cmp word [ebp - 0x78], 0x22
jne 0x42162f
lea esi, [ebp - 0x76]
push 0x22
push esi
call fcn.004d62f7
pop ecx
pop ecx
test eax, eax
je 0x421642
xor ecx, ecx
mov word [eax], cx
push str._dde
push esi
call fcn.004d621b
pop ecx
pop ecx
test eax, eax
je 0x421658
xor ecx, ecx
mov word [eax], cx
push 5
push 0
lea eax, [ebx + 0x10b4]
push eax
push esi
push str.open
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jg 0x421683
push 2
push ebx
call fcn.00421699
mov ecx, dword [ebp + 0x190]
xor ecx, ebp
pop esi
call fcn.004d5a7d
add ebp, 0x194
leave
ret
Function at 0x421c00
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push 4
lea eax, [ebp - 4]
push eax
push 4
push str.UseSecBand
push str.SoftwareMicrosoftInternet_ExplorerNew_Windows
xor esi, esi
push 0x80000001
mov dword [ebp - 4], esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
cmp dword [0x54740c], esi
jne 0x421c3f
push str.urlmon.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x54740c], eax
push 1
push 9
call fcn.0043a8cd
push 1
push 0xf
call fcn.0043a8cd
push 1
push 0xa
call fcn.0043a8cd
push esi
push 0xd
call fcn.0043a8cd
push esi
push 5
call fcn.0043a8cd
push esi
push 0xc
call fcn.0043a8cd
push 1
push 8
call fcn.0043a8cd
add esp, 0x38
call fcn.00417195
pop esi
leave
ret

Function at 0x422565
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
mov eax, dword [ebp + 8]
and dword [esp], 0
push ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov ebx, ecx
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov edi, 0x50ab58
test edi, edi
je 0x42259b
push dword [esp + 8]
push edi
call fcn.004229e0
inc dword [esp + 8]
add edi, 0x20
cmp edi, 0x50abb8
jl 0x42258d
test ebx, ebx
je 0x42262a
cmp dword [esp + 0x10], 0
je 0x42262a
cmp dword [esp + 0xc], 0
mov ebx, 0x50e498
mov edi, 0x103
je 0x4225d8
push dword [esp + 0xc]
lea eax, [esi + 0x28]
push ebx
push edi
push eax
call fcn.004d5add
add esp, 0x10
push dword [esp + 0x14]
lea eax, [esi + 0x230]
push ebx
push edi
push eax
call fcn.004d5add
push dword [esp + 0x20]
lea eax, [esi + 0x438]
push ebx
push edi
push eax
call fcn.004d5add
xor edi, edi
push edi
push 4
push esi
push 0x422672
push edi
push edi
call fcn.004d67c7
add esp, 0x38
mov dword [esi + 0x24], eax
cmp eax, edi
je 0x42262a
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push dword [esi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 8