Function at 0x1004170d
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x10088f58
call fcn.100877a0
sub esp, 0x7c
push esi
mov esi, ecx
cmp dword [esi], 0
je 0x10041bc5
push ebx
push edi
push dword [esi]
xor ebx, ebx
push ebx
push dword [esi + 4]
call fcn.10025321
push dword [esi + 4]
call fcn.100701f2
mov dword [ebp - 0x14], 1
add esp, 0x10
mov dword [ebp - 0x2c], 0x8bc8977b
mov dword [ebp - 0x44], 0xfffffffd
mov dword [ebp - 0x14], ebx
jmp 0x10041768
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1c], 0x4ec2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1004175a
push 2
mov dword [ebp - 0x14], ebx
pop edi
jmp 0x10041784
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x4c], 0x8f381c4e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10041776
mov dword [ebp - 0x14], ebx
jmp 0x100419c3
mov dword [ebp - 0x20], 0xc9ebf495
lea ecx, [ebp - 0x58]
push 1
call fcn.10017f97
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x24], 0x7a140552
mov dword [ebp - 0x30], 0x925b974d
mov dword [ebp - 0x30], 0x736fa7ab
push 1
call fcn.10017f97
mov dword [ebp - 0x18], ebx
jmp 0x100417d9
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x58]
mov dword [eax + ecx*4], 0x9a56718e
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x100417c9
mov dword [ebp - 0x18], ebx
jmp 0x100417f4
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x100417e4
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x1c], ebx
je 0x1004181a
mov eax, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x1c]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setl dl
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1c]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x1c], ebx
jne 0x10041839
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x1c], ebx
jne 0x10041839
mov edx, ebx
jmp 0x1004183c
xor edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, dword [ebp - 0x1c]
jne 0x10041854
cmp dword [ebp - 0x14], ebx
jne 0x10041854
mov edx, ebx
jmp 0x10041857
xor edx, edx
inc edx
mov eax, dword [ebp - 0x58]
xor ecx, ecx
cmp edx, dword [eax]
setle cl
add ecx, edi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ebx
jmp 0x100419a3
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x34], 8
mov dword [ebp - 0x24], ebx
jmp 0x10041997
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x18], ebx
jmp 0x100418a1
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10041897
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x10041991
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x38], 0x8a746c20
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
inc eax
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
xor ebx, ebx
inc eax
cmp eax, 6
setl bl
xor edx, edx
mov dword [ebp - 0x78], ebx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
imul ecx, dword [eax]
cmp ecx, ebx
setne dl
xor eax, eax
cmp edx, 0xfffffff6
setg al
cmp eax, 1
mov eax, dword [ebp - 0x18]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
sub ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
imul ecx, dword [ebp - 0x34]
cmp ecx, 0x5d487c75
mov ecx, 0xa909f00f
setge al
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x38]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
add edx, 0x747eab1a
cmp edx, eax
mov eax, dword [ebp - 0x3c]
setle cl
cmp ecx, 4
sbb ecx, ecx
xor ebx, ebx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x64]
setl bl
xor edx, edx
mov dword [eax], ebx
mov eax, dword [ebp - 0x28]
cmp ebx, eax
mov eax, dword [ebp - 0x48]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x48], ecx
dec dword [ebp - 0x18]
jns 0x100418b3
xor ebx, ebx
dec dword [ebp - 0x40]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x10041884
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1004186e
lea ecx, [ebp - 0x64]
call fcn.10018895
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.10018895
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x10041791
jne 0x100419e6
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, 1
setl cl
cmp ecx, dword [ebp - 0x4c]
jne 0x10041a23
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041a90
push 0x2389
push 0x11c3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_LineTo]
jmp 0x10041a90
mov dword [ebp - 0x20], 0x8cb2cc2
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setl cl
xor edx, edx
cmp eax, ecx
setl dl
xor ecx, ecx
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
cmp edx, eax
setl cl
xor eax, eax
add ecx, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x44]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x44]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x48], ecx
mov dword [esi + 4], ebx
mov dword [ebp - 0x20], 0x6af1124f
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x44], 0xfb37b048
mov dword [ebp - 0x20], 0xcc58a012
mov dword [ebp - 0x20], 0x3d783989
mov dword [ebp - 0x2c], 0x2fbb6bc3
mov dword [ebp - 0x44], 0x8d383303
push 3
pop ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x18], 0x4e665969
mov dword [ebp - 0x24], ebx
jmp 0x10041aea
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x88], 1
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10041ad9
mov dword [ebp - 0x20], 0xfffffff7
jmp 0x10041b48
mov dword [ebp - 0x44], 0xffffffff
lea ecx, [ebp - 0x70]
push edi
call fcn.10017f97
mov dword [ebp - 0x44], 9
mov dword [ebp - 0x24], ebx
jmp 0x10041b24
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x10041b14
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041b3a
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
inc dword [ebp - 0x44]
lea ecx, [ebp - 0x70]
call fcn.10018895
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xa
jg 0x10041af8
mov dword [ebp - 0x24], ebx
jmp 0x10041bbc
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x2c], ebx
jl 0x10041b7b
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041b76
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x11e7
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
dec dword [ebp - 0x2c]
jns 0x10041b5b
mov dword [ebp - 0x18], ebx
jmp 0x10041b9b
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041b90
push ebx
call dword [sym.imp.GDI32.dll_CreateBrushIndirect]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jle 0x10041b80
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ebx
jle 0x10041b93
jmp 0x10041bb4
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x88], ebx
jne 0x10041bb9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jle 0x10041ba5
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x10041b53
pop edi
mov dword [esi], ebx
pop ebx
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret