joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42fb90
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x575840
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x5f0bf8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 1
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x42fbc7
add eax, 0xc
jmp 0x42fbcc
mov eax, 0x587f8c
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push ecx
push 2
push 0
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x42fc10
mov byte [ebp - 4], 0
lea ecx, [ebp + 0xc]
call fcn.005685da
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.005685da
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x42fc1c
add eax, 0xc
jmp 0x42fc21
mov eax, 0x587f8c
push eax
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ecx, dword [ebp - 0x10]
push ecx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x42fbe3
mov byte [ebp - 4], 0
lea ecx, [ebp + 0xc]
call fcn.005685da
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.005685da
lea eax, [esi + 1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x42fc70
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x575892
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x128], esi
mov dword [ebp - 0x118], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x42fcc6
add eax, 0xc
jmp 0x42fccb
mov eax, 0x587f8c
lea edx, [ebp - 0x124]
push edx
mov ebx, 1
push ebx
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42fd42
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x120], 0x104
test eax, eax
je 0x42fd02
add eax, 0xc
jmp 0x42fd07
mov eax, 0x587f8c
lea ecx, [ebp - 0x120]
push ecx
lea edx, [ebp - 0x114]
push edx
mov edx, dword [ebp - 0x124]
lea ecx, [ebp - 0x11c]
push ecx
push 0
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42fd42
push 0xffffffffffffffff
lea eax, [ebp - 0x114]
push eax
mov ecx, esi
call fcn.005685f4
jmp 0x42fd50
push 0xffffffffffffffff
push 0x587f8c
mov ecx, esi
call fcn.005685f4
mov dword [ebp - 0x118], ebx
mov byte [ebp - 4], bl
lea ecx, [ebp + 0x10]
call fcn.005685da
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x14]
call fcn.005685da
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret
Function at 0x42fd90
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0
lea eax, [ebp - 4]
push eax
push 0
push 2
push 0
push 0
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x42fdbc
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
push 4
lea eax, [ebp + 0x14]
push eax
push 4
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x42fdf0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
sub esp, 0x10
lea eax, [ebp - 0xc]
push eax
push 1
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42fe41
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0xc]
lea edx, [ebp - 8]
push edx
push 0
push eax
push ecx
mov dword [ebp - 4], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42fe41
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov esp, ebp
pop ebp
ret

Function at 0x42fe50
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0
lea eax, [ebp - 4]
push eax
push 0
push 2
push 0
push 0
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x42fe7c
xor eax, eax
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
mov eax, edx
push esi
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42fe85
mov ecx, dword [ebp + 0x10]
sub eax, esi
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edx
mov edx, dword [ebp - 4]
push 1
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x42fec0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5758f0
mov eax, dword fs:[0]
push eax
sub esp, 0x114
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 1
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x11c]
push ecx
push 0x20019
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42ffa1
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x114]
push ecx
mov ecx, dword [ebp - 0x11c]
lea edx, [ebp - 0x118]
push edx
push 0
push eax
push ecx
mov dword [ebp - 0x120], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42ffa1
mov byte [ebp - 4], al
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42ff74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ff9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x42ffec
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ffc4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ffea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret

Function at 0x430290
Capabilities:
Identify system language via api

