Function at 0x410a44
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xb8
mov eax, 0x47fd9e
call fcn.004083cb
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push 0x410fc4
push 8
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], esi
call fcn.004015a0
pop ecx
xor edi, edi
pop ecx
mov dword [ebp - 0x7c], edi
mov eax, dword [esi]
lea ecx, [ebp - 0x7c]
push ecx
push 0x4134b0
push edi
push edi
push esi
mov dword [ebp - 4], edi
call dword [eax + 0x24]
mov esi, eax
cmp esi, edi
jl 0x431e8d
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp - 0xb4]
push eax
call esi
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
push edi
lea edx, [ebp - 0xb4]
push edx
push 0x410560
push eax
call dword [ecx + 0xc]
cmp eax, edi
mov dword [ebp - 0x74], eax
jl 0x431eb5
push 8
pop eax
cmp ax, word [ebp - 0xb4]
jne 0x4320c3
push dword [ebp - 0xac]
lea edi, [ebx + 0x58]
mov ecx, edi
call fcn.00410a1e
xor eax, eax
mov word [ebp - 0xb4], ax
lea eax, [ebp - 0xc4]
push eax
call esi
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
push 0
lea edx, [ebp - 0xc4]
push edx
push 0x4104fc
push eax
call dword [ecx + 0xc]
test eax, eax
jl 0x410d02
push 8
pop eax
cmp ax, word [ebp - 0xc4]
jne 0x410d02
push dword [ebp - 0xbc]
lea ecx, [ebx + 0x54]
call fcn.00410a1e
mov ecx, dword [ebp - 0x80]
xor eax, eax
push ebx
mov word [ebp - 0xc4], ax
call fcn.00411269
mov edi, eax
test edi, edi
jl 0x431eca
lea eax, [ebp - 0xa4]
push eax
call esi
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
xor esi, esi
push esi
lea edx, [ebp - 0xa4]
push edx
push 0x410408
push eax
mov byte [ebp - 4], 2
call dword [ecx + 0xc]
cmp eax, esi
mov dword [ebp - 0x74], eax
jl 0x410d10
push 8
pop ecx
cmp cx, word [ebp - 0xa4]
jne 0x410d10
lea eax, [ebx + 0x88]
push eax
push dword [ebp - 0x9c]
call dword [sym.imp.ole32.dll_CLSIDFromString]
cmp eax, esi
mov dword [ebp - 0x74], eax
jl 0x431f33
push 8
pop eax
cmp ax, word [ebp - 0xa4]
jne 0x431f5a
push dword [ebp - 0x9c]
lea ecx, [ebp - 0x78]
call fcn.00417f25
mov ecx, dword [ebp - 0x80]
push 0x410d1c
push dword [ebp - 0x78]
mov byte [ebp - 4], 3
call fcn.00411001
cmp eax, esi
mov dword [ebp - 0x74], eax
jge 0x431f4e
mov dword [ebx + 0x38], esi
push dword [ebx + 0x38]
push eax
push dword [ebp - 0x78]
push 0x410e58
push 8
call fcn.004015a0
add esp, 0x14
push dword [ebp - 0x78]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x80]
cmp dword [eax + 0x84], esi
jne 0x431f71
push 4
pop ecx
mov edi, 0x40ea54
lea esi, [ebx + 0x78]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
mov esi, dword [sym.imp.msvcrt.dll_wcsstr]
jne 0x410c46
mov eax, dword [ebx + 0x54]
push 0x410e08
push eax
call esi
pop ecx
pop ecx
test eax, eax
jne 0x431f7d
mov eax, dword [ebx + 0x54]
push 0x410db8
push eax
call esi
pop ecx
pop ecx
test eax, eax
jne 0x431f89
push dword [ebp - 0x84]
lea ecx, [ebp - 0x88]
call fcn.0040c301
mov eax, dword [ebp - 0x88]
xor edi, edi
cmp eax, edi
je 0x4320aa
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edi
mov ecx, dword [eax]
lea edx, [ebp - 0x94]
push edx
push eax
mov byte [ebp - 4], 5
call dword [ecx + 0xc]
cmp eax, edi
jge 0x431f95
push eax
push 0x410d30
push 8
call fcn.004015a0
add esp, 0xc
mov dword [ebp - 0x74], edi
lea ecx, [ebp - 0x94]
call fcn.00403d1d
mov eax, dword [ebp - 0x88]
mov byte [ebp - 4], 2
cmp eax, edi
je 0x410cd9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0xa4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x7c]
or dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x410cf7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x74]
call fcn.00408465
ret 8
push edi
lea ecx, [ebp - 0x78]
call fcn.00451d77
jmp 0x431ef2
push eax
push 0x410f30
jmp 0x431f39
push esi
push 0x4326c0
push 1
call fcn.004015a0
mov eax, dword [ebp - 0x7c]
or dword [ebp - 4], 0xffffffff
add esp, 0xc
cmp eax, edi
je 0x431eae
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
jmp 0x410cfa
push eax
push 0x432628
push 1
call fcn.004015a0
add esp, 0xc
jmp 0x410ce6
push edi
push 0x432580
push 1
call fcn.004015a0
mov eax, dword [ebp - 0x7c]
or dword [ebp - 4], 0xffffffff
add esp, 0xc
test eax, eax
je 0x431eeb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
jmp 0x410cfa
mov eax, dword [ebp - 0x78]
and dword [ebp - 0x78], 0
lea ecx, [ebx + 0x54]
push eax
mov byte [ebp - 4], 1
call fcn.00410a1e
mov ecx, dword [ebp - 0x80]
push ebx
push dword [ebp - 0x7c]
call fcn.0046968d
test eax, eax
jge 0x431f26
push eax
push 0x4324c8
push 8
call fcn.004015a0
add esp, 0xc
push 0
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x410b4e
push eax
push 0x432450
push 1
call fcn.004015a0
add esp, 0xc
cmp dword [ebp - 0x74], esi
jge 0x410bac
jmp 0x431f5a
mov dword [ebx + 0x38], 1
jmp 0x410bec
push dword [ebp - 0x74]
push 0x4323b0
push 8
call fcn.004015a0
add esp, 0xc
jmp 0x410c0b
or dword [ebx + 0x10c], 1
jmp 0x410c1a
or dword [ebx + 0x10c], 1
jmp 0x410c46
or dword [ebx + 0x10c], 1
jmp 0x410c5b
xor eax, eax
push 0x4e
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x5e]
push edi
push eax
mov dword [ebp - 0x80], 1
call sub.msvcrt.dll_memset
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
add esp, 0xc
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x80]
push eax
push edi
push 0x432360
push dword [ebp - 0x94]
mov dword [ebp - 0x78], 0x50
call esi
cmp eax, edi
mov dword [ebp - 0x74], eax
jle 0x431fec
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], edi
jge 0x432002
push dword [ebp - 0x74]
push 0x4322e0
push 8
call fcn.004015a0
jmp 0x432038
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
cmp eax, edi
mov dword [ebp - 0x74], eax
jl 0x432028
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebx + 0x98]
call fcn.00406ab4
jmp 0x43203b
push eax
push 0x432270
push 8
call fcn.004015a0
mov dword [ebp - 0x74], edi
add esp, 0xc
test byte [ebx + 0x10c], 1
jne 0x410cba
push 4
pop eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x80]
push eax
push edi
push 0x432220
push dword [ebp - 0x94]
mov dword [ebp - 0x84], edi
call esi
cmp eax, edi
mov dword [ebp - 0x74], eax
jle 0x432088
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], edi
jl 0x410cb7
cmp dword [ebp - 0x84], 1
jne 0x410cba
or dword [ebx + 0x10c], 1
jmp 0x410cba
push 0x80004002
push 0x432198
push 8
call fcn.004015a0
add esp, 0xc
jmp 0x410cc5
push 0x432100
push 1
call fcn.004015a0
pop ecx
pop ecx
lea eax, [ebp - 0xb4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x7c]
or dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x4320ef
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80070057
jmp 0x410cfa