joyce8/EMBER2024-capa huggingface dataset:
Function at 0x406080
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0xc
lea eax, [esp]
push esi
push 4
push eax
push 0
push 0
push 0x10
call sub.POWRPROF.dll_CallNtPowerInformation
test byte [esp + 4], 2
je 0x4060a7
mov eax, 1
pop esi
add esp, 0xc
ret
lea ecx, [esp + 8]
mov dword [esp + 8], 8
push ecx
call dword [sym.imp.USER32.dll_GetLastInputInfo]
mov eax, dword [0x42557c]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test eax, eax
jne 0x406103
call esi
mov edx, dword [esp + 0xc]
mov ecx, dword [0x420930]
sub eax, edx
cmp eax, ecx
jb 0x4060fa
push 0
call fcn.00405a20
add esp, 4
neg eax
sbb eax, eax
pop esi
neg eax
mov dword [0x42557c], eax
mov eax, 1
add esp, 0xc
ret
mov eax, dword [0x42557c]
test eax, eax
je 0x406133
call esi
mov edx, dword [esp + 0xc]
mov ecx, dword [0x420930]
sub eax, edx
cmp eax, ecx
jae 0x406133
push 1
call fcn.00405a20
add esp, 4
neg eax
sbb eax, eax
pop esi
inc eax
mov dword [0x42557c], eax
mov eax, 1
add esp, 0xc
ret
xor eax, eax
pop esi
add esp, 0xc
ret

Function at 0x406150
Capabilities:
Identify system language via api

Disassembly:
sub esp, 8
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
and eax, 0x3ff
cmp ax, 0x12
je 0x40616a
cmp ax, 0x11
jne 0x40618a
mov ecx, dword [0x4254b0]
lea eax, [esp + 4]
push eax
push 1
push 0xc1
push 0x95510933
push ecx
call fcn.00404ab0
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
lea edx, [esp]
mov dword [esp], eax
push edx
push str.CurrentSystemLCID
call fcn.004091e0
add esp, 0x10
ret
Function at 0x407a40
Capabilities:
Set registry value

Disassembly:
sub esp, 0x208
push esi
mov esi, dword [esp + 0x210]
test esi, esi
je 0x407b04
lea eax, [esp + 0xc]
push str.SOFTWARENVIDIA_CorporationGlobal
push eax
call fcn.0040f5ae
lea ecx, [esp + 0x14]
push 0x4201a8
push ecx
call fcn.0040f584
lea edx, [esp + 0x1c]
push str.NvSvc
push edx
call fcn.0040f584
lea eax, [esp + 0x24]
push 0x4201a8
push eax
call fcn.0040f584
lea ecx, [esp + 0x2c]
push str.State
push ecx
call fcn.0040f584
add esp, 0x28
lea edx, [esp + 8]
lea eax, [esp + 4]
lea ecx, [esp + 0xc]
push edx
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x407b04
lea edx, [esp + 0x214]
push 4
push edx
push 4
push eax
mov eax, dword [esp + 0x14]
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, dword [esp + 4]
mov esi, eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
sete al
pop esi
add esp, 0x208
ret
xor eax, eax
pop esi
add esp, 0x208
ret