Disassembly:
push esi
mov esi, 0xbf69
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx eax, ax
cmp eax, 0x1404
jg 0x4302bd
je 0x4302b6
cmp eax, 0x404
je 0x4302c4
cmp eax, 0xc04
jne 0x4302cb
mov eax, 0xbf8d
pop esi
ret
cmp eax, 0x7c04
jne 0x4302cb
mov eax, 0xbf70
pop esi
ret
and eax, 0x3ff
add eax, 0xfffffffc
cmp eax, 0x15
ja case.0x4302df.5
movzx eax, byte [eax + 0x430378]
jmp dword [eax*4 + 0x43034c]
mov esi, 0xbf78
mov ax, si
pop esi
ret
mov esi, 0xbf76
mov ax, si
pop esi
ret
mov esi, 0xbf8f
mov ax, si
pop esi
ret
mov esi, 0xbf72
mov ax, si
pop esi
ret
mov esi, 0xbf7a
mov ax, si
pop esi
ret
mov esi, 0xbf83
mov ax, si
pop esi
ret
mov esi, 0xbf89
mov ax, si
pop esi
ret
mov esi, 0xbf7b
mov ax, si
pop esi
ret
mov esi, 0xbf6f
mov ax, si
pop esi
ret
mov esi, 0xbf81
mov ax, si
pop esi
ret
Function at 0x430860
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c8
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x948]
push ecx
push 1
xor esi, esi
push esi
push edi
mov dword [ebp - 0x918], edi
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x948], 0x2c
mov dword [ebp - 0x944], 6
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
push 0x7c
lea edx, [ebp - 0x880]
push esi
push edx
mov dword [ebp - 0x884], esi
call fcn.00543b50
push 0x7c
lea eax, [ebp - 0x900]
push esi
push eax
mov dword [ebp - 0x904], esi
call fcn.00543b50
push 0x7c
lea ecx, [ebp - 0x9c4]
push esi
push ecx
mov dword [ebp - 0x9c8], edi
call fcn.00543b50
mov edx, dword [ebp - 0x908]
add esp, 0x24
push 4
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push eax
push ebx
mov dword [ebp - 0x908], eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov eax, dword [ebp - 0x908]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
movzx ecx, word [edi]
movzx edx, word [edi + 2]
add eax, edi
mov dword [ebp - 0x914], eax
mov dword [ebp - 0x910], ecx
lea edi, [edi + edx + 4]
test ecx, ecx
je 0x430949
add edi, 4
cmp edi, eax
jae 0x430a9e
jmp 0x430959
mov ecx, dword [ebp - 0x910]
test ecx, ecx
je 0x430971
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp - 0x908]
mov dword [ebp - 0x90c], eax
add edi, 0x12
jmp 0x43098e
movzx ebx, word [edi]
add edi, 2
mov dword [ebp - 0x908], ebx
test bl, 0x10
jne 0x43098e
movzx ecx, word [edi]
mov dword [ebp - 0x90c], ecx
add edi, 2
push 0x400
push edi
lea edx, [ebp - 0x804]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp word [edi], 0
je 0x4309b0
add edi, 2
cmp word [edi], 0
jne 0x4309a7
add edi, 2
cmp dword [ebp - 0x910], 0
je 0x4309e0
mov ecx, dword [ebp - 0x90c]
mov edx, dword [ebp - 0x918]
push 0
lea eax, [ebp - 0x804]
push eax
push ecx
push edx
call fcn.00430810
add esp, 0x10
jmp 0x430a92
inc dword [ebp + esi*4 - 0x884]
mov eax, dword [ebp + esi*4 - 0x884]
test bl, 0x10
je 0x430a46
mov ebx, dword [ebp + esi*4 - 0x9c8]
push 1
lea ecx, [ebp - 0x804]
push ecx
dec eax
push eax
push ebx
call fcn.00430810
mov eax, dword [ebp + esi*4 - 0x884]
mov edx, dword [ebp - 0x908]
add esp, 0x10
dec eax
push eax
and edx, 0x80
push ebx
mov dword [ebp + esi*4 - 0x904], edx
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp + esi*4 - 0x9c4], eax
inc esi
mov dword [ebp + esi*4 - 0x884], 0
jmp 0x430a92
mov ecx, dword [ebp - 0x90c]
mov edx, dword [ebp + esi*4 - 0x9c8]
push 0
lea eax, [ebp - 0x804]
push eax
push ecx
push edx
call fcn.00430810
add esp, 0x10
test bl, bl
jns 0x430a92
dec esi
js 0x430a9e
lea ecx, [ecx]
cmp dword [ebp + esi*4 - 0x904], 0
je 0x430a8e
dec esi
jns 0x430a70
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret
test esi, esi
js 0x430a9e
cmp edi, dword [ebp - 0x914]
jb 0x430953
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005437e5
mov esp, ebp
pop ebp
ret
Function at 0x432a80
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
lea ecx, [ebp - 4]
movzx eax, ax
push ecx
lea edx, [ebp - 8]
push edx
mov ecx, 0x5f66dc
mov dword [ebp - 4], eax
call fcn.00432820
mov eax, dword [eax]
cmp eax, dword [0x5f66e0]
je 0x432ac3
movzx ecx, word [0x5eba8c]
cmp dword [eax + 0x10], ecx
jne 0x432ac3
mov eax, 1
mov esp, ebp
pop ebp
ret
xor eax, eax
mov esp, ebp
pop ebp
ret

