Function at 0x4108f0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x638
mov eax, dword [0x4c97a0]
xor eax, esp
mov dword [esp + 0x634], eax
push ebx
push ebp
push edi
xor edi, edi
push 0x40e
lea ecx, [esp + 0x236]
xor eax, eax
push edi
mov ebx, 1
push ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
mov word [esp + 0x23c], ax
call fcn.0048dc10
push 0x206
lea eax, [esp + 0x3a]
xor edx, edx
push edi
push eax
mov word [esp + 0x40], dx
call fcn.0048dc10
mov ebp, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
add esp, 0x18
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x14]
push eax
push str.SavePath
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x208
call ebp
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x4109b0
mov edx, dword [0x4d0ae8]
mov eax, dword [esi + 0x800]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
jmp 0x4109f5
mov edx, dword [esi + 0x800]
lea ecx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esp + 0x28]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4109d0
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x28]
mov ebx, eax
push ecx
mov eax, 0x4d0ae8
call fcn.0046c7e0
mov ebx, 1
mov eax, 4
lea edx, [esp + 0xc]
push edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
push str.SaveFile
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
xor ecx, ecx
cmp dword [esp + 0x1c], edi
lea eax, [esi + 0x38c]
setne cl
cmp dword [eax + 0x2c], ecx
jne 0x410a3b
cmp dword [eax + 0x30], ebx
jne 0x410a53
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410a53
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
xor ecx, ecx
cmp dword [esp + 0x1c], edi
lea eax, [esi + 0x3d8]
sete cl
cmp dword [eax + 0x2c], ecx
jne 0x410a6c
cmp dword [eax + 0x30], ebx
jne 0x410a84
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410a84
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
mov eax, 4
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
push eax
push str.Silent
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
mov eax, dword [esp + 0x24]
sub eax, ebx
je 0x410b74
sub eax, ebx
lea eax, [esi + 0x424]
je 0x410b08
cmp dword [eax + 0x2c], edi
jne 0x410ad1
cmp dword [eax + 0x30], ebx
jne 0x410ae9
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], edi
cmp ecx, edi
je 0x410ae9
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x49c], ebx
lea eax, [esi + 0x470]
jne 0x410b00
cmp dword [eax + 0x30], ebx
jne 0x410bca
mov dword [eax + 0x2c], ebx
jmp 0x410bb5
cmp dword [eax + 0x2c], edi
jne 0x410b12
cmp dword [eax + 0x30], ebx
jne 0x410b2a
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], edi
cmp ecx, edi
je 0x410b2a
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x49c], edi
lea eax, [esi + 0x470]
jne 0x410b3d
cmp dword [eax + 0x30], ebx
jne 0x410b55
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], edi
cmp ecx, edi
je 0x410b55
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x580], ebx
lea eax, [esi + 0x554]
jne 0x410b6c
cmp dword [eax + 0x30], ebx
jne 0x410bf5
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x2c], ebx
jmp 0x410be3
cmp dword [esi + 0x450], ebx
lea eax, [esi + 0x424]
jne 0x410b87
cmp dword [eax + 0x30], ebx
jne 0x410b9f
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], ebx
cmp ecx, edi
je 0x410b9f
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x49c], edi
lea eax, [esi + 0x470]
jne 0x410bb2
cmp dword [eax + 0x30], ebx
jne 0x410bca
mov dword [eax + 0x2c], edi
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410bca
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x580], edi
lea eax, [esi + 0x554]
jne 0x410bdd
cmp dword [eax + 0x30], ebx
jne 0x410bf5
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x2c], edi
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410bf5
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
mov eax, 4
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
push eax
push str.DownAndInstall
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
xor ecx, ecx
cmp dword [esp + 0x18], edi
lea eax, [esi + 0x4bc]
setne cl
cmp dword [eax + 0x2c], ecx
jne 0x410c3b
cmp dword [eax + 0x30], ebx
jne 0x410c53
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410c53
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
xor ecx, ecx
cmp dword [esp + 0x18], edi
lea eax, [esi + 0x508]
sete cl
cmp dword [eax + 0x2c], ecx
jne 0x410c6c
cmp dword [eax + 0x30], ebx
jne 0x410c84
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410c84
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
call fcn.00411ef0
neg eax
sbb eax, eax
inc eax
cmp dword [esi + 0x5cc], eax
lea edx, [esi + 0x5a0]
jne 0x410ca1
cmp dword [edx + 0x30], ebx
jne 0x410cb9
mov ecx, dword [edx + 0x1c]
mov dword [edx + 0x30], edi
mov dword [edx + 0x2c], eax
cmp ecx, edi
je 0x410cb9
mov eax, dword [ecx]
push edi
push edi
push edi
push edx
mov edx, dword [eax + 0x28]
call edx
mov eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x18]
push edx
push str.UseAIRestore
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
xor ecx, ecx
cmp dword [esp + 0x20], ebx
lea eax, [esi + 0x638]
sete cl
cmp dword [eax + 0x2c], ecx
jne 0x410cff
cmp dword [eax + 0x30], ebx
jne 0x410d17
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410d17
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x234]
push edx
lea eax, [esp + 0x18]
push eax
push str.netpath
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], 0x410
call ebp
mov edx, dword [esi + 0x804]
lea ecx, [esp + 0x230]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
push str.pathtype
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
lea eax, [esp + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jg 0x410d9e
mov dword [esp + 0x14], edi
xor ecx, ecx
cmp dword [esp + 0x14], edi
lea eax, [esi + 0x5ec]
setne cl
cmp dword [eax + 0x2c], ecx
jne 0x410db7
cmp dword [eax + 0x30], ebx
jne 0x410dcf
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x410dcf
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esp + 0x14], ebx
jne 0x410e00
mov ecx, dword [esi + 0x804]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x720]
lea edx, [esi + 0x71c]
mov ecx, eax
shr ecx, 2
not ecx
test bl, cl
jne 0x410e3d
and eax, 0xfffffffb
jmp 0x410e28
mov eax, dword [esi + 0x804]
push edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x720]
lea edx, [esi + 0x71c]
mov ecx, eax
shr ecx, 2
not ecx
test bl, cl
je 0x410e3d
or eax, 4
mov ecx, dword [edx + 0x1c]
mov dword [edx + 4], eax
cmp ecx, edi
je 0x410e3d
mov eax, dword [ecx]
push edi
push edi
push edi
push edx
mov edx, dword [eax + 0x28]
call edx
mov ecx, dword [esp + 0x640]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048b133
add esp, 0x638
ret