Function at 0x407de0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x18
lea eax, [esp + 4]
push esi
xor esi, esi
push eax
push 0xf003f
push esi
push str.SOFTWARENVIDIA_CorporationGlobalNvSvc
push 0x80000002
mov dword [esp + 0x1c], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407eac
lea ecx, [esp + 0x14]
lea edx, [esp + 4]
push ecx
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x1c]
push edx
push eax
push esi
push str.BitIndicators
push ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x407ea1
test byte [esp + 4], 1
je 0x407e81
lea edx, [esp + 0xc]
lea eax, [esp + 0x10]
push edx
push eax
push esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
call fcn.00407960
call fcn.00407bf0
lea ecx, [esp + 0x18]
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.004079f0
mov eax, dword [esp + 0x18]
add esp, 0x14
and al, 0xfe
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 4]
push eax
mov eax, dword [esp + 0xc]
push ecx
push edx
push esi
push str.BitIndicators
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
add esp, 0x18
ret
Function at 0x407f30
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x26c
push esi
push edi
mov ecx, 0x15
mov esi, str.SOFTWARENVIDIA_CorporationGlobalNVTweak
lea edi, [esp + 0x14]
lea eax, [esp + 0x6c]
rep movsd dword es:[edi], dword [esi]
push str.SOFTWARENVIDIA_CorporationGlobal
push eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 4
movsw word es:[edi], word [esi]
call fcn.0040f5ae
lea ecx, [esp + 0x74]
push 0x4201a8
push ecx
call fcn.0040f584
lea edx, [esp + 0x7c]
push str.NVTweak
push edx
call fcn.0040f584
add esp, 0x18
lea eax, [esp + 8]
lea ecx, [esp + 0x14]
push eax
push 1
push 0
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [esp + 8]
test eax, eax
je 0x407ff5
lea edx, [esp + 0x10]
lea ecx, [esp + 0xc]
push edx
push ecx
push 0
push 0
push str.NvCplHotPlugAware
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [esp + 8]
mov esi, eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x40800c
mov ecx, dword [esp + 0x278]
mov eax, 1
pop edi
pop esi
mov dword [ecx], eax
add esp, 0x26c
ret
mov edx, dword [esp + 0x278]
mov eax, 1
pop edi
pop esi
mov dword [edx], eax
add esp, 0x26c
ret
mov eax, dword [esp + 0x278]
mov ecx, dword [esp + 0xc]
pop edi
pop esi
mov dword [eax], ecx
mov eax, 1
add esp, 0x26c
ret

Function at 0x408030
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x26c
push esi
push edi
mov ecx, 0x15
mov esi, str.SOFTWARENVIDIA_CorporationGlobalNVTweak
lea edi, [esp + 0x14]
lea eax, [esp + 0x6c]
rep movsd dword es:[edi], dword [esi]
push str.SOFTWARENVIDIA_CorporationGlobal
push eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 4
movsw word es:[edi], word [esi]
call fcn.0040f5ae
lea ecx, [esp + 0x74]
push 0x4201a8
push ecx
call fcn.0040f584
lea edx, [esp + 0x7c]
push str.NVTweak
push edx
call fcn.0040f584
add esp, 0x18
lea eax, [esp + 8]
lea ecx, [esp + 0x14]
push eax
push 1
push 0
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [esp + 8]
pop edi
test eax, eax
pop esi
je 0x4080f3
lea edx, [esp + 8]
lea ecx, [esp + 4]
push edx
push ecx
push 0
push 0
push str.FSShutDownNotification
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [esp]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x270]
mov ecx, dword [esp + 4]
mov dword [eax], ecx
mov eax, 1
add esp, 0x26c
ret
mov edx, dword [esp + 0x270]
xor eax, eax
mov dword [edx], eax
mov eax, 1
add esp, 0x26c
ret
Function at 0x4081c0
Capabilities:
Get common file path
Persist via run registry key
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x428
push ebp
lea eax, [esp + 4]
push edi
xor edi, edi
push eax
push 0x2001f
push edi
mov ebp, 1
push str.SOFTWAREMicrosoftWindowsCurrentVersionRun
push 0x80000002
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x408342
push edi
push edi
lea ecx, [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
lea edx, [esp + 0x1c]
push ecx
push edx
push edi
push edi
push edi
push edi
push edi
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x408342
mov eax, dword [esp + 0xc]
push ebx
inc eax
push esi
mov dword [esp + 0x14], eax
lea ecx, [eax + eax]
push ecx
call fcn.0040fe67
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 4
xor ebx, ebx
cmp eax, edi
jbe 0x4082d2
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push edi
push edi
push edi
lea eax, [esp + 0x30]
push edi
push eax
push esi
push ebx
push ecx
mov dword [esp + 0x44], edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x40834d
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x1c]
lea eax, [esp + 0x28]
push edx
push eax
push edi
push edi
push esi
push ecx
mov dword [esp + 0x34], 0x103
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40834d
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x28]
push eax
mov word [esp + edx*2 + 0x2c], di
call fcn.0040fd2a
lea ecx, [esp + 0x2c]
push str.NVSTARTUP
push ecx
call fcn.0040fc00
add esp, 0xc
test eax, eax
je 0x40834f
mov dword [esp + 0x20], edi
push esi
call fcn.0040fc41
mov eax, dword [esp + 0x24]
add esp, 4
cmp eax, edi
pop esi
pop ebx
je 0x408361
cmp ebp, edi
je 0x408361
lea edx, [esp + 0x228]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [esp + 0x228]
lea ecx, [esp + 0x20]
push eax
push str.RUNDLL32.EXE__sNvCpl.dll_NvStartup
push ecx
call fcn.0040f5d3
add esp, 0xc
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [esp + 8]
lea eax, [eax + eax + 2]
lea ecx, [esp + 0x20]
push eax
push ecx
push 1
push edi
push str.NvCplDaemon
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x408361
pop edi
xor eax, eax
pop ebp
add esp, 0x428
ret
xor ebp, ebp
mov eax, dword [esp + 0x18]
inc ebx
cmp ebx, eax
jb 0x408253
jmp 0x4082d2
mov eax, ebp
pop edi
pop ebp
add esp, 0x428
ret
Function at 0x408380
Capabilities:
Create process on windows
Get common file path