Function at 0x433c40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5762b8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
mov eax, dword [0x5f0bf8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp dword [ebx + 0xa0], 0
jne 0x433d00
mov dword [ebp - 0x10], 0
mov dword [ebp - 4], 0
push 0x104
push 0x104
lea ecx, [ebp - 0x10]
call fcn.0056884f
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
call fcn.00568c7a
push 0x58ea6c
lea ecx, [ebp - 0x10]
call fcn.0056938e
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x433cbe
add eax, 0xc
jmp 0x433cc3
mov eax, 0x587f8c
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x433cea
push 0x6a
push esi
call dword [sym.imp.USER32.dll_LoadCursorW]
test eax, eax
je 0x433cea
push eax
call dword [sym.imp.USER32.dll_CopyIcon]
mov dword [ebx + 0xa0], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.005685da
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x433d20
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
lea edx, [ebp - 0x10c]
push edx
push 1
push 0
push ecx
push eax
mov dword [ebp - 0x114], 1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test edi, edi
jne 0x433dbe
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x108]
push ecx
lea edx, [ebp - 0x114]
push edx
push edi
push edi
push eax
mov dword [ebp - 0x110], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x108]
mov edx, esi
mov ecx, eax
sub edx, ecx
jmp 0x433da0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x433da0
mov edx, dword [ebp - 0x10c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.005437e5
mov esp, ebp
pop ebp
ret
Function at 0x4350a0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [ebp - 0x110]
push eax
push 0x20019
xor edi, edi
push edi
push str.SystemCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x118], 0x104
mov dword [ebp - 0x11c], 1
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x114], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x435142
push esi
lea ecx, [ebp - 0x10c]
push str._sConnection
push ecx
call fcn.00543abd
mov ecx, dword [ebp - 0x110]
add esp, 0xc
lea edx, [ebp - 0x114]
push edx
push 0x20019
push edi
lea eax, [ebp - 0x10c]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x435154
mov edx, dword [ebp - 0x110]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x118]
push eax
mov eax, dword [ebp - 0x114]
lea ecx, [ebp - 0x10c]
push ecx
lea edx, [ebp - 0x11c]
push edx
push edi
push str.PnpInstanceID
push eax
mov dword [ebp - 0x118], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4351a7
push 3
lea ecx, [ebp - 0x10c]
push 0x587f9c
push ecx
call fcn.005439fd
add esp, 0xc
test eax, eax
jne 0x4351a7
lea edi, [eax + 1]
mov edx, dword [ebp - 0x114]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call esi
mov eax, dword [ebp - 0x110]
push eax
call esi
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.005437e5
mov esp, ebp
pop ebp
ret
Function at 0x4351e0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x52c
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x510]
push eax
push 0x20019
push 0
push str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002bE10318
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x524], 0x104
mov dword [ebp - 0x51c], 1
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x514], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x43524d
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret
push esi
push 0x3ff
lea ecx, [ebp - 0x50b]
push 0
push ecx
mov byte [ebp - 0x50c], 0
call fcn.00543b50
mov ecx, dword [ebp - 0x510]
add esp, 0xc
xor esi, esi
push esi
push esi
push esi
push esi
lea edx, [ebp - 0x518]
push edx
lea eax, [ebp - 0x50c]
push eax
push esi
push ecx
mov dword [ebp - 0x518], 0x400
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
cmp eax, 0x103
jne 0x4352bc
mov edx, dword [ebp - 0x510]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret
push edi
test eax, eax
jne 0x4353d3
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
jmp 0x4352d0
mov edx, dword [ebp - 0x510]
lea eax, [ebp - 0x514]
push eax
push 0x20019
push 0
lea ecx, [ebp - 0x50c]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x43539c
lea eax, [ebp - 0x524]
push eax
mov eax, dword [ebp - 0x514]
lea ecx, [ebp - 0x10c]
push ecx
lea edx, [ebp - 0x51c]
push edx
push 0
push str.NetCfgInstanceId
push eax
call edi
test eax, eax
jne 0x43539c
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10c]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x435350
test dl, dl
je 0x43534c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x435350
add eax, 2
add ecx, 2
test dl, dl
jne 0x435330
xor eax, eax
jmp 0x435355
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43539c
mov eax, 4
lea ecx, [ebp - 0x52c]
push ecx
mov ecx, dword [ebp - 0x514]
lea edx, [ebp - 0x520]
push edx
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x528], eax
lea eax, [ebp - 0x528]
push eax
push 0
push str.Characteristics
push ecx
call edi
test eax, eax
jne 0x43539c
test byte [ebp - 0x520], 4
jne 0x4353fd
mov ecx, dword [ebp - 0x510]
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x518]
push edx
lea eax, [ebp - 0x50c]
push eax
inc esi
push esi
push ecx
mov dword [ebp - 0x518], 0x400
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
je 0x4352d0
mov ecx, dword [ebp - 0x514]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call esi
mov edx, dword [ebp - 0x510]
push edx
call esi
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x510]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call esi
mov eax, dword [ebp - 0x514]
push eax
call esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
mov eax, 1
pop esi
call fcn.005437e5
mov esp, ebp
pop ebp
ret
Function at 0x435dd0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x576769
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x5f0bf8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], 2
mov esi, dword [ebp + 8]
push 0x587f88
mov ecx, esi
call fcn.00403d20
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push eax
push 1
push ebx
push ecx
push edx
mov dword [ebp - 0x18], 1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x435eb0
mov edx, dword [ebp + 0x14]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x10]
push ebx
lea ecx, [ebp - 0x14]
push ecx
push ebx
push edx
push eax
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x14], 4
call edi
test eax, eax
jne 0x435ea6
mov ecx, dword [ebp + 0xc]
inc ecx
push ecx
call fcn.00440742
mov edx, dword [ebp + 0xc]
inc edx
push edx
mov esi, eax
push ebx
push esi
call fcn.00543b50
mov edx, dword [ebp + 0x14]
add esp, 0x10
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x10]
push esi
lea ecx, [ebp - 0x14]
push ecx
push ebx
push edx
push eax
call edi
test eax, eax
jne 0x435e9a
mov ecx, dword [ebp + 8]
push esi
call fcn.00402c10
push esi
call fcn.00440737
mov esi, dword [ebp + 8]
add esp, 4
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x435ed3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x435ef5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x438cb0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x576f58
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push esi
mov eax, dword [0x5f0bf8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.0044184e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x438cf0
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 1
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x438d2a
push 0x104
lea ecx, [ebp - 0x14]
call fcn.00401e20
mov esi, dword [ebp - 0x14]
push 0x104
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.00543dc3
add esp, 8
test eax, eax
js 0x438e05
cmp eax, dword [esi - 8]
jg 0x438e05
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov dword [ebp - 0x10], ecx
push str.SoftwareMicrosoftWindows_NTCurrentVersionAppCompatFlagsCompatibility_AssistantPersisted
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x1c], 1
call fcn.00404420
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x10]
push edx
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x438da5
mov edx, dword [ebp - 0x10]
push 4
lea ecx, [ebp - 0x1c]
push ecx
push 4
push eax
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438dd2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438df5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00401090
int3