Function at 0x4161c1
Capabilities:
Delete registry value
Persist via run registry key
Query or enumerate registry value

Disassembly:
mov eax, 0x4834f2
call fcn.0046746c
sub esp, 0x444
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
push 1
lea eax, [ebp - 0x1d]
pop edi
lea ecx, [ebp - 0x54]
push edi
push eax
push esi
call fcn.00402e7f
movsx eax, byte [esi]
add eax, 0xffffffbf
xor ebx, ebx
cmp eax, 0x39
mov dword [ebp - 4], ebx
ja case.0x4161fc.71
jmp dword [eax*4 + 0x416f5b]
push str.auto
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x41623d
mov ecx, dword [ebp + 8]
push ebx
push ebx
push str._auto
mov eax, dword [ecx + 0x164]
lea esi, [ecx + 0x164]
mov byte [eax + 2], 1
call fcn.0042ddb6
mov eax, dword [esi]
mov byte [eax + 2], 1
jmp 0x416f24
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], ebx
je 0x416253
push eax
call fcn.0041548f
pop ecx
xor edi, edi
jmp 0x4163be
mov ecx, dword [ebp + 8]
call fcn.0042c8df
test eax, eax
je 0x4162bf
mov eax, str._This_setup_was_created_with_an_EVALUATION_VERSION_of__s__which_does_not_support_extraction_of_the_internal_MSI_file._The_full_version_of_InstallShield_supports_this_functionality.
mov dword [ebp - 0xf4], 0x48b6a8
mov ecx, eax
mov dword [ebp - 0xd4], 0x48b6a0
test ecx, ecx
jne 0x416283
mov eax, 0x4aa140
lea ecx, [ebp - 0x24]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xf4]
call fcn.00404d89
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 1
push eax
push 0x86d
push dword [ebp + 8]
call fcn.00415d0d
add esp, 0xc
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], bl
call fcn.00402438
jmp 0x41624c
mov ecx, dword [ebp + 8]
push ebx
push ebx
push 0x4a10b8
mov dword [ecx + 0x14], edi
call fcn.0042ddb6
push esi
call dword [sym.imp.USER32.dll_CharNextA]
lea ecx, [ebp - 0x26]
push edi
push ecx
push eax
lea ecx, [ebp - 0x20c]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push ebx
push eax
push 0xe
mov byte [ebp - 4], 2
call fcn.0040a3c9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x20c]
jmp 0x416c56
push esi
call dword [sym.imp.USER32.dll_CharNextA]
lea ecx, [ebp - 0x17]
push edi
push ecx
push eax
lea ecx, [ebp - 0x2ac]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x2ac]
push ebx
push eax
push 0xc
mov byte [ebp - 4], 3
call fcn.0040a3c9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x2ac]
jmp 0x416c56
mov esi, dword [ebp + 8]
push edi
mov ecx, esi
call fcn.0042aa43
jmp 0x416950
mov eax, str.debuglog
mov dword [ebp - 0x144], 0x48b6a8
mov ecx, eax
mov dword [ebp - 0x124], 0x48b6a0
test ecx, ecx
jne 0x41637d
mov eax, 0x4aa140
lea ecx, [ebp - 0x1f]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x144]
call fcn.00404d89
lea eax, [ebp - 0x144]
push ebx
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 4
call fcn.00402e4a
neg eax
sbb al, al
lea ecx, [ebp - 0x144]
inc al
mov byte [ebp - 4], bl
mov byte [ebp + 0xf], al
call fcn.00402438
cmp byte [ebp + 0xf], bl
je 0x4163d1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.00402438
mov eax, edi
jmp 0x416f4c
push edi
push esi
call dword [sym.imp.USER32.dll_CharNextA]
push eax
push 0x4a10a0
jmp 0x416f1c
mov eax, 0x4a1090
mov edi, 0x48b6a0
mov ecx, eax
mov dword [ebp - 0xa4], 0x48b6a8
test ecx, ecx
mov dword [ebp - 0x84], edi
jne 0x416409
mov eax, 0x4aa140
lea ecx, [ebp - 0x19]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xa4]
call fcn.00404d89
lea eax, [ebp - 0xa4]
push ebx
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 5
call fcn.00402e4a
test eax, eax
jne 0x416482
mov eax, 0x4a108c
mov dword [ebp - 0x7c], 0x48b6a8
mov ecx, eax
mov dword [ebp - 0x5c], edi
test ecx, ecx
jne 0x41644c
mov eax, 0x4aa140
lea ecx, [ebp - 0x23]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x7c]
call fcn.00404d89
lea eax, [ebp - 0x7c]
lea ecx, [ebp - 0x54]
push eax
mov byte [ebp - 4], 6
call fcn.004172fa
lea ecx, [ebp - 0x7c]
mov byte [ebp + 0xf], al
mov byte [ebp - 4], 5
call fcn.00402438
cmp byte [ebp + 0xf], bl
mov byte [ebp + 0xf], 1
jne 0x416485
mov byte [ebp + 0xf], bl
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], bl
call fcn.00402438
cmp byte [ebp + 0xf], bl
je 0x4164c9
push 0xffffffffffffffff
lea eax, [ebp - 0x428]
push 5
push eax
lea ecx, [ebp - 0x54]
call fcn.00403fb0
mov ecx, dword [ebp + 8]
push ebx
push eax
push 0x10
mov byte [ebp - 4], 7
call fcn.0040a3c9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x428]
jmp 0x416c56
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
push str._IS_E_
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4164f4
mov edi, 0x4abd78
push esi
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x41658f
mov dword [ebp + 0xc], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 8
call fcn.00417058
test eax, eax
jne 0x416670
push 0x40
lea edi, [ebp - 0x3ff]
pop ecx
mov byte [ebp - 0x400], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x104
push eax
lea eax, [ebp - 0x400]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
push esi
mov dword [ebp - 0x14], ebx
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x400]
mov edi, 0x4abd78
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp dword [ebp + 0xc], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x416582
push dword [ebp + 0xc]
call esi
mov dword [ebp + 0xc], ebx
cmp dword [ebp + 0xc], ebx
mov byte [ebp - 4], bl
je 0x41658f
push dword [ebp + 0xc]
call esi
push edi
call fcn.004359e2
mov esi, dword [ebp + 8]
mov ecx, 0x4ab520
mov dword [esi + 0x44], 1
call fcn.00401a14
push eax
push edi
push 0x4ab548
call fcn.00435afb
lea eax, [ebp - 0x1b]
push ebx
push eax
push 0x4aa140
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xcc], 0x48b660
mov dword [ebp - 0xac], 0x48b658
call fcn.004011a9
lea eax, [ebp - 0x21]
push 1
push eax
lea ecx, [ebp - 0x2d4]
push dword [0x48b6dc]
mov byte [ebp - 4], 9
call fcn.00401884
lea eax, [ebp - 0x15]
push 1
push eax
lea ecx, [ebp - 0x194]
push dword [0x48b6d4]
mov byte [ebp - 4], 0xa
call fcn.00401884
lea eax, [ebp - 0xcc]
mov ecx, esi
push eax
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x194]
push eax
push 5
mov byte [ebp - 4], 0xb
call fcn.0040a4e9
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 0xa
call fcn.00401093
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 9
call fcn.00401093
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], bl
call fcn.00401093
push 2
mov ecx, esi
call fcn.0042aa65
jmp 0x416f24
push dword [ebp + 8]
call fcn.0041548f
cmp dword [ebp + 0xc], ebx
pop ecx
je 0x416f3e
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp + 0xc], ebx
jmp 0x416f3e
mov edi, dword [sym.imp.USER32.dll_CharNextA]
push esi
call edi
movsx eax, byte [eax]
sub eax, 0x31
je 0x4166e8
dec eax
je 0x4166d6
dec eax
je 0x4166b9
push ebx
push esi
call edi
push eax
push 0x4a1054
jmp 0x416f1c
mov ebx, dword [ebp + 8]
push esi
mov byte [ebx + 0x160], 1
call edi
push eax
call edi
push eax
mov ecx, ebx
call fcn.0042a93b
jmp 0x416f24
push ebx
push esi
call edi
push eax
call edi
push eax
push 0x4a1050
jmp 0x416f1c
push ebx
push esi
call edi
push eax
call edi
mov esi, dword [ebp + 8]
push eax
push 0x4a0e24
mov ecx, esi
call fcn.0042ddb6
mov dword [esi + 0x48], 1
jmp 0x416f24
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push str.hide_progress
push esi
call edi
mov ebx, dword [ebp + 8]
test eax, eax
jne 0x416727
mov byte [ebx + 0x159], 1
push str.hide_splash
push esi
call edi
test eax, eax
jne 0x416f24
mov byte [ebx + 0x15a], 1
jmp 0x416f24
mov eax, str.instance
mov dword [ebp - 0x11c], 0x48b6a8
mov ecx, eax
mov dword [ebp - 0xfc], 0x48b6a0
test ecx, ecx
jne 0x416767
mov eax, 0x4aa140
lea ecx, [ebp - 0x25]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x11c]
call fcn.00404d89
lea eax, [ebp - 0x11c]
push ebx
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xc
call fcn.00402e4a
neg eax
sbb al, al
lea ecx, [ebp - 0x11c]
inc al
mov byte [ebp - 4], bl
mov byte [ebp + 0xf], al
call fcn.00402438
cmp byte [ebp + 0xf], bl
je 0x416f24
mov eax, dword [ebp + 8]
push 0xfffffffffffffffd
pop edi
lea ecx, [ebp - 0x54]
lea esi, [eax + 0x15c]
push 0xffffffffffffffff
lea eax, [ebp - 0x16c]
push 9
push eax
mov dword [esi], edi
call fcn.00403fb0
lea eax, [ebp - 0x16c]
lea ecx, [ebp - 0x168]
neg eax
sbb eax, eax
push str.default
and eax, ecx
mov byte [ebp - 4], 0xd
push eax
call fcn.0040c4fa
pop ecx
test al, al
pop ecx
je 0x4167f9
or dword [esi], 0xffffffff
jmp 0x41680d
push 0xa
push esi
lea ecx, [ebp - 0x16c]
call fcn.00417295
test al, al
jne 0x41680d
mov dword [esi], edi
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x16c]
jmp 0x416c56
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], ebx
jne case.0x4161fc.71
push esi
mov dword [eax + 0x14], 3
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
lea eax, [ebp - 0x16]
push edi
push eax
push esi
lea ecx, [ebp - 0x25c]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x25c]
push ebx
push eax
push 8
mov byte [ebp - 4], 0xe
call fcn.0040a3c9
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], bl
call fcn.00402438
push ebx
push esi
push 0x4a100c
jmp 0x416f1c
mov edi, dword [ebp + 8]
lea eax, [ebp + 0xc]
push edi
push eax
push esi
mov dword [ebp + 0xc], ebx
call dword [sym.imp.USER32.dll_CharNextA]
push eax
call fcn.00417352
add esp, 0xc
test eax, eax
je 0x4168aa
mov eax, dword [edi + 0x164]
mov cx, word [ebp + 0xc]
mov word [eax + 0x4a], cx
jmp 0x416f24
push edi
jmp 0x416f38
push esi
mov esi, dword [sym.imp.USER32.dll_CharNextA]
call esi
movsx ecx, byte [eax]
sub ecx, 0x31
je 0x4168dd
dec ecx
push ebx
push eax
je 0x4168d0
push 0x4a1008
jmp 0x416f1c
call esi
push eax
push 0x4a1004
jmp 0x416f1c
push ebx
push eax
call esi
push eax
push 0x4a1000
jmp 0x416f1c
push str.noscript_uninst
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
jne 0x416909
push ebx
push ebx
push str._noscript_uninst
jmp 0x416f1c
push esi
call dword [sym.imp.USER32.dll_CharNextA]
lea ecx, [ebp - 0x18]
push edi
push ecx
push eax
lea ecx, [ebp - 0x2fc]
call fcn.00402e7f
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x2fc]
push ebx
push eax
push 5
mov ecx, esi
mov byte [ebp - 4], 0xf
call fcn.0040a3c9
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], bl
call fcn.00402438
push 2
mov ecx, esi
call fcn.0042aa65
mov dword [esi + 0x44], edi
jmp 0x416f24
push esi
call dword [sym.imp.USER32.dll_CharNextA]
push eax
push 0x4aa1e0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x416f24
mov eax, dword [ebp + 8]
mov byte [eax + 0x161], 1
jmp 0x416f24
push str.removeonly
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x41699b
push ebx
push ebx
push str._removeonly
jmp 0x416f1c
push str.runas
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
je 0x416f24
push str.runfromtemp
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
je 0x416f24
push 6
push str.reboot
push esi
call fcn.00468490
add esp, 0xc
test eax, eax
je 0x416f24
push 0x4a0f90
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
je 0x416f24
push ebx
push ebx
push 0x4a0f8c
jmp 0x416f1c
push 0x4a0f88
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
jne 0x416a1b
push ebx
push ebx
push str._SMS
jmp 0x416f1c
push str.show_eval_msg
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
jne 0x416a3e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov byte [eax + 0x17], 1
jmp 0x416f24
push str.show_beta_msg
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
jne 0x416a61
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov byte [eax + 0x18], 1
jmp 0x416f24
push str.show_reboot_msg
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
jne 0x416a84
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov byte [eax + 0x1c], 1
jmp 0x416f24
mov ecx, dword [ebp + 8]
push ebx
push ebx
push 0x4a0f4c
mov eax, dword [ecx + 0x164]
lea esi, [ecx + 0x164]
mov byte [eax + 1], 1
call fcn.0042ddb6
mov eax, dword [esi]
mov byte [eax + 1], 1
jmp 0x416f24
mov edi, str.tempdisk1folder
push edi
call fcn.00467494
pop ecx
push eax
push ebx
push edi
lea ecx, [ebp - 0x50]
call fcn.00404eb8
cmp eax, ebx
je 0x416f24
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
push str._IS_T_
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x416af4
mov ecx, dword [ebp + 8]
push esi
call fcn.0042a8f0
jmp 0x416b97
mov dword [ebp + 0xc], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x10
call fcn.00417058
test eax, eax
jne 0x416bb0
push 0x40
lea edi, [ebp - 0x3ff]
pop ecx
mov byte [ebp - 0x400], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0x104
push eax
lea eax, [ebp - 0x400]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push esi
mov dword [ebp - 0x10], ebx
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x400]
push eax
call fcn.004359e2
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x400]
push eax
call fcn.0042a8f0
push esi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp dword [ebp + 0xc], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x416b8a
push dword [ebp + 0xc]
call esi
mov dword [ebp + 0xc], ebx
cmp dword [ebp + 0xc], ebx
mov byte [ebp - 4], bl
je 0x416b97
push dword [ebp + 0xc]
call esi
mov ecx, dword [ebp + 8]
push 3
call fcn.0042aa65
mov eax, dword [ebp + 8]
mov dword [eax + 0x44], 1
jmp 0x416f24
push dword [ebp + 8]
call fcn.0041548f
cmp dword [ebp + 0xc], ebx
pop ecx
je 0x416f3e
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp + 0xc], ebx
jmp 0x416f3e
mov edi, dword [sym.imp.USER32.dll_CharNextA]
push esi
call edi
mov al, byte [eax]
cmp al, 0x41
je 0x416c99
cmp al, 0x4d
je 0x416c60
cmp al, 0x57
je 0x416c1f
cmp al, 0x61
je 0x416c99
cmp al, 0x6d
je 0x416c60
cmp al, 0x77
je 0x416c1f
push str.uninst
push esi
call fcn.00468d40
pop ecx
test eax, eax
pop ecx
jne 0x416f24
push ebx
push ebx
push str._uninst
jmp 0x416f1c
push esi
call edi
push eax
call edi
lea ecx, [ebp - 0x1a]
push 1
push ecx
push eax
lea ecx, [ebp - 0x1bc]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1bc]
push ebx
push eax
push 0xa
mov byte [ebp - 4], 0x12
call fcn.0040a3c9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x1bc]
call fcn.00402438
jmp 0x416f24
push esi
call edi
push eax
call edi
lea ecx, [ebp - 0x1c]
push 1
push ecx
push eax
lea ecx, [ebp - 0x1e4]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1e4]
push ebx
push eax
push 0xb
mov byte [ebp - 4], 0x13
call fcn.0040a3c9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x1e4]
jmp 0x416c56
push esi
call edi
push eax
call edi
lea ecx, [ebp - 0x1e]
push 1
push ecx
push eax
lea ecx, [ebp - 0x234]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x234]
push ebx
push eax
push 9
mov byte [ebp - 4], 0x11
call fcn.0040a3c9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x234]
jmp 0x416c56
mov dword [ebp - 0x10], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersionRun
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x14
call fcn.00417058
test eax, eax
jne 0x416d13
push str.ISSetup
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp dword [ebp - 0x10], ebx
je 0x416d13
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
push 7
push str.verbose
push esi
call fcn.00468490
add esp, 0xc
test eax, eax
je 0x416eb6
push esi
call dword [sym.imp.USER32.dll_CharNextA]
push str._IS_V_
push eax
mov dword [ebp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x416dca
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 7
push eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 4]
call fcn.0040ae94
mov esi, eax
cmp dword [esi + 0xc], ebx
je 0x416d7f
push 0x4a02b8
call fcn.00467494
pop ecx
push eax
push 0x4a02b8
lea ecx, [esi + 4]
call fcn.004102b7
lea eax, [ebp - 0x20]
push edi
push eax
lea ecx, [ebp - 0x450]
push dword [ebp + 0xc]
call fcn.00402e7f
push dword [0x48b6b0]
mov ecx, eax
add eax, 4
mov byte [ebp - 4], 0x15
neg ecx
sbb ecx, ecx
push ebx
and ecx, eax
push ecx
lea ecx, [esi + 4]
call fcn.0040b07a
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 0x14
call fcn.00402438
mov esi, dword [ebp + 0xc]
push edi
push esi
jmp 0x416e8c
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x10]
call fcn.00417058
test eax, eax
jne 0x416e93
push 0x40
lea edi, [ebp - 0x3ff]
pop ecx
mov byte [ebp - 0x400], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0x104
push eax
lea eax, [ebp - 0x400]
push eax
lea eax, [ebp - 0x2c]
push eax
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x2c], ebx
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp + 0xc]
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp dword [ebp - 0x10], ebx
je 0x416e40
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
lea eax, [ebp - 0x22]
push 1
push eax
lea eax, [ebp - 0x400]
push eax
lea ecx, [ebp - 0x284]
call fcn.00402e7f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x284]
push ebx
push eax
push 7
mov byte [ebp - 4], 0x16
call fcn.0040a3c9
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 0x14
call fcn.00402438
lea eax, [ebp - 0x400]
push 1
lea esi, [ebp - 0x400]
push eax
push 0x4a080c
jmp 0x416ec0
push dword [ebp + 8]
call fcn.0041548f
cmp dword [ebp - 0x10], ebx
pop ecx
je 0x416f3e
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
jmp 0x416f3e
add esi, 7
push edi
push esi
push str._verbose
mov ecx, dword [ebp + 8]
call fcn.0042ddb6
cmp esi, ebx
je 0x416edf
push esi
push 0x4aa244
mov byte [0x4ab274], 1
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x10], ebx
je 0x416f24
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
jmp 0x416f24
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edi
jmp 0x416f24
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], ebx
je 0x416f05
push eax
jmp 0x416f38
mov dword [eax + 0x14], 4
jmp 0x416f24
push ebx
push esi
call dword [sym.imp.USER32.dll_CharNextA]
push eax
push 0x4a0ebc
mov ecx, dword [ebp + 8]
call fcn.0042ddb6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.00402438
push 1
pop eax
jmp 0x416f4c
push dword [ebp + 8]
call fcn.0041548f
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.00402438
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret