Function at 0x1021af9
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x4ac
mov eax, 0x1041149
call fcn.01001615
mov esi, dword [ebp + 0xc]
and dword [esi], 0
mov eax, dword [ebp + 0x10]
mov ebx, 0x1022458
push ebx
push dword [0x1050b74]
mov dword [ebp - 0x42c], esi
push dword [0x1050b70]
mov dword [ebp - 0x424], eax
call dword [0x1050b68]
test al, al
je 0x1021b52
push dword [esi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
push 0
call fcn.0101e039
mov edi, eax
test edi, edi
jl 0x102243e
lea eax, [ebp - 0x444]
push eax
push 0x20019
push 0
push 0x100af48
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push eax
call fcn.0100b113
mov edi, eax
test edi, edi
jl 0x102243e
lea eax, [ebp - 0x460]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x458]
push eax
push 0x100c810
push 0
push dword [ebp - 0x444]
mov dword [ebp - 0x460], 0x104
mov dword [ebp - 0x458], 2
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
push eax
call fcn.0100b113
mov edi, eax
test edi, edi
jge 0x1021c24
push 0
lea ecx, [ebp - 0x46c]
call fcn.0101e28a
mov esi, dword [ebp - 0x424]
and dword [ebp - 4], 0
push 0x7d5
lea eax, [ebp - 0x46c]
push eax
mov ecx, esi
call fcn.0100f6ba
mov eax, dword [esi]
push 0xffffffffffffffff
push dword [esi + 0xc]
mov ecx, esi
push 0x100c810
call dword [eax + 0x10]
lea ecx, [ebp - 0x46c]
call fcn.0100e0c2
jmp 0x1022432
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x454]
call fcn.01003bb9
xor edi, edi
inc edi
push 0x1005b54
lea ecx, [ebp - 0x430]
mov dword [ebp - 4], edi
call fcn.01003bb9
push 0x100b2b4
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 2
call fcn.01003bb9
push 0x1022550
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 3
call fcn.01003bb9
push 0x1022528
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 4
call fcn.01003bb9
push 0x10224fc
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 5
call fcn.01003bb9
push 0x10224e0
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 6
call fcn.01003bb9
push 0x10224c4
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 7
call fcn.01003bb9
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 8
call fcn.0101db89
push ebx
mov dword [esi], edi
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x1021d19
push dword [esi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 0x45c]
call fcn.0100a6fc
push 0x10189f4
lea ecx, [ebp - 0x45c]
mov byte [ebp - 4], 9
call fcn.0101e1ae
push dword [ebp - 0x424]
push dword [ebp - 0x468]
push dword [ebp - 0x45c]
push dword [ebp - 0x430]
call fcn.0101e4e5
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, eax
test edi, edi
jl 0x10223ea
lea eax, [ebp - 0x478]
push eax
push 2
push 0
push 0x101895c
push dword [ebp - 0x444]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push eax
call fcn.0100b113
mov edi, eax
test edi, edi
jge 0x1021dda
push 0
lea ecx, [ebp - 0x450]
call fcn.0101e28a
mov ebx, dword [ebp - 0x424]
push 0x7d7
lea eax, [ebp - 0x450]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xa
call fcn.0100f6ba
mov eax, dword [ebx]
push 0xffffffffffffffff
push dword [ebx + 0xc]
mov ecx, ebx
push 0x101895c
call dword [eax + 0x10]
lea ecx, [ebp - 0x450]
jmp 0x10223e5
mov eax, dword [ebp - 0x42c]
push ebx
mov dword [eax], 2
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x1021e1c
mov eax, dword [ebp - 0x42c]
push dword [eax]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
mov ecx, dword [ebp - 0x474]
mov eax, dword [ebp - 0x470]
mov dword [ebp - 0x4a4], ecx
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x490], ecx
xor ecx, ecx
mov dword [ebp - 0x4b8], eax
xor eax, eax
inc ecx
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x484], ecx
lea ecx, [ebp - 0x4b0]
mov dword [ebp - 0x4b4], eax
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x428], ecx
cmp dword [ebp - 0x434], 3
jae 0x1021f03
cmp dword [ecx + 8], eax
je 0x1021eb1
mov dword [ecx], eax
jmp 0x1021ef0
push dword [ebp - 0x424]
push dword [ecx - 8]
push dword [ebp - 0x430]
call fcn.0101e877
mov ecx, dword [ebp - 0x428]
mov edi, eax
xor eax, eax
test edi, edi
setge al
cmp edi, 0x800401f3
mov dword [ecx], eax
jne 0x1021ee8
mov eax, ecx
cmp dword [eax - 4], 0
je 0x1021ee8
xor edi, edi
mov ecx, dword [ebp - 0x428]
xor eax, eax
inc dword [ebp - 0x434]
add ecx, 0x14
cmp edi, eax
mov dword [ebp - 0x428], ecx
jge 0x1021e9f
cmp edi, eax
jl 0x10221b4
mov edi, dword [ebp - 0x42c]
push ebx
mov dword [edi], 3
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x1021f47
push dword [edi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
lea eax, [ebp - 0x44c]
push eax
push 0x20019
push 0
push dword [ebp - 0x448]
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push eax
call fcn.0100b113
mov edi, eax
test edi, edi
jl 0x102216c
lea eax, [ebp - 0x460]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x458]
push eax
push 0x102249c
push 0
push dword [ebp - 0x44c]
mov dword [ebp - 0x460], 0x104
mov dword [ebp - 0x458], 2
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
push eax
call fcn.0100b113
mov edi, eax
test edi, edi
jl 0x1022112
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x43c]
call fcn.01003bb9
mov edi, dword [ebp - 0x43c]
neg edi
sbb edi, edi
and edi, 0x7ff8fff2
add edi, 0x8007000e
mov byte [ebp - 4], 0xb
js 0x1022104
mov edi, dword [ebp - 0x42c]
push ebx
mov dword [edi], 4
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x1022031
push dword [edi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
push dword [ebp - 0x424]
xor eax, eax
push eax
push eax
push 1
push eax
push dword [ebp - 0x43c]
push dword [ebp - 0x438]
push dword [ebp - 0x430]
call fcn.0101e999
mov edi, eax
test edi, edi
jl 0x1022104
mov eax, dword [ebp - 0x42c]
push ebx
mov dword [eax], 5
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x10220a1
mov eax, dword [ebp - 0x42c]
push dword [eax]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
and dword [ebp - 0x434], 0
lea eax, [ebp - 0x4b8]
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x434], 3
jae 0x1022104
cmp dword [eax + 8], 0
je 0x10220f1
cmp dword [eax + 0xc], 0
push dword [ebp - 0x424]
push dword [eax]
push dword [ebp - 0x438]
push dword [ebp - 0x430]
je 0x10220e4
call fcn.0101eec5
jmp 0x10220e9
call fcn.0101eda1
mov edi, eax
mov eax, dword [ebp - 0x428]
inc dword [ebp - 0x434]
add eax, 0x14
test edi, edi
mov dword [ebp - 0x428], eax
jge 0x10220b4
push dword [ebp - 0x43c]
mov byte [ebp - 4], 9
call esi
jmp 0x102215e
push 0
lea ecx, [ebp - 0x440]
call fcn.0101e28a
mov ecx, dword [ebp - 0x424]
push 0x7d5
lea eax, [ebp - 0x440]
push eax
mov byte [ebp - 4], 0xc
call fcn.0100f6ba
mov ecx, dword [ebp - 0x424]
mov eax, dword [ecx]
push 0xffffffffffffffff
push dword [ecx + 0xc]
push 0x102249c
call dword [eax + 0x10]
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 9
call fcn.0100e0c2
push dword [ebp - 0x44c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10221b4
push 0
lea ecx, [ebp - 0x440]
call fcn.0101e28a
mov ecx, dword [ebp - 0x424]
push 0x7d7
lea eax, [ebp - 0x440]
push eax
mov byte [ebp - 4], 0xd
call fcn.0100f6ba
push dword [ebp - 0x448]
mov ecx, dword [ebp - 0x424]
call fcn.0101e1e3
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 9
call fcn.0100e0c2
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jl 0x10223ea
mov edi, dword [ebp - 0x42c]
and dword [ebp - 0x43c], 0
push 4
pop eax
push ebx
mov dword [edi], 6
push dword [0x1050b74]
mov dword [ebp - 0x434], eax
push dword [0x1050b70]
mov dword [ebp - 0x428], eax
call dword [0x1050b68]
test al, al
je 0x102221a
push dword [edi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x428]
push eax
push 0x1022468
push 0
push dword [ebp - 0x444]
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
push eax
call fcn.0100b113
test eax, eax
jge 0x1022270
and dword [ebp - 0x44c], 0
lea eax, [ebp - 0x44c]
push eax
call fcn.0101df33
mov eax, dword [ebp - 0x44c]
or eax, 1
mov dword [ebp - 0x43c], eax
jmp 0x1022276
mov eax, dword [ebp - 0x43c]
push dword [ebp - 0x424]
push eax
push dword [ebp - 0x438]
push dword [ebp - 0x430]
call fcn.0101efe9
mov edi, eax
test edi, edi
jl 0x10223ea
mov edi, dword [ebp - 0x42c]
push ebx
mov dword [edi], 7
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x10222d4
push dword [edi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
push dword [ebp - 0x424]
push dword [ebp - 0x454]
push dword [ebp - 0x438]
push dword [ebp - 0x430]
push dword [ebp + 8]
call fcn.01021201
mov edi, eax
test edi, edi
jl 0x10223ea
mov edi, dword [ebp - 0x42c]
push ebx
mov dword [edi], 8
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x102233a
push dword [edi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
push dword [ebp - 0x424]
push dword [ebp - 0x438]
push dword [ebp - 0x430]
call fcn.01020045
mov edi, eax
test edi, edi
jl 0x10223ea
mov edi, dword [ebp - 0x42c]
push ebx
mov dword [edi], 9
push dword [0x1050b74]
push dword [0x1050b70]
call dword [0x1050b68]
test al, al
je 0x1022397
push dword [edi]
push 0x1022448
push ebx
push dword [0x1050b74]
push dword [0x1050b70]
call fcn.010337bb
push 1
call fcn.0101e039
mov edi, eax
test edi, edi
jge 0x10223ea
push 0
lea ecx, [ebp - 0x47c]
call fcn.0101e28a
mov ebx, dword [ebp - 0x424]
push 0x7d6
lea eax, [ebp - 0x47c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.0100f6ba
mov eax, dword [ebx]
push 0xffffffffffffffff
push dword [ebx + 0xc]
mov ecx, ebx
push 0x1007424
call dword [eax + 0x10]
lea ecx, [ebp - 0x47c]
call fcn.0100e0c2
push dword [ebp - 0x45c]
call esi
push dword [ebp - 0x448]
call esi
push dword [ebp - 0x464]
call esi
push dword [ebp - 0x474]
call esi
push dword [ebp - 0x470]
call esi
push dword [ebp - 0x468]
call esi
push dword [ebp - 0x438]
call esi
push dword [ebp - 0x430]
call esi
push dword [ebp - 0x454]
call esi
push dword [ebp - 0x444]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
call fcn.01001652
ret 0xc