Function at 0x415a80
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x560bfe
mov eax, dword fs:[0]
push eax
sub esp, 0x2a0
mov eax, dword [0x5b7f60]
xor eax, esp
mov dword [esp + 0x298], eax
push ebx
push esi
push edi
mov eax, dword [0x5b7f60]
xor eax, esp
push eax
lea eax, [esp + 0x2b0]
mov dword fs:[0], eax
mov edi, ecx
push 0x423d70
mov ecx, 0x5c1de0
call fcn.00443ae1
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x415ae3
call fcn.00431768
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x415b09
push 0x423da0
mov ecx, 0x5c1de4
call fcn.004435ed
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x415b09
call fcn.00431768
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x415b19
call fcn.00431768
mov dword [eax + 0x7c], ebx
call fcn.004357d8
call fcn.0043586c
mov eax, dword [eax + 0x40]
mov dword [eax + 0x2c], ebx
call fcn.0043586c
mov eax, dword [eax + 0x40]
mov dword [eax + 0x3c], 0x7530
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x34], 8
mov dword [esp + 0x38], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, edi
call fcn.00432980
push ebx
call fcn.004367c0
add esp, 4
lea esi, [esp + 0xd4]
call fcn.00413de0
mov ecx, esi
push ecx
mov ecx, edi
mov dword [esp + 0x2bc], ebx
call fcn.0043193e
mov eax, dword [esp + 0xe8]
cmp eax, 7
jne 0x415be5
push ebx
push 0x67
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], str.APPID
mov dword [esp + 0x2c], str.1F50E391_C083_4E93_A37A_64D6DFC97ADB
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
call fcn.0040e3e0
mov eax, dword [0x5c1dc8]
cmp eax, ebx
je 0x415bc2
call eax
cmp eax, ebx
jl 0x415bc7
call fcn.00418190
lea ecx, [esp + 0xd4]
mov dword [esp + 0x2b8], 0xffffffff
call fcn.00414100
xor eax, eax
jmp 0x41622d
cmp eax, 6
jne 0x415c2f
push 1
push 0x67
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], str.APPID
mov dword [esp + 0x2c], str.1F50E391_C083_4E93_A37A_64D6DFC97ADB
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
call fcn.0040e3e0
call fcn.00418bc0
cmp eax, ebx
jl 0x415bc7
mov eax, dword [0x5c1dc4]
cmp eax, ebx
je 0x415bc7
mov edx, dword [0x5c18ec]
push edx
call eax
add esp, 4
jmp 0x415bc7
cmp dword [esp + 0xdc], ebx
jne 0x416204
cmp dword [esp + 0xe0], ebx
jne 0x416204
call fcn.004162f0
cmp byte [esp + 0x102], 0
je 0x415cef
push 1
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x40]
call fcn.004066d0
push 1
lea ecx, [esp + 0x17]
push ecx
lea ecx, [esp + 0x74]
call fcn.004066d0
push 1
lea edx, [esp + 0x17]
push edx
lea ecx, [esp + 0xa8]
call fcn.004066d0
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x40]
lea esi, [esp + 0xdc]
mov byte [esp + 0x2c0], 3
call fcn.004141f0
test al, al
je 0x415ccc
lea esi, [esp + 0xa0]
lea ecx, [esp + 0x6c]
lea edi, [esp + 0x38]
call fcn.00429300
lea ecx, [esp + 0xa0]
call fcn.004026f0
lea ecx, [esp + 0x6c]
call fcn.004026f0
lea ecx, [esp + 0x38]
call fcn.004026f0
jmp 0x415bc7
cmp dword [esp + 0x284], ebx
jne 0x415d05
cmp dword [esp + 0x250], ebx
je 0x415db7
push 1
lea edx, [esp + 0x17]
push edx
lea ecx, [esp + 0x74]
call fcn.004066d0
lea esi, [esp + 0x13]
lea ecx, [esp + 0x6c]
lea eax, [esp + 0xd4]
mov byte [esp + 0x2b8], 4
call fcn.00414190
mov dword [esp + 0x14], ebx
lea eax, [esp + 0x14]
push eax
push 0x58f5b0
push 0x17
push ebx
push 0x58f5a0
mov byte [esp + 0x2cc], 5
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jge 0x415d8f
push eax
push str.Failed_to_create_instance_of_IUSUpdateMgr2:__d
push 8
call fcn.004060b0
add esp, 0xc
mov byte [esp + 0x2b8], 4
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x415d81
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x6c]
call fcn.004026f0
jmp 0x415bc7
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x6c]
call fcn.0041e440
cmp byte [esp + 0x13], 0
mov eax, dword [eax]
mov ecx, dword [esi]
push eax
push esi
je 0x415db0
mov edx, dword [ecx + 0x58]
call edx
jmp 0x415d69
mov edx, dword [ecx + 0x54]
call edx
jmp 0x415d69
push 0xc
call fcn.0043094c
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x2b8], 6
cmp eax, ebx
je 0x415de0
mov ecx, eax
call fcn.00436f7b
mov esi, eax
mov dword [esp + 0x18], esi
jmp 0x415de6
mov dword [esp + 0x18], ebx
mov esi, ebx
push 0x58f088
mov ecx, edi
mov byte [esp + 0x2bc], 0
call fcn.0043710a
cmp dword [esp + 0x14c], ebx
je 0x415e34
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xd8]
call fcn.004201e0
mov ecx, eax
mov byte [esp + 0x2b8], 7
call fcn.00406b00
lea ecx, [esp + 0x38]
mov byte [esp + 0x2b8], 0
call fcn.004026f0
cmp dword [esp + 0x118], ebx
je 0x415e73
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0xd8]
call fcn.00415590
push eax
lea ecx, [edi + 0xcc]
mov byte [esp + 0x2bc], 8
call fcn.00406690
lea ecx, [esp + 0x38]
mov byte [esp + 0x2b8], 0
call fcn.004026f0
cmp dword [esp + 0x180], ebx
je 0x41612e
lea edx, [esp + 0xa0]
push edx
lea ecx, [esp + 0xd8]
call fcn.00415630
push 1
lea eax, [esp + 0x17]
push eax
push str.Custom
lea ecx, [esp + 0x78]
mov byte [esp + 0x2c4], 9
call fcn.004136e0
push 0x104
lea ecx, [esp + 0x24]
push ecx
mov bl, 0xa
lea ecx, [edi + 0x104]
mov byte [esp + 0x2c0], bl
call fcn.0041e310
mov esi, eax
push 1
lea edx, [esp + 0x17]
push edx
push str.ResourceDLL
lea ecx, [esp + 0x44]
mov byte [esp + 0x2c4], 0xb
call fcn.004136e0
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2b8], 0xc
call fcn.00401c50
push eax
push 0x104
mov ecx, esi
call fcn.00401b50
mov ecx, dword [esp + 0x1c]
push eax
push 0
call fcn.00401c50
push eax
lea ecx, [esp + 0x80]
call fcn.00401c50
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
call esi
lea ecx, [esp + 0x38]
call fcn.004026f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2b8], bl
call fcn.004031d0
push 0x104
lea eax, [esp + 0x24]
push eax
lea ecx, [edi + 0x138]
call fcn.0041e310
mov dword [esp + 0x14], eax
push 1
lea ecx, [esp + 0x17]
push ecx
push 0x58f0c0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2c4], 0xd
call fcn.004136e0
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2b8], 0xe
call fcn.00401c50
mov ecx, dword [esp + 0x14]
push eax
push 0x104
call fcn.00401b50
mov ecx, dword [esp + 0x24]
push eax
push 0
call fcn.00401c50
push eax
lea ecx, [esp + 0x80]
call fcn.00401c50
push eax
call esi
lea ecx, [esp + 0x38]
call fcn.004026f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2b8], bl
call fcn.004031d0
push 0x104
lea edx, [esp + 0x24]
push edx
lea ecx, [edi + 0x16c]
call fcn.0041e310
mov dword [esp + 0x1c], eax
push 1
lea eax, [esp + 0x17]
push eax
push 0x58f0d0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2c4], 0xf
call fcn.004136e0
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2b8], 0x10
call fcn.00401c50
mov ecx, dword [esp + 0x1c]
push eax
push 0x104
call fcn.00401b50
mov ecx, dword [esp + 0x1c]
push eax
push 0
call fcn.00401c50
push eax
lea ecx, [esp + 0x80]
call fcn.00401c50
push eax
call esi
lea ecx, [esp + 0x38]
call fcn.004026f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2b8], bl
call fcn.004031d0
push 0x104
lea ecx, [esp + 0x24]
push ecx
lea ecx, [edi + 0x1a0]
call fcn.0041e310
mov dword [esp + 0x1c], eax
push 1
lea edx, [esp + 0x17]
push edx
push str.Products
lea ecx, [esp + 0x44]
mov byte [esp + 0x2c4], 0x11
call fcn.004136e0
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2b8], 0x12
call fcn.00401c50
mov ecx, dword [esp + 0x1c]
push eax
push 0x104
call fcn.00401b50
mov ecx, dword [esp + 0x1c]
push eax
push 0
call fcn.00401c50
push eax
lea ecx, [esp + 0x80]
call fcn.00401c50
push eax
call esi
lea ecx, [esp + 0x38]
call fcn.004026f0
mov byte [esp + 0x2b8], bl
lea ecx, [esp + 0x20]
call fcn.004031d0
lea ecx, [esp + 0x6c]
mov byte [edi + 0x100], 1
call fcn.004026f0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2b8], 0
call fcn.004026f0
mov esi, dword [esp + 0x18]
xor ebx, ebx
cmp byte [esp + 0x101], 0
je 0x4161c1
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x18]
push eax
push 0x58f5b0
push 0x17
push ebx
push 0x58f5a0
mov byte [esp + 0x2cc], 0x13
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jge 0x41619d
push eax
push str.Failed_to_create_instance_of_IUSUpdateMgr2:__x
push 8
call fcn.004060b0
add esp, 0xc
cmp esi, ebx
je 0x416183
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov byte [esp + 0x2b8], 0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x416211
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x416211
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x48]
push eax
call edx
mov byte [esp + 0x2b8], 0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4161c1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp byte [esp + 0x100], 0
je 0x4161d0
call fcn.00416600
cmp esi, ebx
je 0x4161df
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
xor eax, eax
cmp dword [edi + 0x20], ebx
lea ecx, [esp + 0xd4]
setne al
mov dword [esp + 0x2b8], 0xffffffff
mov esi, eax
call fcn.00414100
mov eax, esi
jmp 0x41622d
call fcn.00418d30
test eax, eax
js 0x415bc7
lea ecx, [esp + 0xd4]
mov dword [esp + 0x2b8], 0xffffffff
call fcn.00414100
mov eax, 1
mov ecx, dword [esp + 0x2b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x298]
xor ecx, esp
call fcn.005319a6
mov esp, ebp
pop ebp
ret