Function at 0x100deff
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x520
mov eax, dword [0x101000c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
xor ebx, ebx
push esi
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x518], ecx
mov dword [ebp - 0x50c], ebx
mov dword [ebp - 0x504], ebx
mov dword [ebp - 0x508], ebx
cmp eax, ebx
jne 0x100df4a
mov esi, 0x80070057
jmp 0x100e1ad
push edi
lea eax, [ebp - 0x510]
push eax
mov edi, 0x20019
call fcn.0100dc6b
mov esi, eax
cmp esi, ebx
mov dword [ebp - 0x500], esi
jl 0x100e1ac
cmp dword [ebp - 0x510], 1
jne 0x100df7a
mov edi, 0x20119
lea eax, [ebp - 0x500]
push eax
lea eax, [ebp - 0x50c]
push eax
push edi
push ebx
push 0x1008198
push 0x80000002
call dword [sym.imp.KERNEL32.dll_RegOpenKeyExW]
push eax
call fcn.0100d546
test eax, eax
je 0x100e1a6
mov eax, dword [ebp - 0x50c]
lea ecx, [ebp - 0x500]
push ecx
lea ecx, [ebp - 0x51c]
push ecx
lea ecx, [ebp - 0x4fc]
push ecx
lea ecx, [ebp - 0x514]
push ecx
push ebx
push 0x1008278
mov esi, 0x4f8
push eax
mov dword [ebp - 0x514], ebx
mov dword [ebp - 0x51c], esi
call dword [sym.imp.KERNEL32.dll_RegQueryValueExW]
push eax
call fcn.0100d546
test eax, eax
je 0x100e1a6
cmp dword [ebp - 0x514], 3
jne 0x100e19f
cmp dword [ebp - 0x51c], esi
jne 0x100e19f
cmp dword [ebp - 0x4fc], esi
jne 0x100e19f
lea eax, [ebp - 0x104]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x100e024
lea ecx, [ebp - 0x500]
push ecx
sub eax, edx
sar eax, 1
push 1
push eax
mov dword [ebp - 0x500], eax
call fcn.0100d74b
mov esi, eax
cmp esi, ebx
jl 0x100e1ac
mov edi, dword [ebp - 0x500]
xor esi, esi
cmp edi, ebx
je 0x100e073
lea eax, [edi + edi]
mov ecx, eax
shr ecx, 1
cmp ecx, edi
je 0x100e06f
mov esi, 0x80070216
jmp 0x100e077
mov edi, eax
jmp 0x100e077
xor edi, edi
xor esi, esi
cmp esi, ebx
jl 0x100e1ac
push edi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
lea ecx, [ebp - 0x504]
mov dword [ebp - 0x510], ebx
call fcn.0100d7f1
test ebx, ebx
jne 0x100e0af
and dword [ebp - 0x504], ebx
mov esi, 0x8007000e
jmp 0x100e1ac
lea eax, [ebp - 0x104]
push eax
push edi
push ebx
mov dword [ebp - 0x504], ebx
call fcn.0100d79a
mov esi, eax
test esi, esi
jl 0x100e1ac
cmp dword [ebp - 0x518], 0
je 0x100e18e
lea eax, [ebp - 0x84]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100e0e3
lea ecx, [ebp - 0x500]
push ecx
sub eax, edx
sar eax, 1
push 1
push eax
mov dword [ebp - 0x500], eax
call fcn.0100d74b
mov esi, eax
test esi, esi
jl 0x100e1ac
mov ebx, dword [ebp - 0x500]
xor esi, esi
test ebx, ebx
je 0x100e132
lea eax, [ebx + ebx]
mov ecx, eax
shr ecx, 1
cmp ecx, ebx
je 0x100e12e
mov esi, 0x80070216
jmp 0x100e136
mov ebx, eax
jmp 0x100e136
xor ebx, ebx
xor esi, esi
test esi, esi
jl 0x100e1ac
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
lea ecx, [ebp - 0x508]
mov edi, eax
call fcn.0100d7f1
test edi, edi
jne 0x100e15f
and dword [ebp - 0x508], edi
jmp 0x100e0a5
lea eax, [ebp - 0x84]
push eax
push ebx
push edi
mov dword [ebp - 0x508], edi
call fcn.0100d79a
mov esi, eax
test esi, esi
jl 0x100e1ac
mov eax, dword [ebp - 0x518]
and dword [ebp - 0x508], 0
mov ebx, dword [ebp - 0x510]
mov dword [eax], edi
mov eax, dword [ebp - 0x520]
and dword [ebp - 0x504], 0
mov dword [eax], ebx
jmp 0x100e1ac
mov esi, 0x8007000d
jmp 0x100e1ac
mov esi, dword [ebp - 0x500]
pop edi
lea ecx, [ebp - 0x508]
call fcn.0100d7f1
lea ecx, [ebp - 0x504]
call fcn.0100d7f1
lea ecx, [ebp - 0x50c]
call fcn.0100d8a9
mov ecx, dword [ebp - 4]
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0100909d
leave
ret 8