Function at 0x6fd93f00
Capabilities:
Get graphical window text
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x684
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 4], 0xffffffeb
mov dword [esp], esi
call sym._GetWindowLongW_8
sub esp, 8
mov dword [ebp - 0x654], eax
cmp ebx, 0x110
je 0x6fd94190
cmp ebx, 0x111
je 0x6fd93fa0
cmp ebx, 0x4e
je 0x6fd93f52
xor ebx, ebx
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
cmp eax, 0xffffff31
je 0x6fd94410
xor ebx, ebx
cmp eax, 0xffffff38
jne 0x6fd93f46
mov dword [esp], esi
call sym._GetParent_4
sub esp, 4
mov dword [esp + 0xc], 3
mov dword [esp + 8], 0
mov dword [esp + 4], 0x470
mov dword [esp], eax
call sym._PostMessageW_16
sub esp, 0x10
jmp 0x6fd93f46
movzx eax, word [ebp + 0x10]
cmp eax, 0x7d5
je 0x6fd94690
jbe 0x6fd94165
cmp eax, 0x7d7
je 0x6fd943e0
xor ebx, ebx
xor ecx, ecx
cmp eax, 0x7d9
jne 0x6fd93f46
mov dword [ebp + ecx - 0x648], ebx
add ecx, 4
cmp ecx, 0x20
jb 0x6fd93fcf
lea ebx, [ebp - 0x420]
xor eax, eax
mov ecx, 0x82
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], 0
lea edi, [ebp - 0x628]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x147
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._SendDlgItemMessageW_20
mov dword [ebp - 0x658], eax
mov eax, dword [section..bss]
sub esp, 0x14
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], edi
mov dword [esp + 4], 0x3ed
mov dword [esp], eax
call sym._LoadStringW_16
sub esp, 0x10
cmp dword [ebp - 0x658], 0xffffffff
je 0x6fd947df
mov eax, dword [ebp - 0x658]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x149
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._SendDlgItemMessageW_20
sub esp, 0x14
cmp eax, 0x103
ja 0x6fd940b4
mov eax, dword [ebp - 0x658]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], 0x148
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._SendDlgItemMessageW_20
sub esp, 0x14
mov eax, dword [ebp - 0x654]
mov dword [eax + 0x654], ebx
xor ebx, ebx
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x648]
mov dword [esp], eax
mov dword [ebp - 0x63c], edi
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x638], 0x255
mov dword [ebp - 0x634], sym._BrowseCallbackProc_16
call sym._SHBrowseForFolderW_4
sub esp, 4
mov edi, eax
test eax, eax
je 0x6fd93f46
lea ebx, [ebp - 0x218]
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._SHGetPathFromIDListW_8
sub esp, 8
test eax, eax
jne 0x6fd94a17
lea eax, [ebp - 0x64c]
mov dword [esp], eax
call sym._SHGetMalloc_4
sub esp, 4
test eax, eax
js 0x6fd9415b
mov eax, dword [ebp - 0x64c]
mov edx, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [edx + 0x14]
mov eax, dword [ebp - 0x64c]
sub esp, 8
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov ebx, 1
jmp 0x6fd93f46
cmp eax, 0x7d4
jne 0x6fd93f44
mov edx, 1
mov eax, esi
mov ebx, 1
call sym._AutoDriver
jmp 0x6fd93f46
xor eax, eax
lea edi, [ebp - 0x214]
mov ecx, 0xc
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x218], 0x34
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], 0xffffffeb
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._SetWindowLongW_12
sub esp, 0xc
mov dword [esp], esi
call sym._GetParent_4
mov ebx, eax
sub esp, 4
call sym._CenterWindow
mov dword [esp], ebx
mov dword [esp + 4], 0xfffffff0
call sym._GetWindowLongW_8
sub esp, 8
and eax, 0xfff7ffff
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0xfffffff0
call sym._SetWindowLongW_12
sub esp, 0xc
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._GetDlgItem_8
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x420], 0
sub esp, 8
mov ebx, eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x14b
mov dword [esp], eax
call sym._SendMessageW_16
lea eax, [ebp - 0x648]
sub esp, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionSetup
mov dword [esp], 0x80000002
call sym._RegOpenKeyExW_20
sub esp, 0x14
test eax, eax
je 0x6fd94365
test byte [0x6fd99020], 8
jne 0x6fd946a3
xor edi, edi
mov eax, dword [ebp - 0x648]
test eax, eax
je 0x6fd942b0
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
call sym._GetProcessHeap_0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._HeapFree_12
lea eax, [ebp - 0x218]
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._GetComboBoxInfo_8
mov eax, dword [ebp - 0x1ec]
sub esp, 8
mov dword [esp + 4], 0x20
mov dword [esp], eax
call sym._SHAutoComplete_8
sub esp, 8
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0xf1
mov dword [esp + 4], 0x7d4
mov dword [esp], esi
call sym._SendDlgItemMessageW_20
mov edx, 1
mov eax, esi
sub esp, 0x14
call sym._AutoDriver
xor edx, edx
mov eax, esi
call sym._IncludePath
mov dword [esp + 4], 0x7d5
mov dword [esp], esi
call sym._GetDlgItem_8
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._EnableWindow_8
sub esp, 8
jmp 0x6fd93f44
lea eax, [ebp - 0x420]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x628]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x648]
mov dword [esp + 8], 0
mov dword [esp + 4], str.Installation_Sources
mov dword [esp], eax
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
jne 0x6fd943b3
cmp dword [ebp - 0x628], 7
je 0x6fd946e0
test byte [0x6fd99020], 8
je 0x6fd94299
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegQueryValueEx___failed_with_error_0x_lx_n
mov dword [esp + 0x10], 0x13d
jmp 0x6fd946b7
mov dword [esp + 4], 0x7d7
mov ebx, 1
mov dword [esp], esi
call sym._IsDlgButtonChecked_8
mov edx, eax
sub esp, 8
mov eax, esi
call sym._IncludePath
jmp 0x6fd93f46
mov dword [esp + 4], 0x7d4
mov ebx, 1
mov dword [esp], esi
call sym._IsDlgButtonChecked_8
sub esp, 8
test eax, eax
je 0x6fd93f46
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._GetDlgItem_8
mov dword [ebp - 0x218], 0
sub esp, 8
mov dword [ebp - 0x65c], eax
mov dword [esp], eax
call sym._GetWindowTextLengthW_4
sub esp, 4
lea ebx, [eax + 1]
call sym._GetProcessHeap_0
lea ecx, [ebx + ebx]
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov dword [ebp - 0x660], eax
test eax, eax
je 0x6fd9485d
mov edi, dword [ebp - 0x65c]
mov eax, dword [ebp - 0x660]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._GetWindowTextW_12
sub esp, 0xc
mov dword [ebp - 0x664], eax
add eax, 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x146
mov dword [esp], edi
mov dword [ebp - 0x668], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [ebp - 0x658], eax
cmp eax, 0xffffffff
je 0x6fd94a3e
xor edi, edi
xor ebx, ebx
test eax, eax
jle 0x6fd94b8c
mov dword [ebp + 8], esi
mov esi, edi
mov edi, ebx
mov ebx, dword [ebp - 0x65c]
jmp 0x6fd94525
lea esi, [eax + esi + 1]
lea eax, [edi + 1]
cmp dword [ebp - 0x658], eax
je 0x6fd948e9
mov edi, eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x149
mov dword [esp], ebx
call sym._SendMessageW_16
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x6fd94510
mov esi, dword [ebp + 8]
test byte [0x6fd99020], 8
jne 0x6fd94b55
mov dword [ebp - 0x658], 0
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x6fd94578
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
call sym._GetProcessHeap_0
mov edx, dword [ebp - 0x660]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], edx
call sym._HeapFree_12
sub esp, 0xc
call sym._GetProcessHeap_0
mov edx, dword [ebp - 0x658]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], edx
call sym._HeapFree_12
mov edi, dword [ebp - 0x654]
sub esp, 0xc
mov ebx, dword [edi + 0x654]
call sym._GetProcessHeap_0
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov dword [esp], eax
call sym._HeapFree_12
mov dword [ebp - 0x654], edi
mov dword [edi + 0x654], 0
sub esp, 0xc
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._GetDlgItem_8
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0x7d7
mov dword [esp], esi
call sym._IsDlgButtonChecked_8
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x7d6
mov dword [esp], esi
call sym._IsDlgButtonChecked_8
sub esp, 8
mov dword [esp + 0xc], edi
mov edi, dword [ebp - 0x654]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._PrepareFoldersToScan
mov dword [esp], esi
test eax, eax
je 0x6fd94840
call sym._GetParent_4
sub esp, 4
mov dword [esp + 0xc], 0xca
mov dword [esp + 8], 0
mov dword [esp + 4], 0x472
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
jmp 0x6fd9415b
xor edx, edx
mov eax, esi
mov ebx, 1
call sym._AutoDriver
jmp 0x6fd93f46
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegOpenKeyEx___failed_with_error_0x_lx_n
mov dword [esp + 0x10], 0x131
mov dword [esp + 0xc], str.PopulateCustomPathCombo
mov dword [esp + 8], 0x6fd9ad4d
mov dword [esp + 4], 0x6fd99020
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x6fd94299
mov eax, dword [ebp - 0x420]
lea edi, [eax + 4]
call sym._GetProcessHeap_0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x6fd948a3
lea eax, [ebp - 0x420]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x648]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Installation_Sources
mov dword [esp], eax
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
jne 0x6fd949cd
mov eax, dword [ebp - 0x420]
xor ecx, ecx
xor edx, edx
and eax, 0xfffffffe
mov word [edi + eax], cx
mov eax, dword [ebp - 0x420]
and eax, 0xfffffffe
mov word [edi + eax + 2], dx
cmp word [edi], 0
je 0x6fd9429b
mov dword [ebp + 8], esi
mov esi, edi
jmp 0x6fd94797
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_wcslen]
lea esi, [esi + eax*2 + 2]
cmp word [esi], 0
je 0x6fd94855
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x143
mov dword [esp], ebx
call sym._SendMessageW_16
sub esp, 0x10
cmp edi, esi
jne 0x6fd94780
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x14e
mov dword [esp], ebx
call sym._SendMessageW_16
sub esp, 0x10
jmp 0x6fd94780
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._GetDlgItem_8
sub esp, 8
mov dword [esp], eax
call sym._GetWindowTextLengthW_4
sub esp, 4
cmp eax, 0x103
ja 0x6fd940b4
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._GetDlgItem_8
sub esp, 8
mov dword [esp + 8], 0x104
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._GetWindowTextW_12
sub esp, 0xc
jmp 0x6fd940b4
call sym._GetParent_4
sub esp, 4
mov dword [esp + 0xc], 0xcd
jmp 0x6fd94666
mov esi, dword [ebp + 8]
jmp 0x6fd9429b
test byte [0x6fd99020], 8
je 0x6fd94559
mov dword [esp + 0x14], str.HeapAlloc___failed_n
mov dword [esp + 0x10], 0x17a
mov dword [esp + 0xc], str.SaveCustomPath
mov dword [esp + 8], 0x6fd9ad4d
mov dword [esp + 4], 0x6fd99020
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x6fd94559
test byte [0x6fd99020], 8
je 0x6fd94299
mov dword [esp + 0x14], str.HeapAlloc___failed_n
mov dword [esp + 0x10], 0x145
mov dword [esp + 0xc], str.PopulateCustomPathCombo
mov dword [esp + 8], 0x6fd9ad4d
mov dword [esp + 4], 0x6fd99020
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x6fd9429b
mov eax, dword [ebp - 0x664]
mov ebx, edi
mov edi, esi
mov esi, dword [ebp + 8]
lea eax, [eax + edi + 2]
mov edi, eax
mov dword [ebp - 0x66c], eax
call sym._GetProcessHeap_0
lea ecx, [edi + edi + 2]
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov dword [ebp - 0x658], eax
test eax, eax
je 0x6fd94b6a
mov eax, dword [ebp - 0x658]
mov edx, dword [ebp - 0x668]
mov dword [ebp - 0x664], ebx
mov dword [ebp + 8], esi
lea ecx, [eax + edx*2]
mov eax, 1
xor edx, edx
mov edi, ecx
mov ebx, eax
mov esi, edx
jmp 0x6fd94975
lea edi, [edi + edx*2 + 2]
lea eax, [esi + 1]
cmp esi, dword [ebp - 0x664]
je 0x6fd94aa9
mov esi, eax
mov eax, dword [ebp - 0x65c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], 0x148
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov edx, eax
cmp eax, 0xffffffff
je 0x6fd94a60
test ebx, ebx
je 0x6fd94960
mov dword [ebp - 0x668], eax
mov eax, dword [ebp - 0x660]
xor ebx, ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
mov edx, dword [ebp - 0x668]
test eax, eax
setne bl
jmp 0x6fd94960
test byte [0x6fd99020], 8
je 0x6fd9429b
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegQueryValueEx___failed_with_error_0x_lx_n
mov dword [esp + 0x10], 0x151
mov dword [esp + 0xc], str.PopulateCustomPathCombo
mov dword [esp + 8], 0x6fd9ad4d
mov dword [esp + 4], 0x6fd99020
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x6fd9429b
mov dword [esp + 4], 0x7da
mov dword [esp], esi
call sym._GetDlgItem_8
sub esp, 8
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._SetWindowTextW_8
sub esp, 8
jmp 0x6fd94120
test byte [0x6fd99020], 8
je 0x6fd94559
mov dword [esp + 0x14], str.ComboBox_GetCount___failed_n
mov dword [esp + 0x10], 0x183
jmp 0x6fd9487a
mov esi, dword [ebp + 8]
test byte [0x6fd99020], 8
je 0x6fd94563
mov dword [esp + 0x14], str.ComboBox_GetLBText___failed_n
mov dword [esp + 0x10], 0x1a1
mov dword [esp + 0xc], str.SaveCustomPath
mov dword [esp + 8], 0x6fd9ad4d
mov dword [esp + 4], 0x6fd99020
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x6fd94563
xor edx, edx
mov esi, dword [ebp + 8]
mov word [edi], dx
test ebx, ebx
je 0x6fd94563
mov eax, dword [ebp - 0x660]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x658]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_wcscpy]
lea eax, [ebp - 0x218]
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionSetup
mov dword [esp], 0x80000002
call sym._RegOpenKeyExW_20
sub esp, 0x14
test eax, eax
je 0x6fd94bde
test byte [0x6fd99020], 8
je 0x6fd94563
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegOpenKeyEx___failed_with_error_0x_lx_n
mov dword [esp + 0x10], 0x1bd
mov dword [esp + 0xc], str.SaveCustomPath
mov dword [esp + 8], 0x6fd9ad4d
mov dword [esp + 4], 0x6fd99020
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x6fd94563
mov dword [esp + 0x14], str.ComboBox_GetLBTextLen___failed_n
mov dword [esp + 0x10], 0x18b
jmp 0x6fd9487a
test byte [0x6fd99020], 8
je 0x6fd94559
mov dword [esp + 0x14], str.HeapAlloc___failed_n
mov dword [esp + 0x10], 0x196
jmp 0x6fd9487a
mov eax, dword [ebp - 0x664]
lea ebx, [eax + 3]
call sym._GetProcessHeap_0
add ebx, ebx
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov dword [ebp - 0x658], eax
test eax, eax
je 0x6fd94b6a
mov eax, dword [ebp - 0x664]
add eax, 2
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x658]
mov word [eax + ebx - 4], 0
jmp 0x6fd94ab9
mov eax, dword [ebp - 0x66c]
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
add eax, eax
mov dword [esp + 4], str.Installation_Sources
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x658]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x218]
mov dword [esp], eax
call sym._RegSetValueExW_24
sub esp, 0x18
test eax, eax
je 0x6fd94563
test byte [0x6fd99020], 8
je 0x6fd94563
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegSetValueEx___failed_with_error_0x_lx_n
mov dword [esp + 0x10], 0x1c9
jmp 0x6fd94b2c