Disassembly:
sub esp, 0x368
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x14], 0
call fcn.00403220
mov esi, eax
test esi, esi
jne 0x4083a8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret
mov ebp, dword [esp + 0x380]
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
push 0
lea eax, [esp + 0x74]
push 0x104
push eax
push 0xffffffffffffffff
push ebp
push 0
push 0
call ebx
lea ecx, [esp + 0x6c]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
jne 0x4083f4
push esi
call fcn.00403240
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret
mov eax, dword [0x4254d0]
test eax, eax
jne 0x40843f
mov eax, dword [esp + 0x384]
push 0
push 0
lea edx, [esp + 0x74]
push 0x104
push edx
push 0xffffffffffffffff
push eax
push 0
push 0
call ebx
lea ecx, [esp + 0x6c]
push 0
push ecx
push esi
push 0
call edi
push esi
call fcn.00403240
mov eax, dword [esp + 0x18]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret
push esi
mov dword [esp + 0x14], 0
call fcn.00403240
mov eax, dword [esp + 0x380]
add esp, 4
lea edx, [esp + 0x10]
push edx
push eax
call dword [0x4254d0]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40853e
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x2c]
mov dword [esp + 0x28], 0x44
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x170]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esi, eax
cmp word [esp + esi*2 + 0x16e], 0x5c
je 0x4084b8
lea edx, [esp + 0x170]
push 0x4201a8
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
inc esi
mov eax, dword [esp + 0x384]
lea ecx, [esp + esi*2 + 0x170]
push eax
push ebp
push str.NVCPL.DLL
push str.rundll32.exe__s__s__s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea edx, [esp + 0x18]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x170]
push edx
mov edx, dword [esp + 0x14]
push eax
push 0
push 0
push 0xa000000
push 0
push 0
push 0
push ecx
push 0
push edx
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x408537
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x1c], 1
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x1c]
push ecx
call esi
mov edx, dword [esp + 0x18]
push edx
call esi
mov eax, dword [esp + 0x10]
push eax
call esi
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret
Function at 0x408550
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x9c
push esi
push edi
mov ecx, 0x18
mov esi, str.SOFTWARENVIDIA_CorporationGlobalNVTweakState
lea edi, [esp + 0x40]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, 0xc
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
lea eax, [esp + 8]
lea ecx, [esp + 0x40]
push eax
push 1
push 0
push ecx
push 0x80000002
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0x30
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [esp + 8]
pop edi
test eax, eax
pop esi
je 0x4085e9
lea edx, [esp + 4]
lea ecx, [esp + 8]
push edx
push ecx
push 0
push 0
push str.SmartDimmerAPI
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4085de
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
mov dword [0x420930], edx
mov eax, dword [esp]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add esp, 0x9c
ret

