Function at 0x42f0d0
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3b4
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push esi
mov edx, ecx
xor eax, eax
push edi
xor esi, esi
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x24], edx
mov dword [edx + 0xc078], esi
mov dword [ebp - 0x40], eax
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 0x3c], eax
push 0x2001f
mov ecx, 0x38
lea edi, [ebp - 0x1cc]
rep stosd dword es:[edi], eax
xor ecx, ecx
push esi
mov dword [ebp - 0x5c], ecx
push str.SYSTEMCurrentControlSetControlPowerPowerSettings_f693fb01_e858_4f00_b20f_f30e12ac06d6191f65b5_d45c_4a4f_8aae_1ab8bfd980e6
mov dword [ebp - 0x58], ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x1cc], 0xe0
call ebx
test eax, eax
jne 0x42f1d7
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
push esi
lea eax, [ebp - 0x20c]
push 0x475ea8
push eax
call fcn.00460f01
mov edx, dword [ebp - 0x14]
add esp, 0xc
lea ecx, [ebp - 0x20c]
push ecx
push edx
call edi
test eax, eax
jne 0x42f17c
inc esi
cmp esi, 5
jb 0x42f150
lea eax, [ebp - 0x10]
push eax
push 0x2001f
push 0
push str.SYSTEMCurrentControlSetControlPowerPowerSettings_f693fb01_e858_4f00_b20f_f30e12ac06d6191f65b5_d45c_4a4f_8aae_1ab8bfd980e6DefaultPowerSchemeValues
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x42f1c4
mov ecx, dword [ebp - 0x10]
push str.381b4222_f694_41f0_9685_ff5bb260df2e
push ecx
call edi
mov edx, dword [ebp - 0x10]
push str.8c5e7fda_e8bf_4a96_9a85_a6e23a8c635c
push edx
call edi
mov eax, dword [ebp - 0x10]
push str.a1841308_3541_4fab_bc81_f71556f20b4a
push eax
call edi
mov ecx, dword [ebp - 0x10]
push ecx
call esi
mov edx, dword [ebp - 0x14]
push str.DefaultPowerSchemeValues
push edx
call edi
mov eax, dword [ebp - 0x14]
push eax
call esi
xor esi, esi
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x11c]
test eax, eax
jbe 0x42f20e
lea edi, [ebx + 0x120]
lea ebx, [ebx]
push 3
mov ecx, edi
call fcn.00437a80
test al, 0x10
jne 0x42f217
mov eax, dword [ebx + 0x11c]
inc esi
add edi, 0x2534
cmp esi, eax
jb 0x42f1f0
call fcn.0040b550
test al, al
js 0x42f222
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
mov ecx, 0x6a
lea edi, [ebp - 0x3b4]
rep stosd dword es:[edi], eax
xor edi, edi
push edi
lea ecx, [ebp - 0x3b4]
push ecx
or eax, 0xffffffff
push edi
push edi
mov dword [ebp - 0x3b4], 0x1a8
xor esi, esi
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
je 0x42f53c
lea esp, [esp]
mov al, byte [ebp - 0x310]
inc esi
test al, 1
mov dword [ebp - 0x50], esi
je 0x42f4ed
push edi
lea edx, [ebp - 0x5c]
push edx
lea eax, [ebp - 0x3b0]
push eax
call fcn.0044ed20
add esp, 0xc
test eax, eax
je 0x42f2b6
cmp dword [ebp - 0x54], edi
je 0x42f2b6
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x3b0]
push edx
mov ecx, ebx
call fcn.0042ef40
jmp 0x42f4ed
push edi
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x3b0]
push ecx
call fcn.0044df00
add esp, 0xc
test eax, eax
je 0x42f4ed
mov eax, dword [ebp - 0x1c4]
mov edi, 1
cmp eax, edi
jbe 0x42f4ed
xor esi, esi
push esi
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0x3b0]
push eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
call fcn.0044dbf0
add esp, 0xc
test eax, eax
je 0x42f3ee
test byte [ebp - 8], 1
je 0x42f359
mov dword [ebp - 4], edi
xor eax, eax
push eax
mov ecx, 0x24
lea edi, [ebp - 0xec]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0xec]
push ecx
lea edx, [ebp - 4]
push edx
lea eax, [ebp - 0x3b0]
push 1
push eax
call fcn.0044dc20
add esp, 0x14
test eax, eax
je 0x42f359
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x30], edx
mov esi, ecx
test byte [ebp - 8], 2
je 0x42f3a8
xor eax, eax
push eax
mov ecx, 0x24
lea edi, [ebp - 0xec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x3b0]
push 1
push edx
mov dword [ebp - 4], 2
call fcn.0044dc20
add esp, 0x14
test eax, eax
je 0x42f3a8
or esi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x34], eax
test byte [ebp - 8], 3
je 0x42f3ee
xor eax, eax
push eax
mov ecx, 0x24
lea edi, [ebp - 0xec]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0xec]
push ecx
lea edx, [ebp - 4]
push edx
lea eax, [ebp - 0x3b0]
push 1
push eax
mov dword [ebp - 4], 3
call fcn.0044dc20
add esp, 0x14
test eax, eax
je 0x42f3ee
or esi, dword [ebp - 0xcc]
mov dword [ebp - 0xc], esi
mov edi, dword [ebp - 0x1c4]
xor ebx, ebx
xor ecx, ecx
test edi, edi
mov dword [ebp - 0x28], ebx
jbe 0x42f53c
lea eax, [ebp - 0x1c0]
lea esp, [esp]
mov edx, 1
shl edx, cl
test esi, edx
je 0x42f423
mov edx, dword [eax]
test dh, 1
jne 0x42f423
inc ebx
inc ecx
add eax, 0x20
cmp ecx, edi
jb 0x42f410
cmp ebx, 5
mov dword [ebp - 0x28], ebx
ja 0x42f53c
cmp ebx, 1
jbe 0x42f53c
xor eax, eax
mov ecx, 1
cmp edi, ecx
mov dword [ebp - 0x4c], eax
jbe 0x42f495
lea esi, [ebp - 0x1a0]
mov ebx, dword [ebp - 0xc]
mov edx, 1
shl edx, cl
test ebx, edx
je 0x42f48a
mov edx, dword [esi]
test dh, 1
jne 0x42f48a
test dh, 2
je 0x42f485
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x42f485
mov dword [ebp + eax*4 - 0x4c], 0
inc eax
mov dword [ebp - 0x20], 1
mov dword [ebp + eax*4 - 0x4c], ecx
inc eax
inc ecx
add esi, 0x20
cmp ecx, edi
jb 0x42f454
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x42f4a5
mov dword [ebp + eax*4 - 0x4c], 0
inc eax
cmp eax, ebx
je 0x42f4b6
push str.Valid_Power_State_number_is_wrong__n
call fcn.0040acd0
add esp, 4
xor eax, eax
test ebx, ebx
jbe 0x42f4db
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
dec edx
dec esi
mov ecx, dword [ebp + eax*4 - 0x4c]
cmp ecx, edx
jne 0x42f4cf
mov dword [ebp - 0x1c], eax
cmp ecx, esi
jne 0x42f4d6
mov dword [ebp - 0x18], eax
inc eax
cmp eax, ebx
jb 0x42f4c4
cmp dword [ebp - 0x1c], 0xffffffff
je 0x42f4e7
cmp dword [ebp - 0x18], 0xffffffff
jne 0x42f513
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x50]
xor edi, edi
push edi
lea eax, [ebp - 0x3b4]
push eax
push esi
push edi
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
jne 0x42f270
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x4c]
push edx
push eax
push ecx
push ebx
mov ecx, esi
call fcn.0042e590
mov eax, 1
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xc078], eax
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4