Function at 0x447670
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a63ec
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x4c9860]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x270], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x274], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 4], 0
xor edi, edi
xor esi, esi
mov dword [ebp - 0x258], edi
mov dword [ebp - 0x254], esi
mov dword [ebp - 0x250], esi
mov byte [ebp - 4], 1
cmp dword [ebx + 0x14], 8
jb 0x447707
mov eax, dword [ebx]
jmp 0x447709
mov eax, ebx
push 0x20119
push eax
push ecx
lea ecx, [ebp - 0x268]
call fcn.0042a2b0
test eax, eax
jne 0x447868
mov edi, dword [ebp - 0x268]
mov ebx, dword [ebp - 0x274]
xor esi, esi
lea eax, [ebp - 0x280]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x21c]
push eax
push esi
push edi
mov dword [ebp - 0x25c], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x447837
push dword [ebx + 0x10]
mov ecx, ebx
call fcn.0040bc60
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0047fa6a
add esp, 0xc
test eax, eax
jne 0x447831
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x238], 7
mov dword [ebp - 0x23c], eax
mov word [ebp - 0x24c], ax
cmp word [ebp - 0x21c], ax
jne 0x4477b8
xor ecx, ecx
jmp 0x4477d0
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4477c1
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0040c0d0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x258]
call fcn.00430be0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x238], 8
jb 0x447814
push dword [ebp - 0x24c]
call fcn.0047cf40
add esp, 4
xor eax, eax
mov dword [ebp - 0x238], 7
mov dword [ebp - 0x23c], 0
mov word [ebp - 0x24c], ax
inc esi
jmp 0x447731
mov ebx, dword [ebp - 0x26c]
test edi, edi
je 0x447852
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x268], 0
mov esi, dword [ebp - 0x254]
mov edi, dword [ebp - 0x258]
mov dword [ebp - 0x264], 0
cmp dword [ebx + 0x14], 8
jb 0x447870
mov ebx, dword [ebx]
push 0x20219
push ebx
push dword [ebp - 0x270]
lea ecx, [ebp - 0x268]
call fcn.0042a2b0
test eax, eax
jne 0x447a50
xor ebx, ebx
lea eax, [ebp - 0x280]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x21c]
push eax
push ebx
push dword [ebp - 0x268]
mov dword [ebp - 0x25c], ebx
mov dword [ebp - 0x26c], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x447a2d
mov eax, dword [ebp - 0x274]
mov ecx, eax
push dword [eax + 0x10]
call fcn.0040bc60
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0047fa6a
add esp, 0xc
test eax, eax
jne 0x447a27
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], eax
mov word [ebp - 0x234], ax
cmp word [ebp - 0x21c], ax
jne 0x447929
xor ecx, ecx
jmp 0x447941
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x447932
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x234]
call fcn.0040c0d0
mov byte [ebp - 4], 3
lea eax, [ebp - 0x234]
cmp eax, esi
jae 0x4479b9
cmp edi, eax
ja 0x4479b9
mov ecx, eax
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp esi, dword [ebp - 0x250]
jne 0x44799b
push ecx
lea ecx, [ebp - 0x258]
call fcn.0041f630
mov esi, dword [ebp - 0x254]
mov edi, dword [ebp - 0x258]
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*8]
push eax
push esi
call fcn.00426280
add esi, 0x18
mov dword [ebp - 0x254], esi
mov ebx, dword [ebp - 0x25c]
jmp 0x4479ef
cmp esi, dword [ebp - 0x250]
jne 0x4479d9
push ecx
lea ecx, [ebp - 0x258]
call fcn.0041f630
mov esi, dword [ebp - 0x254]
mov edi, dword [ebp - 0x258]
lea eax, [ebp - 0x234]
push eax
push esi
call fcn.00426280
add esi, 0x18
mov dword [ebp - 0x254], esi
mov byte [ebp - 4], 1
cmp dword [ebp - 0x220], 8
jb 0x447a0a
push dword [ebp - 0x234]
call fcn.0047cf40
add esp, 4
xor eax, eax
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], 0
mov word [ebp - 0x234], ax
inc ebx
jmp 0x447891
mov eax, dword [ebp - 0x268]
test eax, eax
je 0x447a46
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], 0
mov ecx, esi
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ebx, 1
jne 0x447a7d
mov eax, dword [ebp - 0x278]
cmp eax, edi
je 0x447aa9
push 0xffffffffffffffff
push 0
push edi
mov ecx, eax
jmp 0x447aa4
jbe 0x447aa9
push ebx
mov edx, esi
mov ecx, edi
call fcn.00447b40
mov ecx, dword [ebp - 0x278]
lea eax, [ebx - 1]
add esp, 4
lea eax, [eax + eax*2]
lea eax, [edi + eax*8]
cmp ecx, eax
je 0x447aa9
push 0xffffffffffffffff
push 0
push eax
call fcn.0040bd60
test ebx, ebx
setne bl
mov byte [ebp - 4], 0
test edi, edi
je 0x447aed
push dword [ebp - 0x270]
mov edx, esi
push ecx
mov ecx, edi
call fcn.004044c0
push edi
call fcn.0047cf40
add esp, 0xc
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x268]
test eax, eax
je 0x447b0f
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x268], 0
mov al, bl
mov dword [ebp - 0x264], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047cf45
mov esp, ebp
pop ebp
ret