Function at 0x40c370
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x840
mov eax, dword [0x48a3c0]
xor eax, esp
mov dword [esp + 0x83c], eax
push ebx
push ebp
push edi
push 0x40e
xor edi, edi
lea ecx, [esp + 0x2e]
xor eax, eax
push edi
push ecx
mov word [esp + 0x34], ax
call fcn.00462160
push 0x40e
lea eax, [esp + 0x44a]
xor edx, edx
push edi
mov ebx, 1
push eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
mov word [esp + 0x450], dx
call fcn.00462160
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 SysReAllocStringLen
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x410
call ebp
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jg 0x40c431
push str.hotfix
lea edx, [esi + 0xa0]
push edx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x40c44c
lea edx, [esp + 0x28]
push edx
push edi
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov ecx, dword [esi + 0x918]
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextW]
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 SysReAllocStringLen
call ebp
xor ecx, ecx
cmp dword [esp + 0x1c], edi
lea eax, [esi + 0x548]
setne cl
cmp dword [eax + 0x2c], ecx
jne 0x40c4a4
cmp dword [eax + 0x30], ebx
jne 0x40c4bc
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c4bc
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 + 0x590]
sete cl
cmp dword [eax + 0x2c], ecx
jne 0x40c4d5
cmp dword [eax + 0x30], ebx
jne 0x40c4ed
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c4ed
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 SysReAllocStringLen
call ebp
mov eax, dword [esp + 0x24]
sub eax, ebx
je 0x40c5dd
sub eax, ebx
lea eax, [esi + 0x5d8]
je 0x40c571
cmp dword [eax + 0x2c], edi
jne 0x40c53a
cmp dword [eax + 0x30], ebx
jne 0x40c552
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], edi
cmp ecx, edi
je 0x40c552
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x64c], ebx
lea eax, [esi + 0x620]
jne 0x40c569
cmp dword [eax + 0x30], ebx
jne 0x40c633
mov dword [eax + 0x2c], ebx
jmp 0x40c61e
cmp dword [eax + 0x2c], edi
jne 0x40c57b
cmp dword [eax + 0x30], ebx
jne 0x40c593
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], edi
cmp ecx, edi
je 0x40c593
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x64c], edi
lea eax, [esi + 0x620]
jne 0x40c5a6
cmp dword [eax + 0x30], ebx
jne 0x40c5be
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], edi
cmp ecx, edi
je 0x40c5be
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x724], ebx
lea eax, [esi + 0x6f8]
jne 0x40c5d5
cmp dword [eax + 0x30], ebx
jne 0x40c65e
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x2c], ebx
jmp 0x40c64c
cmp dword [esi + 0x604], ebx
lea eax, [esi + 0x5d8]
jne 0x40c5f0
cmp dword [eax + 0x30], ebx
jne 0x40c608
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
mov dword [eax + 0x2c], ebx
cmp ecx, edi
je 0x40c608
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x64c], edi
lea eax, [esi + 0x620]
jne 0x40c61b
cmp dword [eax + 0x30], ebx
jne 0x40c633
mov dword [eax + 0x2c], edi
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c633
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
cmp dword [esi + 0x724], edi
lea eax, [esi + 0x6f8]
jne 0x40c646
cmp dword [eax + 0x30], ebx
jne 0x40c65e
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x2c], edi
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c65e
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 SysReAllocStringLen
call ebp
xor ecx, ecx
cmp dword [esp + 0x18], edi
lea eax, [esi + 0x668]
setne cl
cmp dword [eax + 0x2c], ecx
jne 0x40c6a4
cmp dword [eax + 0x30], ebx
jne 0x40c6bc
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c6bc
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 + 0x6b0]
sete cl
cmp dword [eax + 0x2c], ecx
jne 0x40c6d5
cmp dword [eax + 0x30], ebx
jne 0x40c6ed
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c6ed
mov edx, dword [ecx]
push edi
push edi
push edi
push eax
mov eax, dword [edx + 0x28]
call eax
call fcn.0040daa0
neg eax
sbb eax, eax
inc eax
cmp dword [esi + 0x76c], eax
lea edx, [esi + 0x740]
jne 0x40c70a
cmp dword [edx + 0x30], ebx
jne 0x40c722
mov ecx, dword [edx + 0x1c]
mov dword [edx + 0x30], edi
mov dword [edx + 0x2c], eax
cmp ecx, edi
je 0x40c722
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 SysReAllocStringLen
call ebp
xor ecx, ecx
cmp dword [esp + 0x20], ebx
lea eax, [esi + 0x7d0]
sete cl
cmp dword [eax + 0x2c], ecx
jne 0x40c768
cmp dword [eax + 0x30], ebx
jne 0x40c780
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c780
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 + 0x43c]
push edx
lea eax, [esp + 0x18]
push eax
push str.netpath
push str.SOFTWARE360SafeLeak
push SysReAllocStringLen
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], 0x410
call ebp
mov edx, dword [esi + 0x91c]
lea ecx, [esp + 0x438]
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 SysReAllocStringLen
call ebp
lea eax, [esp + 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jg 0x40c807
mov dword [esp + 0x14], edi
xor ecx, ecx
cmp dword [esp + 0x14], edi
lea eax, [esi + 0x788]
setne cl
cmp dword [eax + 0x2c], ecx
jne 0x40c820
cmp dword [eax + 0x30], ebx
jne 0x40c838
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x30], edi
cmp ecx, edi
je 0x40c838
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 0x40c869
mov ecx, dword [esi + 0x91c]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x85c]
lea edx, [esi + 0x858]
mov ecx, eax
shr ecx, 2
not ecx
test bl, cl
jne 0x40c8a6
and eax, 0xfffffffb
jmp 0x40c891
mov eax, dword [esi + 0x91c]
push edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x85c]
lea edx, [esi + 0x858]
mov ecx, eax
shr ecx, 2
not ecx
test bl, cl
je 0x40c8a6
or eax, 4
mov ecx, dword [edx + 0x1c]
mov dword [edx + 4], eax
cmp ecx, edi
je 0x40c8a6
mov eax, dword [ecx]
push edi
push edi
push edi
push edx
mov edx, dword [eax + 0x28]
call edx
mov ecx, dword [esp + 0x848]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.00460259
add esp, 0x840
ret