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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x830
mov eax, dword [0x422830]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
lea eax, [ebp - 0x81c]
push eax
xor edi, edi
push 0x108
push edi
push 0x401888
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x814], ecx
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x824], edi
mov dword [ebp - 0x810], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407639
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push 4
mov dword [ebp - 0x820], edi
pop ebx
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x804]
push eax
push dword [ebp - 0x820]
mov dword [ebp - 0x830], 0x200
push dword [ebp - 0x81c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x4075fb
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0x404]
push 0x200
push eax
mov dword [ebp - 0x82c], edi
call sub.msvcrt.dll_wcscpy_s
push 0x40186c
lea eax, [ebp - 0x404]
push 0x200
push eax
call sub.msvcrt.dll_wcscat_s
add esp, 0x18
lea eax, [ebp - 0x810]
push eax
push 0x101
push edi
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x81c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407605
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401818
push dword [ebp - 0x810]
mov dword [ebp - 0x808], 0x400
call esi
test eax, eax
jne 0x407355
lea eax, [ebp - 0x404]
push 0x401808
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
test eax, eax
pop ecx
pop ecx
je 0x407355
mov dword [ebp - 0x82c], 1
push dword [ebp - 0x810]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x82c], edi
je 0x407605
push 0x4017ec
lea eax, [ebp - 0x804]
push 0x200
push eax
call sub.msvcrt.dll_wcscat_s
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
push 0x101
push edi
lea eax, [ebp - 0x804]
push eax
push dword [ebp - 0x81c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407605
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401798
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x4075ed
mov ecx, dword [ebp - 0x80c]
mov eax, dword [ebp - 0x814]
or dword [eax + 0x18], ecx
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401740
push dword [ebp - 0x810]
mov dword [ebp - 0x824], 1
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x407434
mov ecx, dword [ebp - 0x80c]
mov eax, dword [ebp - 0x814]
or dword [eax + 4], ecx
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x4016e8
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x407470
mov ecx, dword [ebp - 0x80c]
mov eax, dword [ebp - 0x814]
or dword [eax + 8], ecx
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401690
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x4074ac
mov ecx, dword [ebp - 0x80c]
mov eax, dword [ebp - 0x814]
or dword [eax + 0xc], ecx
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401638
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x4074e8
mov eax, dword [ebp - 0x80c]
mov ecx, dword [ebp - 0x814]
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x4015e0
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x407524
mov ecx, dword [ebp - 0x80c]
mov eax, dword [ebp - 0x814]
or dword [eax + 0x10], ecx
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401588
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x407560
mov eax, dword [ebp - 0x80c]
mov ecx, dword [ebp - 0x814]
mov dword [ecx + 0x24], eax
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x401530
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x4075b1
cmp dword [ebp - 0x80c], edi
je 0x4075b1
mov eax, dword [ebp - 0x814]
mov dword [eax + 0x28], SysStringLen
mov dword [eax + 0x18], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x818]
push eax
push edi
push 0x4014d8
push dword [ebp - 0x810]
mov dword [ebp - 0x808], ebx
call esi
test eax, eax
jne 0x4075ed
mov eax, dword [ebp - 0x80c]
mov ecx, dword [ebp - 0x814]
mov dword [ecx + 0x2c], eax
push dword [ebp - 0x810]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x407605
mov dword [ebp - 0x828], 1
inc dword [ebp - 0x820]
cmp dword [ebp - 0x828], edi
je 0x40726d
push dword [ebp - 0x81c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x824], edi
pop esi
pop ebx
je 0x407639
mov ecx, dword [ebp - 0x814]
push ecx
call fcn.00407163
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.0040de61
leave
ret