Function at 0x1006ef54
Capabilities:
Query or enumerate registry key
Read .ini file

Disassembly:
mov eax, 0x10142f33
call fcn.1013e250
sub esp, 0x120
movdqa xmm0, xmmword [0x1000eac0]
lea eax, [ebp - 0xc4]
push ebx
push esi
push edi
push dword [ebp - 0x34]
xor ebx, ebx
mov esi, ecx
push eax
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x64], ebx
push eax
push ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x60], ebx
movdqu xmmword [ebp - 0xd4], xmm0
mov dword [ebp - 0x5c], ebx
call fcn.10014f3b
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x24], 0xd4e7937d
mov dword [ebp - 0x24], 0x8462751c
push 2
pop edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x24], 0x9d4346
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0xb2b74c38
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0x67101392
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0x421e0bec
mov dword [ebp - 0x24], 0x826a056e
push 3
call fcn.10013ee8
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0x1aa84cbe
push 3
mov dword [ebp - 0x24], 0xc22c9208
pop edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], ebx
jmp 0x1006f041
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xb4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1006f031
dec dword [ebp - 0x2c]
lea ecx, [ebp - 0xb4]
call fcn.100144eb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
call fcn.100144eb
push dword [ebp - 0x34]
movdqa xmm0, xmmword [0x1000ea70]
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xc4]
mov dword [ebp - 0x18], 0xdb5cabfc
push eax
mov dword [ebp - 0x1c], 0x6f93bd5d
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x20], 5
push ebx
movdqu xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
call fcn.10014f3b
push edi
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], 1
call fcn.10013ee8
mov dword [ebp - 0x2c], 0xf39281c1
mov dword [ebp - 0x28], 0x1f199e1f
mov dword [ebp - 0x20], ebx
jmp 0x1006f0e1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0xdc0223de
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x1006f0ce
mov eax, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
imul ecx, dword [ebp - 0x20], 0x4006
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x40]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x53a3
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x24], ecx
setle al
mov dword [edi + 4], eax
mov dword [ecx + 4], eax
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
cmp dword [edi + 4], eax
mov eax, dword [ebp - 0x18]
setg cl
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xb0f7
setle al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
cmp eax, dword [edi + 4]
jle 0x1006f17f
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x28], 0x5d1cc0c7
jg 0x1006f17f
mov eax, ebx
jmp 0x1006f182
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 4], eax
mov ecx, 0x4043ca31
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
sub ecx, dword [edx + 8]
add eax, ecx
je 0x1006f1a9
cmp dword [edi + 4], ebx
je 0x1006f1a9
xor edi, edi
inc edi
mov ecx, edi
jmp 0x1006f1ae
xor edi, edi
mov ecx, ebx
inc edi
xor eax, eax
cmp ecx, dword [edx + 8]
lea ecx, [ebp - 0x8c]
setne al
mov dword [ebp - 0x2c], eax
call fcn.100144eb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.100144eb
mov dword [ebp - 0x20], 7
lea ecx, [ebp - 0x58]
push edi
call fcn.10013ee8
mov dword [ebp - 0x1c], 0xc7f05f43
mov dword [ebp - 0x2c], 0xa2b8ea2c
mov dword [ebp - 0x18], 0xfaa23240
mov dword [ebp - 0x28], 0xef7e2919
mov dword [ebp - 0x18], ebx
jmp 0x1006f211
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x58]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x1006f201
mov dword [ebp - 0x18], ebx
jmp 0x1006f22c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe0], 4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1006f21b
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x58]
mov dword [eax], edi
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setge dl
add edx, dword [ebp - 0x2c]
je 0x1006f25b
mov eax, dword [ebp - 0x58]
cmp dword [eax], ebx
mov eax, edi
jne 0x1006f25d
mov eax, ebx
mov ecx, dword [ebp - 0x20]
xor edx, edx
imul ecx, eax
mov eax, 0xffff0008
sub eax, ecx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x58]
cmp dword [eax], ecx
mov eax, dword [ebp - 0x20]
setle dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x2c]
cmp edx, eax
mov eax, dword [ebp - 0x20]
setne cl
sub eax, ecx
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x18], ebx
jmp 0x1006f2e8
mov dword [ebp - 0x24], 0x82a7
mov dword [ebp - 0x28], 0xb5b0d69b
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f2e5
push ebx
push edi
push 0x717
push ebx
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffff7
jl 0x1006f2b6
lea ecx, [ebp - 0x58]
call fcn.100144eb
push 0x44
pop edi
push edi
lea eax, [ebp - 0x12c]
push ebx
push eax
call fcn.10029225
push 0x10
lea eax, [ebp - 0x74]
push ebx
push eax
call fcn.10029225
add esp, 0x18
lea ecx, [ebp - 0x80]
push 2
call fcn.10013ee8
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x24], 0x2c40a98c
mov dword [ebp - 0x1c], ebx
jmp 0x1006f33f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x1006f333
mov eax, dword [ebp - 0x80]
mov dword [eax], ebx
mov dword [ebp - 0x1c], 0x18
jmp 0x1006f377
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f363
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f374
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_EqualSid]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1d
jg 0x1006f353
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.100144eb
mov dword [ebp - 0x12c], edi
mov eax, 0x643b8a2
mov dword [ebp - 0x20], 0xb743d837
xor ecx, ecx
mov dword [ebp - 0x28], 0xfa147b80
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x28], 0xfbe58499
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x9c], 0x6088
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov edi, dword [sym.imp.USER32.dll_GetDC]
sub eax, 0x279c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sets cl
mov dword [ebp - 0x28], ecx
xor edx, edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setg dl
sub dword [ebp - 0x20], edx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f41c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
cmp dword [esi + 0x14], 8
jb 0x1006f426
mov ecx, dword [esi]
jmp 0x1006f428
mov ecx, esi
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*2]
jb 0x1006f436
mov esi, dword [esi]
push dword [ebp - 0x34]
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], ebx
push eax
push esi
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.1003b539
mov dword [ebp - 4], 6
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x28], 0x19ac196a
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x28], 0xfffffff9
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f4c5
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x7d0
push 0x1a45
push 0x1f12
push ebx
push 0x144f
push 0xe65
call esi
push eax
call edi
push eax
push 0x370
push 0xdd2
push 0x26f7
push 0x1da5
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
xor edx, edx
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setg dl
xor eax, eax
add edx, dword [ebp - 0x1c]
cmp edx, 0x4ad744d0
setl al
xor ecx, ecx
cmp eax, 0xb9a7
mov eax, dword [ebp - 0x28]
setne cl
sub eax, ecx
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setg dl
mov dword [ebp - 0x34], ebx
xor ecx, ecx
cmp eax, edx
lea eax, [ebp - 0x34]
setge cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x4c]
push eax
call fcn.1003b038
mov dword [ebp - 0x18], 0x5a136951
xor edi, edi
mov dword [ebp - 0x24], ebx
inc edi
mov dword [ebp - 0x1c], ebx
jmp 0x1006f543
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x30], 0x8ec0ae97
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1006f535
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1006f5c0
mov dword [ebp - 0x28], 0xbf0ddd9c
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x30], ebx
jne 0x1006f577
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x30], ebx
jne 0x1006f577
mov eax, dword [ebp - 0x18]
mov esi, ebx
cmp dword [ebp + eax*4 - 0x30], ebx
je 0x1006f579
mov esi, edi
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add eax, 9
add ecx, eax
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp + eax*4 - 0x30], esi
mov eax, dword [ebp - 0x2c]
imul eax, ecx
xor ecx, ecx
cmp esi, eax
sete cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x18]
jns 0x1006f550
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x12c]
push eax
push ebx
push ebx
push 0x8000400
push edi
push ebx
push ebx
push dword [ebp - 0x4c]
mov edi, 0xf90b
push ebx
push edi
push 0x156bd
call fcn.100290d8
pop ecx
pop ecx
call eax
test eax, eax
je 0x1006f6b5
push 2
lea ecx, [ebp - 0xa8]
call fcn.10013ee8
mov dword [ebp - 0x1c], ebx
jmp 0x1006f620
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa8]
mov dword [eax + ecx*4], 0xa684
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x1006f60d
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f63f
push ebx
push 0x1f2
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1006f65a
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x2582
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea ecx, [ebp - 0xa8]
call fcn.100144eb
push 0xffffffffffffffff
push dword [ebp - 0x74]
push edi
push 0x1784d
call fcn.100290d8
pop ecx
pop ecx
call eax
cmp dword [ebp + 0xc], 0
je 0x1006f694
push dword [ebp + 0xc]
push dword [ebp - 0x74]
push edi
push 0x16d1d
call fcn.100290d8
pop ecx
pop ecx
call eax
push dword [ebp - 0x74]
mov esi, 0xaeed
push edi
push esi
call fcn.100290d8
pop ecx
pop ecx
call eax
push dword [ebp - 0x70]
push edi
push esi
call fcn.100290d8
pop ecx
pop ecx
call eax
lea ecx, [ebp - 0x4c]
call fcn.1001a357
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret