Function at 0x46e746
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x54
mov eax, 0x580bbd
call fcn.0054f272
mov esi, edx
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x54], eax
cmp dword [ecx + 0x10], ebx
je 0x46e7a3
cmp dword [edi + 0x10], ebx
je 0x46e7a3
mov dword [ebp - 4], ebx
xor eax, eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], ebx
mov word [ebp - 0x34], ax
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.0046e445
pop ecx
cmp al, bl
jne 0x46e7ab
push 1
xor edi, edi
lea esi, [ebp - 0x34]
call fcn.00401d98
xor al, al
call fcn.0054f2ce
ret
cmp dword [ebp - 0x20], 8
mov eax, dword [ebp - 0x34]
jae 0x46e7b7
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x58]
push ecx
or esi, 1
push esi
push ebx
push eax
push dword [ebp - 0x38]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x46e797
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x38], esi
mov byte [ebp - 4], 2
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
jb 0x46e7e6
mov edi, dword [edi]
lea eax, [ebp - 0x3c]
push eax
push ebx
lea eax, [ebp - 0x40]
push eax
push ebx
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push esi
call edi
cmp eax, ebx
je 0x46e80f
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x46e797
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x46e797
cmp dword [ebp - 0x40], 1
je 0x46e837
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x46e824
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 1
xor edi, edi
lea esi, [ebp - 0x34]
call fcn.00401d98
mov al, bl
jmp 0x46e7a5
mov eax, dword [ebp - 0x3c]
cmp eax, ebx
jne 0x46e864
mov eax, dword [ebp - 0x54]
cmp dword [eax + 0x14], 8
mov dword [eax + 0x10], ebx
jb 0x46e84c
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x46e860
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov bl, 1
jmp 0x46e824
lea ecx, [ebp - 0x60]
shr eax, 1
push ecx
lea esi, [ebp - 0x50]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
call fcn.00453044
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 8
jb 0x46e88d
mov eax, dword [eax]
lea ecx, [ebp - 0x3c]
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x40]
push ecx
push ebx
push eax
push dword [ebp - 0x58]
call edi
cmp eax, ebx
je 0x46e8c0
lea esi, [ebp - 0x50]
call fcn.004265f2
mov byte [ebp - 4], 1
cmp dword [ebp - 0x38], ebx
je 0x46e824
push dword [ebp - 0x38]
jmp 0x46e81e
cmp dword [ebp - 0x40], 1
jne 0x46e8a3
mov eax, dword [ebp - 0x3c]
shr eax, 1
lea ecx, [ebp - 0x50]
call fcn.0043b8a0
mov eax, dword [ebp - 0x4c]
cmp word [eax - 2], bx
jne 0x46e8e7
cmp dword [ebp - 0x50], eax
je 0x46e8e7
add eax, 0xfffffffe
mov dword [ebp - 0x4c], eax
sub eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x54]
mov esi, eax
sar esi, 1
mov eax, esi
mov ecx, edi
call fcn.0043b0e3
cmp dword [edi + 0x14], 8
jb 0x46e902
mov edi, dword [edi]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x50]
push edi
call fcn.00541b80
add esp, 0xc
lea esi, [ebp - 0x50]
call fcn.004265f2
mov byte [ebp - 4], 1
cmp dword [ebp - 0x38], ebx
je 0x46e860
push dword [ebp - 0x38]
jmp 0x46e85a