Function at 0x408740
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x60
push ebx
push esi
push edi
mov ecx, 0x15
mov esi, str.SOFTWARENVIDIA_CorporationGlobalNVTweak
lea edi, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xc]
xor ebx, ebx
push eax
push 1
lea ecx, [esp + 0x1c]
push ebx
push ecx
push 0x80000002
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 4
movsw word es:[edi], word [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4087b6
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4087b6
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x74]
push ecx
push ebx
push ebx
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4087ab
mov ebx, 1
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x60
ret
Function at 0x408dd0
Capabilities:
Create thread

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
lea eax, [esp + 0xc]
push edi
lea ecx, [esp + 0x14]
push eax
xor ebp, ebp
push ecx
push str.Default
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
call fcn.00407960
mov eax, dword [0x425754]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventW]
add esp, 0xc
cmp eax, ebp
jne 0x408e7c
mov ecx, 0x64
xor eax, eax
mov edi, 0x429700
push str.NVSvcFSTaskExit
rep stosd dword es:[edi], eax
mov ecx, 0x64
mov edi, 0x4255c0
push ebp
push ebp
rep stosd dword es:[edi], eax
push ebp
call ebx
cmp eax, ebp
mov dword [0x42576c], eax
jne 0x408e44
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
push ebp
push ebp
push ebp
push ebp
call ebx
cmp eax, ebp
mov dword [0x425750], eax
jne 0x408e72
mov eax, dword [0x42576c]
cmp eax, ebp
je 0x408f2d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x42576c], ebp
jmp 0x408f2d
mov dword [0x425754], 1
call fcn.00408d80
cmp eax, 0xffffffff
jne 0x408f4f
xor esi, esi
cmp dword [esi*4 + 0x4255c0], ebp
je 0x408ea5
inc esi
cmp esi, 0x64
jb 0x408e8c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
cmp esi, 0x64
jb 0x408eb4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
call fcn.00409100
mov dword [0x425770], eax
call fcn.00409270
push ebp
push ebp
push ebp
push ebp
mov dword [0x425774], eax
mov dword [0x4216c4], 1
call ebx
mov dword [0x425758], eax
lea eax, [esi*4 + 0x4255c0]
push eax
push ebp
push ebp
push 0x409300
push 0x10000
push ebp
lea edi, [esi*4 + 0x429700]
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi], eax
mov eax, dword [0x425758]
cmp eax, ebp
je 0x408f29
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x425758]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x425758], ebp
cmp dword [edi], ebp
jne 0x408f4f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.004079f0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004079f0
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
Function at 0x409050
Capabilities:
Terminate thread

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
mov ebp, dword [sym.imp.USER32.dll_PostThreadMessageW]
push esi
push edi
xor edi, edi
xor esi, esi
cmp dword [esi + 0x429700], edi
je 0x409083
mov eax, dword [esi + 0x4255c0]
push edi
push edi
push 0x800
push eax
mov byte [0x425778], 1
call ebp
mov eax, dword [esi + 0x429700]
cmp eax, edi
je 0x4090c3
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4090ae
mov ecx, dword [esi + 0x429700]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov edx, dword [esi + 0x429700]
push edx
call ebx
mov dword [esi + 0x429700], edi
mov dword [esi + 0x4255c0], edi
add esi, 4
cmp esi, 0x190
jb 0x409064
mov eax, dword [0x42576c]
cmp eax, edi
je 0x4090e0
push eax
call ebx
mov dword [0x42576c], edi
mov eax, dword [0x425750]
cmp eax, edi
je 0x4090f2
push eax
call ebx
mov dword [0x425750], edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret

Function at 0x409270
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x64
push esi
push edi
mov ecx, 0x15
mov esi, str.SOFTWARENVIDIA_CorporationGlobalNVTweak
lea edi, [esp + 0x14]
lea eax, [esp + 8]
rep movsd dword es:[edi], dword [esi]
push eax
push 1
lea ecx, [esp + 0x1c]
push 0
push ecx
push 0x80000002
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 4
movsw word es:[edi], word [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [esp + 8]
pop edi
test eax, eax
pop esi
je 0x4092e7
lea edx, [esp + 8]
lea ecx, [esp + 4]
push edx
push ecx
push 0
push 0
push str.DetectAC
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [esp]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 4]
and eax, 1
add esp, 0x64
ret
Function at 0x409500
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x64
push esi
push edi
mov ecx, 0x15
mov esi, str.SOFTWARENVIDIA_CorporationGlobalNVTweak
lea edi, [esp + 0x14]
lea eax, [esp + 8]
rep movsd dword es:[edi], dword [esi]
push eax
push 1
lea ecx, [esp + 0x1c]
push 0
push ecx
push 0x80000002
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 4
movsw word es:[edi], word [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [esp + 8]
test eax, eax
je 0x4095c5
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea edx, [esp + 0xc]
push edx
push 0x42577c
push 0
push 0
push str.SmartDimmerEnable
push eax
mov dword [esp + 0x28], 0x1000080
call esi
mov edx, dword [esp + 8]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0
push 0
push str.SmartDimmerTransFactor
push edx
call esi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc]
mov ecx, eax
push edx
shr eax, 0x10
push 0x425780
mov dword [0x4216cc], eax
mov eax, dword [esp + 0x10]
push 0
push 0
and ecx, 0xffff
push str.SmartDimmerConfig
push eax
mov dword [0x4216c8], ecx
call esi
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x42577c]
pop edi
test eax, eax
pop esi
je 0x4095e2
mov edx, dword [0x425780]
and edx, 4
push edx
call fcn.00405a00
add esp, 4
add esp, 0x64
ret
Function at 0x40a2a0
Capabilities:
Query or enumerate registry key
Set registry value

