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

Disassembly:
mov eax, 0x268ed9be
call fcn.268eb4dc
sub esp, 0x78
push ebx
push esi
push edi
push dword [ebp + 0xc]
lea esi, [ebp - 0x4c]
call fcn.268e2ff3
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 1
mov esi, 0x2691126c
push esi
push eax
lea ebx, [ebp - 0x18]
lea eax, [ebp - 0x4c]
call fcn.268e3b71
and dword [ebp - 0x10], 0
mov byte [ebp - 4], 2
push esi
push 1
lea ebx, [ebp - 0x10]
lea eax, [ebp - 0x4c]
call fcn.268e3b71
and dword [ebp - 0x48], 0
mov byte [ebp - 4], 3
push esi
push 2
lea ebx, [ebp - 0x48]
lea eax, [ebp - 0x4c]
call fcn.268e3b71
and dword [ebp - 0x44], 0
mov byte [ebp - 4], 4
push esi
push 3
lea ebx, [ebp - 0x44]
lea eax, [ebp - 0x4c]
call fcn.268e3b71
mov esi, dword [ebp + 8]
call fcn.268e3f3a
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x14], ebx
inc edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0x14]
and eax, edi
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], ebx
je 0x2689012d
lea eax, [ebp - 0x1c]
call fcn.268e3045
test eax, eax
jne 0x2689012d
push dword [ebp + 0x14]
lea eax, [ebp - 0x1c]
push dword [ebp + 0x10]
call fcn.268e3147
push eax
call fcn.2688fdf0
add esp, 0xc
cmp eax, 1
mov dword [ebp - 0x14], eax
je 0x268907c4
mov eax, dword [ebp + 0x14]
and eax, 8
mov dword [ebp - 0x84], eax
jne 0x2689014b
lea eax, [ebp - 0x10]
call fcn.268e3045
test eax, eax
je 0x26890577
mov dword [ebp - 0x34], ebx
mov byte [ebp - 4], 6
lea eax, [ebp - 0x18]
call fcn.268e3147
mov ecx, eax
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
push ecx
lea eax, [ebp - 0x34]
push eax
call fcn.2688ff1f
add esp, 0xc
lea eax, [ebp - 0x34]
call fcn.268e3045
test eax, eax
jne 0x268907e7
lea eax, [ebp - 0x18]
call fcn.268e3147
mov ecx, eax
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
push ecx
lea eax, [ebp - 0x34]
push eax
call fcn.2688ff1f
push eax
call fcn.2688e90b
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x40], eax
je 0x268907e7
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
push ebx
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x64]
push ecx
push ebx
push ebx
push ebx
push eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov edi, eax
neg edi
sbb edi, edi
inc edi
test byte [ebp + 0x14], 6
je 0x26890411
lea eax, [ebp - 0x48]
call fcn.268e3045
test eax, eax
je 0x2689020d
lea eax, [ebp - 0x44]
call fcn.268e3045
test eax, eax
mov dword [ebp - 0x28], 1
jne 0x26890210
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x5c], ebx
mov dword [ebp - 0x50], ebx
jbe 0x26890411
cmp edi, ebx
je 0x26890411
cmp dword [ebp - 0x14], ebx
jne 0x26890411
mov eax, dword [ebp - 0x58]
lea eax, [eax + eax + 2]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, ebx
pop ecx
mov dword [ebp - 0x24], eax
je 0x2689040f
mov ecx, dword [ebp - 0x58]
push ebx
inc ecx
push ebx
mov dword [ebp - 0x7c], ecx
lea ecx, [ebp - 0x20]
push ecx
push ebx
lea ecx, [ebp - 0x7c]
push ecx
push eax
push dword [ebp - 0x50]
mov dword [ebp - 0x20], ebx
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x268903f5
test byte [ebp + 0x14], 2
je 0x268902b7
cmp dword [ebp - 0x28], ebx
je 0x268902b7
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x24]
call fcn.2688fdf0
add esp, 0xc
cmp eax, 1
mov dword [ebp - 0x14], eax
jne 0x268902b7
lea eax, [ebp - 0x18]
call fcn.268e3147
push ebx
push dword [ebp - 0x24]
mov ecx, eax
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
push ecx
push dword [ebp + 8]
call fcn.2688fec4
add esp, 0x14
mov esi, dword [ebp - 0x28]
cmp esi, ebx
jne 0x268902d0
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x48]
call fcn.268e30a7
test eax, eax
mov dword [ebp - 0x28], ebx
je 0x268902d7
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x14], ebx
jne 0x268903f5
test byte [ebp + 0x14], 4
je 0x268903f5
cmp esi, ebx
jne 0x26890307
cmp dword [ebp - 0x28], ebx
je 0x268903f5
lea eax, [ebp - 0x44]
call fcn.268e3045
test eax, eax
je 0x268903f5
cmp dword [ebp - 0x20], ebx
jbe 0x268903f5
cmp dword [ebp - 0x20], 2
jbe 0x26890320
cmp dword [ebp - 0x20], 7
jne 0x268903f5
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x3c]
push eax
push ebx
lea eax, [ebp - 0x20]
push eax
push ebx
push dword [ebp - 0x24]
mov dword [ebp - 0x3c], ebx
push dword [ebp - 0x40]
call esi
test eax, eax
jne 0x268903ee
mov eax, dword [ebp - 0x3c]
cmp eax, ebx
jbe 0x268903f5
add eax, eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, ebx
pop ecx
mov dword [ebp - 0x38], eax
je 0x268903ee
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x20]
push eax
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x40]
call esi
test eax, eax
jne 0x268903ee
cmp dword [ebp - 0x20], 7
jne 0x268903a5
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
cmp eax, 1
jae 0x2689038d
xor eax, eax
inc eax
dec eax
cmp ecx, eax
jae 0x268903a5
mov eax, dword [ebp - 0x38]
lea eax, [eax + ecx*2]
cmp word [eax], bx
jne 0x268903a2
mov word [eax], 0x20
inc ecx
jmp 0x26890382
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x38]
call fcn.2688fdf0
add esp, 0xc
cmp eax, 1
mov dword [ebp - 0x14], eax
jne 0x268903e3
lea eax, [ebp - 0x18]
call fcn.268e3147
push dword [ebp - 0x38]
mov ecx, eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
push ecx
push dword [ebp + 8]
call fcn.2688fec4
add esp, 0x14
push dword [ebp - 0x38]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x268903f5
cmp dword [ebp - 0x3c], ebx
jbe 0x268903f5
xor edi, edi
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x5c]
pop ecx
jb 0x2689021c
jmp 0x26890411
xor edi, edi
test byte [ebp + 0x14], 9
je 0x26890562
cmp dword [ebp - 0x64], ebx
mov dword [ebp - 0x3c], ebx
jbe 0x26890562
mov esi, dword [ebp - 0x14]
cmp edi, ebx
je 0x26890562
cmp esi, ebx
jne 0x26890562
mov eax, dword [ebp - 0x60]
lea eax, [eax + eax + 2]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, ebx
pop ecx
mov dword [ebp - 0x50], eax
je 0x26890560
mov eax, dword [ebp - 0x60]
push ebx
push ebx
push ebx
inc eax
push ebx
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x26890546
mov dword [ebp - 0x54], ebx
mov byte [ebp - 4], 7
push dword [ebp - 0x50]
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.2688ff1f
add esp, 0xc
cmp dword [ebp - 0x68], ebx
je 0x268904db
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x50]
call fcn.2688fdf0
mov esi, eax
add esp, 0xc
cmp esi, 1
mov dword [ebp - 0x14], esi
jne 0x268904db
lea eax, [ebp - 0x18]
call fcn.268e3147
push ebx
mov ecx, eax
push ebx
lea eax, [ebp - 0x54]
call fcn.268e3147
push eax
push ecx
push dword [ebp + 8]
call fcn.2688fec4
add esp, 0x14
jmp 0x2689053a
cmp dword [ebp - 0x84], ebx
je 0x2689053a
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 4], 8
lea eax, [ebp - 0x18]
call fcn.268e3147
mov ecx, eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push dword [ebp + 0x10]
push ebx
push ebx
call fcn.268e3147
push eax
push ecx
lea eax, [ebp - 0x6c]
push eax
call fcn.2688fec4
add esp, 0x14
push eax
push dword [ebp + 8]
call fcn.2689005f
mov esi, eax
add esp, 0x14
neg esi
sbb esi, esi
neg esi
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 7
lea eax, [ebp - 0x6c]
call fcn.268e3036
mov byte [ebp - 4], 6
lea eax, [ebp - 0x54]
call fcn.268e3036
push dword [ebp - 0x50]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
inc dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x64]
pop ecx
jb 0x2689042a
jmp 0x26890562
xor edi, edi
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 5
lea eax, [ebp - 0x34]
call fcn.268e3036
lea esi, [ebp - 0x1c]
call fcn.268e3f3a
cmp edi, ebx
je 0x268907fa
cmp dword [ebp - 0x14], ebx
jne 0x26890747
cmp dword [ebp + 0x18], ebx
jne 0x26890747
lea eax, [ebp - 0x10]
call fcn.268e3045
test eax, eax
jne 0x26890747
lea eax, [ebp - 0x1c]
call fcn.268e3045
test eax, eax
je 0x26890747
mov dword [ebp - 0x30], ebx
mov byte [ebp - 4], 9
lea eax, [ebp - 0x18]
call fcn.268e3147
mov ecx, eax
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
push ecx
lea eax, [ebp - 0x30]
push eax
call fcn.2688ff1f
add esp, 0xc
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 4], 0xa
push ebx
lea eax, [ebp - 0x30]
call fcn.268e3147
push eax
lea ebx, [ebp - 0x2c]
call fcn.2688ffcc
pop ecx
pop ecx
mov eax, ebx
call fcn.268e3147
push eax
call fcn.2688e90b
mov ebx, eax
xor esi, esi
cmp ebx, esi
pop ecx
je 0x2689072d
push esi
push esi
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x70]
push eax
push esi
push esi
push esi
push esi
push ebx
mov dword [ebp - 0x70], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov edi, eax
neg edi
sbb edi, edi
push ebx
inc edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x2c]
call fcn.268e34db
push 0x26911198
mov ebx, eax
call dword [sym.imp.MSVCRT.dll_wcslen]
add ebx, dword [ebp - 0x70]
add eax, ebx
lea eax, [eax + eax + 2]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
pop ecx
mov dword [ebp - 0x50], eax
je 0x2689072b
push eax
lea eax, [ebp - 0x30]
call fcn.268e3147
push eax
call fcn.26890c14
mov dword [ebp - 0x78], esi
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x50]
lea ebx, [ebp - 0x78]
call fcn.2688ffcc
push dword [ebp - 0x50]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x14
push esi
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
lea ebx, [ebp - 0x10]
call fcn.2688ffcc
and dword [ebp - 0x74], esi
pop ecx
pop ecx
mov byte [ebp - 4], 0xc
mov eax, ebx
call fcn.268e3147
mov ecx, eax
lea eax, [ebp - 0x1c]
call fcn.268e3147
push eax
push ecx
lea eax, [ebp - 0x74]
push eax
call fcn.2688ff1f
add esp, 0xc
push eax
mov eax, ebx
push eax
call fcn.268e34fd
lea esi, [ebp - 0x48]
call fcn.268e3f3a
lea esi, [ebp - 0x44]
call fcn.268e3f3a
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x74]
call fcn.268e3036
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x78]
call fcn.268e3036
mov byte [ebp - 4], 9
lea eax, [ebp - 0x2c]
call fcn.268e3036
mov byte [ebp - 4], 5
lea eax, [ebp - 0x30]
call fcn.268e3036
xor ebx, ebx
test edi, edi
jne 0x26890587
jmp 0x26890747
xor edi, edi
mov byte [ebp - 4], 9
lea eax, [ebp - 0x2c]
call fcn.268e3036
mov byte [ebp - 4], 5
lea eax, [ebp - 0x30]
call fcn.268e3036
xor ebx, ebx
cmp edi, ebx
je 0x268907fa
cmp dword [ebp - 0x14], ebx
jne 0x26890803
lea eax, [ebp - 0x1c]
call fcn.268e3045
test eax, eax
je 0x268900f9
xor eax, eax
mov esi, eax
mov byte [ebp - 4], 4
lea eax, [ebp - 0x1c]
call fcn.268e3036
mov byte [ebp - 4], 3
lea eax, [ebp - 0x44]
call fcn.268e3036
mov byte [ebp - 4], 2
lea eax, [ebp - 0x48]
call fcn.268e3036
mov byte [ebp - 4], 1
lea eax, [ebp - 0x10]
call fcn.268e3036
mov byte [ebp - 4], bl
lea eax, [ebp - 0x18]
call fcn.268e3036
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x4c]
call fcn.268e3036
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
lea eax, [ebp - 0x18]
call fcn.268e3147
push ebx
mov ecx, eax
push ebx
lea eax, [ebp - 0x10]
call fcn.268e3147
push eax
push ecx
push dword [ebp + 8]
call fcn.2688fec4
add esp, 0x14
jmp 0x26890803
mov byte [ebp - 4], 5
lea eax, [ebp - 0x34]
call fcn.268e3036
xor esi, esi
jmp 0x2689076c
cmp dword [ebp - 0x14], ebx
je 0x26890768
mov eax, dword [ebp + 8]
call fcn.268e3147
jmp 0x2689076a