Function at 0x100dfff
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 0x100e04a
mov esi, 0x80070057
jmp 0x100e2ad
push edi
lea eax, [ebp - 0x510]
push eax
mov edi, 0x20019
call fcn.0100dd6b
mov esi, eax
cmp esi, ebx
mov dword [ebp - 0x500], esi
jl 0x100e2ac
cmp dword [ebp - 0x510], 1
jne 0x100e07a
mov edi, 0x20119
lea eax, [ebp - 0x500]
push eax
lea eax, [ebp - 0x50c]
push eax
push edi
push ebx
push 0x1008298
push 0x80000002
call dword [sym.imp.KERNEL32.dll_RegOpenKeyExW]
push eax
call fcn.0100d646
test eax, eax
je 0x100e2a6
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 0x1008378
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.0100d646
test eax, eax
je 0x100e2a6
cmp dword [ebp - 0x514], 3
jne 0x100e29f
cmp dword [ebp - 0x51c], esi
jne 0x100e29f
cmp dword [ebp - 0x4fc], esi
jne 0x100e29f
lea eax, [ebp - 0x104]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x100e124
lea ecx, [ebp - 0x500]
push ecx
sub eax, edx
sar eax, 1
push 1
push eax
mov dword [ebp - 0x500], eax
call fcn.0100d84b
mov esi, eax
cmp esi, ebx
jl 0x100e2ac
mov edi, dword [ebp - 0x500]
xor esi, esi
cmp edi, ebx
je 0x100e173
lea eax, [edi + edi]
mov ecx, eax
shr ecx, 1
cmp ecx, edi
je 0x100e16f
mov esi, 0x80070216
jmp 0x100e177
mov edi, eax
jmp 0x100e177
xor edi, edi
xor esi, esi
cmp esi, ebx
jl 0x100e2ac
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.0100d8f1
test ebx, ebx
jne 0x100e1af
and dword [ebp - 0x504], ebx
mov esi, 0x8007000e
jmp 0x100e2ac
lea eax, [ebp - 0x104]
push eax
push edi
push ebx
mov dword [ebp - 0x504], ebx
call fcn.0100d89a
mov esi, eax
test esi, esi
jl 0x100e2ac
cmp dword [ebp - 0x518], 0
je 0x100e28e
lea eax, [ebp - 0x84]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100e1e3
lea ecx, [ebp - 0x500]
push ecx
sub eax, edx
sar eax, 1
push 1
push eax
mov dword [ebp - 0x500], eax
call fcn.0100d84b
mov esi, eax
test esi, esi
jl 0x100e2ac
mov ebx, dword [ebp - 0x500]
xor esi, esi
test ebx, ebx
je 0x100e232
lea eax, [ebx + ebx]
mov ecx, eax
shr ecx, 1
cmp ecx, ebx
je 0x100e22e
mov esi, 0x80070216
jmp 0x100e236
mov ebx, eax
jmp 0x100e236
xor ebx, ebx
xor esi, esi
test esi, esi
jl 0x100e2ac
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
lea ecx, [ebp - 0x508]
mov edi, eax
call fcn.0100d8f1
test edi, edi
jne 0x100e25f
and dword [ebp - 0x508], edi
jmp 0x100e1a5
lea eax, [ebp - 0x84]
push eax
push ebx
push edi
mov dword [ebp - 0x508], edi
call fcn.0100d89a
mov esi, eax
test esi, esi
jl 0x100e2ac
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 0x100e2ac
mov esi, 0x8007000d
jmp 0x100e2ac
mov esi, dword [ebp - 0x500]
pop edi
lea ecx, [ebp - 0x508]
call fcn.0100d8f1
lea ecx, [ebp - 0x504]
call fcn.0100d8f1
lea ecx, [ebp - 0x50c]
call fcn.0100d9a9
mov ecx, dword [ebp - 4]
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0100919d
leave
ret 8