Function at 0x11173330
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x111e993b
mov eax, dword fs:[0]
push eax
sub esp, 0x444
mov eax, dword [0x11279148]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
mov ecx, dword [edi]
mov ebx, edx
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x430], ecx
call fcn.110c2eb0
push eax
push 1
mov dword [ebp - 0x444], eax
call dword [sym.imp.MSVCR100.dll_calloc]
mov ecx, dword [ebp - 0x428]
mov edx, dword [ebx + 6]
push ecx
mov esi, eax
push esi
push edx
push edi
call fcn.11172e30
xor ecx, ecx
add esp, 0x18
cmp eax, ecx
jne 0x111733bc
mov eax, dword [ebp - 0x428]
push eax
push ecx
lea eax, [ecx + 6]
call fcn.11172e00
add esp, 8
jmp 0x11173613
movzx ebx, word [ebx + 2]
mov edx, dword [eax]
mov dword [ebp - 0x424], ecx
mov dword [ebp - 0x414], ecx
mov ecx, dword [edi]
shr ebx, 0xf
mov dword [ebp - 0x434], edx
mov dword [ebp - 0x42c], ebx
call fcn.110c7040
mov edi, dword [ebp - 0x430]
mov dword [ebp - 0x448], eax
mov eax, 0x55
mov ecx, 1
mov word [esi], ax
mov word [esi + 8], cx
cmp dword [ebp - 0x414], 0
jne 0x1117341c
mov edx, dword [ebp - 0x444]
add edx, 0xffffffe1
mov dword [ebp - 0x418], edx
lea edi, [esi + 0xa]
lea eax, [ebp - 0x450]
push eax
mov eax, dword [ebp - 0x424]
push 0
push 0
push 0
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x434]
lea edx, [ebp - 0x210]
push edx
push eax
push ecx
mov dword [ebp - 0x440], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x111735ea
mov edx, dword [ebp - 0x448]
push edx
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x41c]
call fcn.111bb8e0
mov eax, dword [ebp - 0x41c]
mov dword [ebp - 4], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x11173486
sub eax, edx
inc eax
lea ecx, [eax + ebx]
mov dword [ebp - 0x438], eax
cmp ecx, dword [ebp - 0x418]
jg 0x111735a5
xor bl, bl
cmp dword [ebp - 0x42c], 0
je 0x11173557
mov dword [ebp - 0x420], 0
mov eax, 0x20019
cmp byte [0x1127ad15], bl
je 0x111734d0
mov eax, 0x20119
mov ecx, dword [ebp - 0x434]
lea edx, [ebp - 0x420]
push edx
push eax
push 0
lea eax, [ebp - 0x210]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x11173536
lea edx, [ebp - 0x450]
push edx
mov edx, dword [ebp - 0x420]
push eax
push eax
push eax
lea eax, [ebp - 0x43c]
push eax
lea ecx, [ebp - 0x410]
push ecx
push 0
push edx
mov dword [ebp - 0x43c], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x11173529
mov bl, 1
mov eax, dword [ebp - 0x420]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x438]
neg bl
sbb bl, bl
and bl, 0xb
add bl, 0x20
mov byte [edi], bl
mov ebx, 1
add edi, ebx
sub dword [ebp - 0x418], ebx
jmp 0x1117355c
mov ebx, 1
mov ecx, dword [ebp - 0x41c]
push eax
push ecx
push edi
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 0x438]
mov edx, dword [ebp - 0x41c]
sub dword [ebp - 0x418], eax
add dword [ebp - 0x414], ebx
add dword [ebp - 0x424], ebx
push edx
add edi, eax
mov dword [ebp - 4], 0xffffffff
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov ebx, dword [ebp - 0x42c]
add esp, 0x10
jmp 0x11173401
mov ax, word [ebp - 0x414]
mov ecx, dword [ebp - 0x430]
mov word [esi + 6], ax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push 0
mov eax, edi
sub eax, esi
push eax
push esi
call edx
mov eax, dword [ebp - 0x41c]
push eax
mov dword [ebp - 0x414], 0
mov dword [ebp - 4], 0xffffffff
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x11173401
cmp eax, 0x103
jne 0x111735f3
xor eax, eax
mov cx, word [ebp - 0x414]
mov dword [esi + 2], eax
mov eax, dword [ebp - 0x428]
xor edx, edx
sub edi, esi
mov word [esi + 6], cx
mov word [esi + 8], dx
mov dword [eax], edi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret