Function at 0x433a4f
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push 0x870
mov eax, 0x51452b
call fcn.004d8af2
mov esi, edx
mov dword [ebp - 0x83c], esi
mov ebx, ecx
mov dword [ebp - 0x838], ebx
mov dword [ebp - 0x844], ebx
mov al, byte [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x844], ebx
mov byte [ebp - 0x840], al
mov dword [ebp - 0x848], ecx
mov dword [ebp - 4], 2
mov edi, 0x20019
mov dword [ebp - 0x834], edi
test al, al
je 0x433ab7
call fcn.004013b8
test al, al
mov ecx, 0x20119
cmovne edi, ecx
mov dword [ebp - 0x834], edi
cmp dword [ebp + 0x10], 0
jne 0x433cfc
mov eax, dword [ebp + 0x14]
xor edi, edi
cmp dword [eax - 0xc], edi
jne 0x433b09
push 0x53d64c
lea edx, [ebp + 8]
lea ecx, [ebp - 0x834]
call fcn.00409442
pop ecx
mov ecx, dword [ebp - 0x848]
push eax
lea eax, [ebp - 0x85c]
mov byte [ebp - 4], 3
push eax
call fcn.004b0ee5
mov ecx, dword [ebp - 0x834]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x433cea
push 0x2a
push eax
call fcn.004da438
pop ecx
pop ecx
test eax, eax
jne 0x433bf5
lea eax, [ebp - 0x834]
mov dword [ebp - 0x834], edi
push eax
push edi
push edi
push edi
push dword [ebp + 0x14]
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
js 0x433ba1
push 0x53d64c
lea edx, [ebp + 8]
lea ecx, [ebp - 0x838]
call fcn.00409442
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 4
push ecx
mov edx, eax
lea ecx, [ebp - 0x840]
call fcn.0040a037
pop ecx
pop ecx
mov ecx, dword [ebp - 0x848]
push eax
lea eax, [ebp - 0x85c]
mov byte [ebp - 4], 5
push eax
call fcn.004b0ee5
mov ecx, dword [ebp - 0x840]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x838]
jmp 0x433afc
cmp ecx, 0x80070002
je 0x433cea
cmp ecx, 0x80070003
je 0x433cea
push 0x21
push ecx
push ecx
mov ecx, esp
call fcn.0040687a
mov ecx, ebx
call fcn.00406620
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov edx, dword [ebp + 0xc]
call fcn.004b6f07
push 0xc
push dword [ebp + 0xc]
call fcn.004d840d
pop ecx
pop ecx
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
jmp 0x434084
push 0x820
lea eax, [ebp - 0x830]
push edi
push eax
call fcn.004d9f30
add esp, 0xc
mov dword [ebp - 0x83c], 0x410
xor ecx, ecx
lea eax, [ebp - 0x83c]
push ecx
push ecx
push ecx
push ecx
push eax
lea eax, [ebp - 0x830]
push eax
push ecx
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x433ce8
mov ebx, dword [ebp - 0x848]
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x830]
push 1
call fcn.00433918
pop ecx
test al, al
je 0x433cb3
push 0x53d64c
lea edx, [ebp + 8]
lea ecx, [ebp - 0x840]
call fcn.00409442
lea ecx, [ebp - 0x830]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x834]
call fcn.00409442
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x85c]
mov byte [ebp - 4], 7
push eax
mov ecx, ebx
call fcn.004b0ee5
mov ecx, dword [ebp - 0x834]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x840]
lea ecx, [ecx - 0x10]
call fcn.00407189
xor eax, eax
mov dword [ebp - 0x83c], 0x410
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x83c]
inc edi
push eax
lea eax, [ebp - 0x830]
push eax
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x433c3e
mov ebx, dword [ebp - 0x838]
xor edi, edi
lea ecx, [ebx + 8]
mov dword [ebx], edi
mov dword [ebx + 4], edi
call fcn.0040687a
jmp 0x43405f
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
sub ecx, 0x10
call fcn.004070e7
mov dword [ebp - 0x838], eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x864], esi
mov byte [ebp - 4], 8
lea ecx, [ebp + 0xc]
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.004b0289
push 0x2a
push esi
call fcn.004da438
pop ecx
pop ecx
test eax, eax
jne 0x433e4b
mov dword [ebp - 0x854], eax
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x84c], eax
push edi
push esi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x854]
push dword [ebp - 0x83c]
call fcn.004d6087
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x433dab
push 0x3c
push ecx
push ecx
mov ecx, esp
call fcn.0040687a
mov ecx, ebx
call fcn.00406620
cmp dword [ebp - 0x854], 0
je 0x433da0
push dword [ebp - 0x854]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x838]
jmp 0x43405a
push dword [ebp - 0x848]
push dword [ebp - 0x840]
push ecx
mov esi, esp
mov dword [ebp - 0x844], esp
mov dword [ebp - 0x834], esi
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ecx
push ecx
mov byte [ebp - 4], 0xa
lea eax, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x840], esp
push eax
call fcn.004ada4a
push 0x53d64c
lea edx, [ebp + 8]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x834]
call fcn.00409442
lea edx, [ebp - 0x864]
mov byte [ebp - 4], 0xc
mov ecx, esp
push edx
mov edx, eax
call fcn.0040a037
pop ecx
mov esi, dword [ebp - 0x854]
mov ecx, ebx
mov edx, esi
mov byte [ebp - 4], 0xd
call fcn.00433a4f
mov ecx, dword [ebp - 0x834]
add esp, 0x18
lea ecx, [ecx - 0x10]
call fcn.00407189
test esi, esi
je 0x433da0
push esi
jmp 0x433d9a
and dword [ebp - 0x838], 0
push 0x820
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.004d9f30
mov ecx, dword [ebp - 0x838]
add esp, 0xc
mov eax, ecx
inc ecx
mov dword [ebp - 0x838], ecx
lea ecx, [ebp - 0x830]
push 0x410
push ecx
push eax
push dword [ebp - 0x83c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x433e9f
cmp eax, 0xea
jne 0x433fd4
push 1
lea edx, [ebp - 0x830]
mov ecx, esi
call fcn.00433918
pop ecx
test al, al
je 0x433e52
xor eax, eax
mov dword [ebp - 0x854], eax
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x84c], eax
push edi
lea eax, [ebp - 0x830]
mov byte [ebp - 4], 0xe
push eax
push dword [ebp - 0x83c]
lea ecx, [ebp - 0x854]
call fcn.004d6087
test eax, eax
jne 0x434008
push dword [ebp - 0x848]
push dword [ebp - 0x840]
push ecx
mov edi, esp
mov dword [ebp - 0x87c], esp
mov dword [ebp - 0x868], edi
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
push ecx
push ecx
mov byte [ebp - 4], 0x10
lea eax, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x868], esp
push eax
call fcn.004ada4a
push 0x53d64c
lea edx, [ebp + 8]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x844]
call fcn.00409442
lea edx, [ebp - 0x830]
mov byte [ebp - 4], 0x12
mov ecx, esp
push edx
mov edx, eax
call fcn.00409442
pop ecx
mov edi, dword [ebp - 0x854]
lea ecx, [ebp - 0x874]
mov edx, edi
mov byte [ebp - 4], 0x13
call fcn.00433a4f
add esp, 0x18
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x844]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x874]
test eax, eax
jns 0x433f9e
cmp eax, 0x80070002
je 0x433f9e
cmp eax, 0x80070003
jne 0x433fe5
mov ecx, dword [ebp - 0x86c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 8
test edi, edi
je 0x433fc2
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x854], 0
and dword [ebp - 0x850], 0
mov edi, dword [ebp - 0x834]
jmp 0x433e52
and dword [ebx], 0
lea ecx, [ebx + 8]
and dword [ebx + 4], 0
call fcn.0040687a
jmp 0x434057
lea eax, [ebp - 0x874]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x86c]
lea ecx, [ecx - 0x10]
call fcn.00407189
test edi, edi
je 0x434057
push edi
jmp 0x434051
push 0x50
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x860]
call fcn.00406620
lea eax, [ebp - 0x860]
mov byte [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x858]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x854], 0
je 0x434057
push dword [ebp - 0x854]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov edx, dword [ebp + 0xc]
call fcn.004b6f07
push 0xc
push dword [ebp + 0xc]
call fcn.004d840d
pop ecx
pop ecx
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, ebx
call fcn.004d8aa1
ret