Disassembly:
sub esp, 0x82c
push ebx
push ebp
push esi
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x1e]
xor esi, esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x226]
mov word [esp + 0x224], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x103
xor eax, eax
lea edi, [esp + 0x42e]
mov word [esp + 0x42c], si
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x840]
push esi
stosw word es:[edi], ax
push esi
push esi
lea eax, [esp + 0x1c]
push esi
lea ecx, [esp + 0x2c]
push eax
push ecx
xor ebp, ebp
push esi
push edx
mov dword [esp + 0x38], ebp
xor ebx, ebx
mov word [esp + 0x3c], si
mov dword [esp + 0x30], 0x208
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x40a3f7
mov edi, dword [esp + 0x854]
mov ebp, dword [esp + 0x850]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x224]
push ecx
push edx
mov dword [esp + 0x1c], esi
mov word [esp + eax*2 + 0x24], si
mov dword [esp + 0x18], 0x208
call fcn.0040f5ae
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x434]
push eax
mov eax, dword [esp + 0x850]
push ecx
lea edx, [esp + 0x234]
push 2
push edx
push eax
call fcn.0040a250
add esp, 0x1c
test eax, eax
je 0x40a3c2
mov ecx, dword [esp + 0x84c]
mov edx, dword [esp + 0x848]
mov eax, dword [esp + 0x14]
push edi
push ebp
push ecx
push esi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x40a3b3
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40a3c2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x840]
push esi
push esi
push esi
lea ecx, [esp + 0x1c]
push esi
lea edx, [esp + 0x2c]
inc ebx
push ecx
push edx
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x40a337
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x82c
ret
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x82c
ret
Function at 0x40a410
Capabilities:
Delete registry value
Query or enumerate registry key

Disassembly:
sub esp, 0x82c
push ebx
push ebp
push esi
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x1e]
xor esi, esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x226]
mov word [esp + 0x224], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x103
xor eax, eax
lea edi, [esp + 0x42e]
mov word [esp + 0x42c], si
rep stosd dword es:[edi], eax
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
push esi
stosw word es:[edi], ax
mov edi, dword [esp + 0x844]
push esi
push esi
lea eax, [esp + 0x1c]
push esi
lea ecx, [esp + 0x2c]
push eax
push ecx
push esi
push edi
mov dword [esp + 0x34], esi
xor ebx, ebx
mov word [esp + 0x3c], si
mov dword [esp + 0x30], 0x208
call ebp
test eax, eax
jne 0x40a534
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x224]
push eax
push ecx
mov dword [esp + 0x20], esi
mov word [esp + edx*2 + 0x24], si
mov dword [esp + 0x18], 0x208
call fcn.0040f5ae
lea edx, [esp + 0x20]
lea eax, [esp + 0x434]
push edx
mov edx, dword [esp + 0x850]
push eax
lea ecx, [esp + 0x234]
push 2
push ecx
push edx
call fcn.0040a250
add esp, 0x1c
test eax, eax
je 0x40a519
mov eax, dword [esp + 0x848]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
jne 0x40a50a
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x40a519
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
push esi
push esi
lea edx, [esp + 0x1c]
push esi
lea eax, [esp + 0x2c]
inc ebx
push edx
push eax
push ebx
push edi
call ebp
test eax, eax
je 0x40a499
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x82c
ret