Function at 0x100090d0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc7c
mov dword [ebp - 0xc7c], ecx
mov dword [ebp - 0x294], str.Forth
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0xa80], 0
mov dword [ebp - 0xa78], 0
mov dword [ebp - 0xa7c], 0
mov dword [ebp - 0xa74], 0
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xa70]
call fcn.100026f0
mov eax, dword [ebp - 0x294]
push eax
lea ecx, [ebp - 0x100]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp - 0x294]
push edx
lea eax, [ebp - 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [ebp - 0x290], 1
mov byte [ebp - 0x289], 0
push 0
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], 0
push 0x1001a374
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x20
push ecx
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
mov ecx, dword [ebp - 0xc7c]
call fcn.1000c300
push 0x78
push 0x1001a364
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov edx, dword [ebp - 0xc7c]
add edx, 0x20
push edx
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d420
movzx eax, al
test eax, eax
je 0x100095ae
mov ecx, dword [ebp - 0x1ec]
push ecx
call dword [sym.imp.GDI32.dll_GetBkMode]
push 0
push 0
movzx edx, byte [ebp - 0x289]
push edx
lea eax, [ebp - 0xa70]
push eax
mov ecx, dword [ebp - 0xc7c]
call fcn.100098c0
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
jne 0x100094a6
mov ecx, dword [ebp - 0x294]
movsx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0x284]
push eax
lea ecx, [ebp - 0xa80]
push ecx
call dword [sym.imp.USER32.dll_InflateRect]
push 0x1001a38c
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
mov dword [ebp - 0xb08], eax
mov edx, dword [ebp - 0xc7c]
add edx, 0x20
mov dword [ebp - 0xb04], edx
mov dword [ebp - 0xafc], 4
mov dword [ebp - 0xaf8], 0
mov dword [ebp - 0xb00], 4
lea eax, [ebp - 0xb00]
push eax
lea ecx, [ebp - 0xa84]
push ecx
lea edx, [ebp - 0xafc]
push edx
mov eax, dword [ebp - 0xb08]
push eax
mov ecx, dword [ebp - 0xb04]
push ecx
mov edx, dword [ebp - 0xb04]
mov eax, dword [edx + 0x100]
push eax
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov dword [ebp - 0xaf8], eax
xor ecx, ecx
cmp dword [ebp - 0xaf8], 0
sete cl
movzx edx, cl
test edx, edx
jne 0x100093eb
mov dword [ebp - 0xb3c], 1
push 0x1001a38c
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
mov dword [ebp - 0xb38], eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
mov dword [ebp - 0xb34], eax
mov dword [ebp - 0xb2c], 0
mov dword [ebp - 0xb30], 4
mov ecx, dword [ebp - 0xb30]
push ecx
lea edx, [ebp - 0xb3c]
push edx
push 4
mov eax, dword [ebp - 0xb38]
push eax
mov ecx, dword [ebp - 0xb34]
push ecx
mov edx, dword [ebp - 0xb34]
mov eax, dword [edx + 0x100]
push eax
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
mov dword [ebp - 0xb2c], eax
mov ecx, dword [ebp - 0x1ec]
push ecx
call dword [sym.imp.GDI32.dll_GetBkMode]
push 1
push 1
push 0
push 5
mov ecx, dword [ebp - 0xc7c]
call fcn.1000caf0
lea edx, [ebp - 0xa80]
push edx
push 0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xa80]
mov dword [ebp - 0x1e8], eax
push 0x1001a37c
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x20
push ecx
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
lea edx, [ebp - 0xa80]
push edx
push 0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xa80]
mov dword [ebp - 0x1e8], eax
mov ecx, dword [ebp - 0xa6c]
mov dword [ebp - 0xb60], ecx
mov edx, dword [ebp - 0xb60]
push edx
mov ecx, dword [ebp - 0xc7c]
call fcn.10008310
mov byte [ebp - 0x289], 0
push 0x1001a364
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
push eax
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
mov ecx, dword [ebp - 0x294]
movsx edx, byte [ecx]
push edx
mov eax, dword [ebp - 0x284]
push eax
lea ecx, [ebp - 0xa80]
push ecx
call dword [sym.imp.USER32.dll_InflateRect]
push 0x1001a374
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov edx, dword [ebp - 0xc7c]
add edx, 0x20
push edx
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
jmp 0x100095ae
lea eax, [ebp - 0xa80]
push eax
push 0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0xa80]
mov dword [ebp - 0x1e8], ecx
mov byte [ebp - 0x289], 0
cmp dword [ebp - 0x290], 0x17
jne 0x10009582
push 0x5a0
push 0x1001a374
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov edx, dword [ebp - 0xc7c]
add edx, 0x20
push edx
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d420
movzx eax, al
test eax, eax
je 0x10009580
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x1e8], ecx
lea edx, [ebp - 0x1e8]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov byte [ebp - 0x1e0], al
mov byte [ebp - 0x289], 1
push 0x1001a374
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
push eax
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
lea ecx, [ebp - 0x1e8]
push ecx
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x1e8]
mov dword [ebp - 0x284], edx
jmp 0x100095ae
push 0x1001a364
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
push eax
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
xor ecx, ecx
shl ecx, 4
mov edx, dword [ebp - 0xc7c]
lea eax, [edx + ecx + 0xb20]
mov ecx, dword [eax]
mov dword [ebp - 0xa94], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0xa90], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xa8c], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0xa88], edx
mov eax, dword [ebp - 0xa90]
push eax
push 0x1001a36c
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x20
push ecx
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d420
movzx edx, al
test edx, edx
je 0x1000985f
mov eax, dword [ebp - 0x1ec]
push eax
call dword [sym.imp.GDI32.dll_GetBkColor]
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d800
test eax, eax
jne 0x100096dd
lea ecx, [ebp - 0x1e8]
push ecx
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x1e8]
mov dword [ebp - 0x284], edx
push 0x1001a36c
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
push eax
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
lea ecx, [ebp - 0x100]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub eax, 2
mov dword [ebp - 4], eax
mov dword [ebp - 0x288], 0
lea edx, [ebp - 0x1e0]
push edx
lea eax, [ebp - 0x280]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 4]
push ecx
push 0x100172a0
lea edx, [ebp - 0x1e0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x100097b0
mov eax, dword [ebp - 0x288]
add eax, 1
mov dword [ebp - 0x288], eax
mov ecx, dword [ebp - 0x294]
push ecx
lea edx, [ebp - 0x100]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x294]
push eax
lea ecx, [ebp - 0x100]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edx, dword [ebp - 0xc7c]
mov eax, dword [edx + 0xb1c]
mov dword [ebp - 0xc44], eax
mov ecx, dword [ebp - 0x288]
cmp ecx, dword [ebp - 0xc44]
jb 0x100097b0
mov edx, dword [ebp - 0xc7c]
add edx, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0x1001a36c
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
push eax
mov ecx, dword [ebp - 0xc7c]
call fcn.1000d5b0
lea ecx, [ebp - 0x1e0]
push ecx
lea edx, [ebp - 0x280]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 4]
push eax
push 0x100172a0
lea ecx, [ebp - 0x1e0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x100]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub eax, 2
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc7c]
add ecx, 0xb1c
call fcn.1000f210
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomA]
movzx eax, ax
mov dword [ebp - 0x284], eax
mov ecx, 0x3d
sub ecx, dword [ebp - 0x1e8]
imul ecx, dword [ebp - 0x284]
mov dword [ebp - 0x284], ecx
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x1200
call fcn.1000f210
push 0x1001a330
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov edx, dword [ebp - 0xc7c]
add edx, 0x20
push edx
mov ecx, dword [ebp - 0xc7c]
add ecx, 0xb1c
call fcn.1000efe0
push 0x1001a338
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x128
call fcn.10001980
push eax
mov eax, dword [ebp - 0xc7c]
add eax, 0x20
push eax
mov ecx, dword [ebp - 0xc7c]
add ecx, 0x1200
call fcn.1000efe0
push 0x1d4c0
mov ecx, dword [ebp - 0xc7c]
mov edx, dword [ecx + 0x428]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x100091d3
lea eax, [ebp - 0x1e8]
push eax
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0x1e8]
mov dword [ebp - 0x284], ecx
lea ecx, [ebp - 0xa70]
call fcn.10002b60
mov esp, ebp
pop ebp
ret