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

Disassembly:
push ebp
lea ebp, [esp - 0x5d8]
sub esp, 0x658
mov eax, dword [0x30034b3c]
push esi
xor esi, esi
mov dword [ebp + 0x5d4], eax
mov eax, dword [ebp + 0x5e0]
push edi
lea edi, [eax*4 + 0x300771ac]
cmp dword [edi], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x80], 0x14
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x5c], edi
jne 0x3001739b
cmp dword [0x3007bcc4], esi
jne 0x30016fce
cmp eax, 1
je 0x3001739b
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x68]
push eax
push 0x20019
push esi
push 0x300072b0
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x30017062
mov edi, 0x104
push edi
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 0x60], esi
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
jmp 0x30017056
lea eax, [ebp - 0x64]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0x68]
call ebx
test eax, eax
jne 0x3001704b
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp + 0x5c0]
push eax
push 0
push 0
push 0x3000728c
push dword [ebp - 0x64]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x300170aa
push dword [ebp - 0x64]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x64], 0
inc dword [ebp - 0x60]
push edi
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0x60]
push dword [ebp - 0x68]
call esi
test eax, eax
je 0x30017005
mov edi, dword [ebp - 0x5c]
xor ebx, ebx
cmp dword [0x30076f8c], ebx
mov esi, 0x300771b4
je 0x3001714a
push esi
call fcn.30016a24
test eax, eax
je 0x30017144
mov ax, word [0x300771b4]
cmp ax, 0x61
jb 0x30017125
cmp ax, 0x7a
ja 0x30017125
movzx eax, ax
sub eax, 0x60
mov dword [edi], eax
jmp 0x3001737c
lea eax, [ebp + 0x5c0]
push eax
push 0xa
push 0x300771b4
call fcn.3000d4b9
test eax, eax
mov dword [ebp - 0x6c], eax
jge 0x300170e1
push eax
push 0x30001420
call fcn.30010597
push 0x30007268
call fcn.30010597
add esp, 0xc
jmp 0x3001737c
mov ax, word [0x300771b4]
cmp ax, 0x61
jb 0x300170fb
cmp ax, 0x7a
ja 0x300170fb
movzx eax, ax
sub eax, 0x60
jmp 0x3001710d
cmp ax, 0x41
jb 0x30017112
cmp ax, 0x5a
ja 0x30017112
movzx eax, ax
sub eax, 0x40
mov ecx, dword [ebp - 0x5c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
add eax, 0x40
push eax
push 0x300071f0
jmp 0x3001731c
cmp ax, 0x41
jb 0x3001737c
cmp ax, 0x5a
ja 0x3001737c
movzx eax, ax
sub eax, 0x40
jmp 0x300170a3
mov dword [0x30076f8c], ebx
cmp dword [edi], ebx
jne 0x3001730d
push 0xa
push esi
push 0x30003be8
push 0x300065c4
push 0x300065b8
call fcn.30010b2b
push esi
call fcn.30016a24
test eax, eax
je 0x300171a5
mov ax, word [0x300771b4]
cmp ax, 0x61
mov dword [0x30076f8c], 1
jb 0x30017193
cmp ax, 0x7a
jbe 0x3001709d
cmp ax, 0x41
jb 0x3001719f
cmp ax, 0x5a
jbe 0x30017139
mov dword [0x30076f8c], ebx
cmp dword [edi], ebx
jne 0x3001730d
or dword [ebp - 0x78], 0xffffffff
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x1b0]
push eax
mov dword [ebp - 0x70], 0x1a
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x74], ebx
call fcn.3001ea91
mov esi, eax
test esi, esi
mov dword [ebp - 0x6c], esi
jge 0x300171f5
push esi
push 0x30001420
call fcn.30010597
push esi
push 0x300071ac
call fcn.30010597
add esp, 0x10
jmp 0x3001737c
cmp dword [ebp + 0x5e0], 1
jne 0x30017368
xor edi, edi
cmp dword [ebp - 0x70], edi
jbe 0x300172f2
lea esi, [ebp + 0x1b8]
cmp dword [ebp - 0x60], 0
jne 0x300172f2
lea eax, [ebp - 0x7c]
push eax
lea ebx, [esi + 0xc]
mov ax, word [ebx - 0x14]
add ax, 0x40
push eax
call fcn.3001f965
test eax, eax
mov dword [ebp - 0x6c], eax
jl 0x30017325
cmp dword [ebp - 0x7c], 0
jne 0x300172e5
cmp dword [ebp - 0x78], 0xffffffff
jne 0x30017250
mov dword [ebp - 0x78], edi
cmp dword [0x3007bcc4], 0xffffffff
jne 0x3001729e
mov eax, dword [esi + 4]
cmp eax, dword [0x30006654]
mov ecx, dword [esi]
jb 0x30017279
ja 0x30017270
cmp ecx, dword [0x30006650]
jb 0x30017279
mov dword [ebp - 0x74], 1
jmp 0x3001729e
cmp dword [ebp - 0x74], 0
je 0x30017288
mov dword [ebp - 0x60], 1
jmp 0x3001729e
cmp eax, dword [0x3000665c]
ja 0x3001729a
jb 0x3001727f
cmp ecx, dword [0x30006658]
jb 0x3001727f
and dword [ebp - 0x60], 0
push 0x300071a0
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x300172e5
mov eax, dword [esi + 4]
cmp eax, dword [0x30006654]
mov ecx, dword [esi]
ja 0x3001734d
jb 0x300172cd
cmp ecx, dword [0x30006650]
jae 0x3001734d
cmp eax, dword [0x3000665c]
jb 0x300172e5
ja 0x300172df
cmp ecx, dword [0x30006658]
jbe 0x300172e5
cmp dword [ebp - 0x74], 0
je 0x3001734d
inc edi
add esi, 0x28
cmp edi, dword [ebp - 0x70]
jb 0x30017213
mov edi, dword [ebp - 0x5c]
cmp dword [edi], 0
jne 0x3001730d
mov eax, dword [ebp - 0x78]
test eax, eax
jl 0x3001730d
imul eax, eax, 0x28
mov eax, dword [ebp + eax + 0x1b0]
mov dword [edi], eax
mov eax, dword [edi]
test eax, eax
je 0x30017372
add eax, 0x40
push eax
push 0x3000716c
call fcn.300106d0
pop ecx
pop ecx
jmp 0x3001737c
push eax
push 0x30001420
call fcn.30010597
imul edi, edi, 0x28
mov ax, word [ebp + edi + 0x1b0]
add ax, 0x40
movzx eax, ax
push eax
push 0x3000713c
jmp 0x300171e8
push 0x30007118
call fcn.300105be
imul edi, edi, 0x28
mov eax, dword [ebp + edi + 0x1b0]
mov dword [0x300771b0], eax
jmp 0x300172f2
mov eax, dword [ebp + 0x1b0]
mov dword [edi], eax
jmp 0x300172f5
push 0x300070d0
call fcn.300105be
cmp dword [ebp - 0x64], 0
pop ebx
je 0x3001738c
push dword [ebp - 0x64]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x68], 0
je 0x3001739b
push dword [ebp - 0x68]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x5d4]
mov eax, dword [ebp - 0x6c]
pop edi
pop esi
call fcn.3001fd67
add ebp, 0x5d8
leave
ret 4