Function at 0x10017a4
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 0xc]
dec eax
push esi
push edi
je 0x1001794
dec eax
je 0x1001778
sub eax, 3
je 0x1001761
sub eax, 0x10e
jne 0x1001818
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDC]
and dword [ebp - 4], 0
cmp word [0x10041b8], 0
mov dword [ebp - 8], eax
jbe 0x10016c7
push ebx
movzx esi, word [ebp - 4]
shl esi, 2
mov edi, dword [esi + 0x1004840]
test edi, edi
jne 0x100152b
xor ecx, ecx
inc ecx
jmp 0x100152d
mov ecx, edi
mov eax, dword [esi + 0x1004500]
lea eax, [eax + eax*4]
shl eax, 9
cdq
idiv ecx
mov ecx, eax
movzx eax, word [0x1004820]
add ecx, eax
test edi, edi
jne 0x1001550
xor ebx, ebx
inc ebx
jmp 0x1001552
mov ebx, edi
mov eax, 0xa00
sub eax, edi
cdq
mov edi, 0x280
idiv edi
push 0x42
inc eax
push eax
push eax
mov eax, dword [esi + 0x10041c0]
lea eax, [eax + eax*4]
shl eax, 9
cdq
idiv ebx
movzx edx, word [0x10044e4]
add eax, edx
push eax
push ecx
push dword [ebp - 8]
call dword [sym.imp.GDI32.dll_PatBlt]
mov ax, word [0x1004144]
mov cx, word [0x1004150]
cmp ax, cx
jae 0x100159f
inc ax
jmp 0x10015a3
jbe 0x10015a9
dec ax
mov word [0x1004144], ax
movzx ecx, ax
mov eax, dword [esi + 0x1004840]
sub eax, ecx
jns 0x10015b8
xor eax, eax
test eax, eax
mov dword [esi + 0x1004840], eax
jne 0x10015ca
push dword [ebp - 4]
call fcn.0100136b
mov ebx, dword [esi + 0x1004840]
test ebx, ebx
jne 0x10015d9
xor ecx, ecx
inc ecx
jmp 0x10015db
mov ecx, ebx
mov eax, dword [esi + 0x1004500]
lea eax, [eax + eax*4]
shl eax, 9
cdq
idiv ecx
movzx edi, word [0x1004820]
mov ecx, eax
add ecx, edi
test ebx, ebx
jne 0x10015fe
xor edi, edi
inc edi
jmp 0x1001600
mov edi, ebx
mov eax, dword [esi + 0x10041c0]
lea eax, [eax + eax*4]
shl eax, 9
cdq
idiv edi
mov edi, eax
movzx eax, word [0x10044e4]
add edi, eax
test ecx, ecx
jl 0x1001638
test edi, edi
jl 0x1001638
movzx eax, word [0x10041b4]
cmp ecx, eax
jg 0x1001638
movzx eax, word [0x1004822]
cmp edi, eax
jle 0x1001690
push dword [ebp - 4]
call fcn.0100136b
mov ebx, dword [esi + 0x1004840]
test ebx, ebx
jne 0x100164f
xor ecx, ecx
inc ecx
jmp 0x1001651
mov ecx, ebx
mov eax, dword [esi + 0x1004500]
lea eax, [eax + eax*4]
shl eax, 9
cdq
idiv ecx
mov ecx, eax
movzx eax, word [0x1004820]
add ecx, eax
test ebx, ebx
jne 0x1001674
xor edi, edi
inc edi
jmp 0x1001676
mov edi, ebx
mov esi, dword [esi + 0x10041c0]
lea eax, [esi + esi*4]
shl eax, 9
cdq
idiv edi
mov edi, eax
movzx eax, word [0x10044e4]
add edi, eax
mov eax, 0xa00
sub eax, ebx
cdq
mov esi, 0x280
idiv esi
push 0xff0062
inc eax
push eax
push eax
push edi
push ecx
push dword [ebp - 8]
call dword [sym.imp.GDI32.dll_PatBlt]
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [0x10041b8]
jb 0x1001515
pop ebx
push dword [ebp - 8]
mov esi, dword [ebp + 8]
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
push 1
mov eax, 0x113
push eax
push eax
push esi
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x1001713
add word [0x1004080], 0xa
movzx eax, word [0x1004080]
push 0
push eax
push 1
push esi
call dword [sym.imp.USER32.dll_SetTimer]
and dword [0x1004164], 0
jmp 0x1001818
inc dword [0x1004164]
cmp dword [0x1004164], 0x64
jl 0x1001818
and dword [0x1004164], 0
add word [0x1004080], 0xff9c
cmp word [0x1004080], 0x32
jge 0x1001749
mov word [0x1004080], 0x32
movzx eax, word [0x1004080]
push 0
push eax
push 1
push esi
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x1001818
mov eax, dword [ebp + 0x14]
mov word [0x10041b4], ax
shr eax, 0x10
mov word [0x1004822], ax
jmp 0x1001818
mov eax, dword [0x100415c]
test eax, eax
je 0x1001818
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x1001818
call fcn.010013e3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 0x14]
mov si, word [0x10041b8]
mov dword [0x10044e0], eax
mov ax, word [ecx + 0x14]
mov word [0x10041b4], ax
mov cx, word [ecx + 0x10]
mov word [0x1004822], cx
shr ax, 1
shr cx, 1
xor edi, edi
test si, si
mov word [0x1004820], ax
mov word [0x10044e4], cx
jbe 0x10017e9
push edi
call fcn.0100136b
inc edi
cmp di, si
jb 0x10017dd
xor eax, eax
mov ax, word [0x10041b6]
inc ax
push 0
lea eax, [eax + eax*4]
shl eax, 1
mov word [0x1004150], ax
movzx eax, word [0x1004080]
push eax
push 1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [0x100415c], eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.01002045
pop edi
pop esi
leave
ret 0x10