Function at 0x47c910
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [esp], 0
mov esi, esp
push esi
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsNewStartPanel
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x47c961
push esi
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsClassicStartMenu
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, str.ffRegOpenKeyForRead_SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsNewStartPanelClassicStartMenu__failed
test eax, eax
jne 0x47cef2
mov edi, dword [esp + 0x34]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov eax, dword [esp]
mov dword [esp + 4], 4
lea ebx, [esp + 4]
lea ecx, [esp + 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegGetValueW]
push ebx
push ecx
push 0
push 0x18
push str.20D04FE0_3AEA_1069_A2D8_08002B30309D
push 0
push eax
call esi
mov eax, dword [esp]
mov dword [esp + 4], 4
lea ecx, [esp + 0x18]
push ebx
push ecx
push 0
push 0x18
push str.59031a47_3f72_44a7_89c5_5595fe6b30ee
push 0
push eax
call esi
mov eax, dword [esp]
mov dword [esp + 4], 4
lea ecx, [esp + 0x14]
push ebx
push ecx
push 0
push 0x18
push str.F02C1A0D_BE21_4350_88B0_7367FC96EF3C
push 0
push eax
call esi
mov eax, dword [esp]
mov dword [esp + 4], 4
lea ecx, [esp + 0x10]
push ebx
push ecx
push 0
push 0x18
push str.645FF040_5081_101B_9F08_00AA002F954E
push 0
push eax
call esi
mov eax, dword [esp]
mov dword [esp + 4], 4
lea ecx, [esp + 0xc]
push ebx
push ecx
push 0
push 0x18
push str.5399E694_6CE5_4D6C_8FCE_1D8870FDCBA0
push 0
push eax
call esi
cmp dword [esp + 0x1c], 0
je 0x47ca6a
cmp dword [esp + 0x18], 0
je 0x47cb10
cmp dword [esp + 0x14], 0
je 0x47cbca
cmp dword [esp + 0x10], 0
je 0x47cc67
cmp dword [esp + 0xc], 0
jne 0x47cdbd
jmp 0x47cd18
mov eax, dword [edi]
mov ebx, dword [edi + 4]
test eax, eax
je 0x47ca7e
mov ecx, ebx
not ecx
add ecx, eax
cmp ecx, 9
jae 0x47cab2
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
lea edx, [ebx + 0xa]
nop dword [eax]
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x47ca90
test eax, eax
je 0x47cab7
push ebp
push dword [edi + 8]
call sym._realloc
add esp, 8
mov esi, eax
mov dword [edi + 8], eax
mov ebx, dword [edi + 4]
jmp 0x47cade
mov esi, dword [edi + 8]
jmp 0x47cae0
push ebp
call sym._malloc
add esp, 4
mov esi, eax
test ebx, ebx
je 0x47cad8
lea eax, [ebx + 1]
push eax
push dword [edi + 8]
push esi
call sym._memcpy
add esp, 0xc
jmp 0x47cadb
mov byte [esi], 0
mov dword [edi + 8], esi
mov dword [edi], ebp
mov byte [esi + ebx + 8], 0x20
mov dword [esi + ebx + 4], 0x2c435020
mov dword [esi + ebx], 0x73696854
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [eax + 9]
mov dword [edi + 4], edx
mov byte [ecx + eax + 9], 0
cmp dword [esp + 0x18], 0
jne 0x47ca44
mov eax, dword [edi]
mov ebx, dword [edi + 4]
test eax, eax
je 0x47cb24
mov ecx, ebx
not ecx
add ecx, eax
cmp ecx, 0xe
jae 0x47cb62
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
lea edx, [ebx + 0xf]
nop word cs:[eax + eax]
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x47cb40
test eax, eax
je 0x47cb67
push ebp
push dword [edi + 8]
call sym._realloc
add esp, 8
mov esi, eax
mov dword [edi + 8], eax
mov ebx, dword [edi + 4]
jmp 0x47cb8e
mov esi, dword [edi + 8]
jmp 0x47cb90
push ebp
call sym._malloc
add esp, 4
mov esi, eax
test ebx, ebx
je 0x47cb88
lea eax, [ebx + 1]
push eax
push dword [edi + 8]
push esi
call sym._memcpy
add esp, 0xc
jmp 0x47cb8b
mov byte [esi], 0
mov dword [edi + 8], esi
mov dword [edi], ebp
mov word [esi + ebx + 0xc], 0x202c
mov dword [esi + ebx + 8], 0x73656c69
mov dword [esi + ebx + 4], 0x46207327
mov dword [esi + ebx], 0x72657355
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [eax + 0xe]
mov dword [edi + 4], edx
mov byte [ecx + eax + 0xe], 0
cmp dword [esp + 0x14], 0
jne 0x47ca4f
mov eax, dword [edi]
mov ebx, dword [edi + 4]
test eax, eax
je 0x47cbde
mov ecx, ebx
not ecx
add ecx, eax
cmp ecx, 0x10
jae 0x47cc12
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
lea edx, [ebx + 0x11]
nop dword [eax]
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x47cbf0
test eax, eax
je 0x47cc17
push ebp
push dword [edi + 8]
call sym._realloc
add esp, 8
mov esi, eax
mov dword [edi + 8], eax
mov ebx, dword [edi + 4]
jmp 0x47cc3e
mov esi, dword [edi + 8]
jmp 0x47cc40
push ebp
call sym._malloc
add esp, 4
mov esi, eax
test ebx, ebx
je 0x47cc38
lea eax, [ebx + 1]
push eax
push dword [edi + 8]
push esi
call sym._memcpy
add esp, 0xc
jmp 0x47cc3b
mov byte [esi], 0
mov dword [edi + 8], esi
mov dword [edi], ebp
movups xmm0, xmmword [str.Remote_Network_]
movups xmmword [esi + ebx], xmm0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [eax + 0x10]
mov dword [edi + 4], edx
mov byte [ecx + eax + 0x10], 0
cmp dword [esp + 0x10], 0
jne 0x47ca5a
mov eax, dword [edi]
mov ebx, dword [edi + 4]
test eax, eax
je 0x47cc7b
mov ecx, ebx
not ecx
add ecx, eax
cmp ecx, 0xd
jae 0x47ccb2
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
lea edx, [ebx + 0xe]
nop dword [eax]
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x47cc90
test eax, eax
je 0x47ccb7
push ebp
push dword [edi + 8]
call sym._realloc
add esp, 8
mov esi, eax
mov dword [edi + 8], eax
mov ebx, dword [edi + 4]
jmp 0x47ccde
mov esi, dword [edi + 8]
jmp 0x47cce0
push ebp
call sym._malloc
add esp, 4
mov esi, eax
test ebx, ebx
je 0x47ccd8
lea eax, [ebx + 1]
push eax
push dword [edi + 8]
push esi
call sym._memcpy
add esp, 0xc
jmp 0x47ccdb
mov byte [esi], 0
mov dword [edi + 8], esi
mov dword [edi], ebp
mov byte [esi + ebx + 0xc], 0x20
mov dword [esi + ebx + 8], 0x2c6e6942
mov dword [esi + ebx + 4], 0x20656c63
mov dword [esi + ebx], 0x79636552
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [eax + 0xd]
mov dword [edi + 4], edx
mov byte [ecx + eax + 0xd], 0
cmp dword [esp + 0xc], 0
jne 0x47cdbd
mov eax, dword [edi]
mov ebx, dword [edi + 4]
test eax, eax
je 0x47cd2c
mov ecx, ebx
not ecx
add ecx, eax
cmp ecx, 0xd
jae 0x47cd62
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
lea edx, [ebx + 0xe]
nop word [eax + eax]
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x47cd40
test eax, eax
je 0x47cd67
push ebp
push dword [edi + 8]
call sym._realloc
add esp, 8
mov esi, eax
mov dword [edi + 8], eax
mov ebx, dword [edi + 4]
jmp 0x47cd8e
mov esi, dword [edi + 8]
jmp 0x47cd90
push ebp
call sym._malloc
add esp, 4
mov esi, eax
test ebx, ebx
je 0x47cd88
lea eax, [ebx + 1]
push eax
push dword [edi + 8]
push esi
call sym._memcpy
add esp, 0xc
jmp 0x47cd8b
mov byte [esi], 0
mov dword [edi + 8], esi
mov dword [edi], ebp
mov byte [esi + ebx + 0xc], 0x6c
mov dword [esi + ebx + 8], 0x656e6150
mov dword [esi + ebx + 4], 0x206c6f72
mov dword [esi + ebx], 0x746e6f43
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [eax + 0xd]
mov dword [edi + 4], edx
mov byte [ecx + eax + 0xd], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x47cef0
mov ebx, dword [edi + 8]
cmp byte [eax + ebx - 1], 0x20
jne 0x47ce58
inc eax
nop word [eax + eax]
mov ebp, eax
add eax, 0xfffffffe
mov dword [edi + 4], eax
cmp ebp, 2
je 0x47ce3f
lea eax, [ebp - 1]
cmp byte [ebx + ebp - 3], 0x20
je 0x47cde0
cmp dword [edi], 0
jne 0x47ce48
lea ecx, [eax - 1]
mov dword [esp + 8], ecx
mov dword [edi + 4], 0
mov ecx, 0x20
nop
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x47ce10
push esi
call sym._malloc
add esp, 4
mov byte [eax], 0
mov dword [edi + 8], eax
mov dword [edi], esi
mov esi, dword [esp + 8]
push esi
push ebx
push eax
mov ebx, eax
call sym._memcpy
add esp, 0xc
mov dword [edi + 4], esi
jmp 0x47ce48
cmp dword [edi], 0
je 0x47cedb
mov byte [ebx + ebp - 2], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x47cef0
mov ebx, dword [edi + 8]
cmp byte [eax + ebx - 1], 0x2c
jne 0x47cef0
inc eax
nop word [eax + eax]
mov ebp, eax
add eax, 0xfffffffe
mov dword [edi + 4], eax
cmp ebp, 2
je 0x47cecf
lea eax, [ebp - 1]
cmp byte [ebx + ebp - 3], 0x2c
je 0x47ce70
cmp dword [edi], 0
jne 0x47ced4
lea ecx, [eax - 1]
mov dword [esp + 8], ecx
mov dword [edi + 4], 0
mov ecx, 0x20
nop
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x47cea0
push esi
call sym._malloc
add esp, 4
mov byte [eax], 0
mov dword [edi + 8], eax
mov dword [edi], esi
mov esi, dword [esp + 8]
push esi
push ebx
push eax
mov ebx, eax
call sym._memcpy
add esp, 0xc
mov dword [edi + 4], esi
jmp 0x47ced4
cmp dword [edi], 0
je 0x47cedb
mov byte [ebx + ebp - 2], 0
jmp 0x47cef0
mov dword [edi], 0
mov dword [edi + 4], 0
mov eax, dword [0x5052b0]
mov dword [edi + 8], eax
xor esi, esi
mov eax, dword [esp]
test eax, eax
je 0x47cf00
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret