Function at 0x45a2b0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eb21f
mov eax, dword fs:[0]
push eax
sub esp, 0x4d4
mov eax, dword [0x53f1e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x43c]
mov ebx, ecx
xor edi, edi
push eax
mov dword [ebp - 0x4d4], ebx
mov dword [ebp - 0x4d8], edi
call fcn.0040f140
add esp, 4
mov dword [ebp - 4], edi
xor ecx, ecx
mov dword [ebp - 0x498], 7
mov dword [ebp - 0x49c], edi
mov word [ebp - 0x4ac], cx
mov byte [ebp - 4], 1
test byte [0x5431e4], 1
jne 0x45a33f
or dword [0x5431e4], 1
call fcn.00442d10
push 0x4ecbd0
call fcn.004b4336
add esp, 4
push 0xffffffffffffffff
lea esi, [ebx + 0x24]
push edi
push 0x543134
mov ecx, esi
mov dword [ebp - 0x4dc], esi
call fcn.00404530
mov ecx, dword [ebx + 0x34]
mov edi, 8
cmp dword [esi + 0x14], edi
jb 0x45a368
mov eax, dword [esi]
jmp 0x45a36a
mov eax, esi
cmp word [eax + ecx*2 - 2], 0x5c
je 0x45a380
push 1
mov eax, 0x5062dc
mov ecx, esi
call fcn.00403f00
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x216]
push eax
mov dword [ebx + 0xc8], 1
mov word [ebp - 0x218], dx
call fcn.004b9c60
mov eax, dword [ebp - 0x43c]
add esp, 0xc
cmp dword [ebp - 0x428], edi
jae 0x45a3bc
lea eax, [ebp - 0x43c]
push eax
push 0x104
lea ecx, [ebp - 0x218]
push ecx
push 0x5101e4
push str.UpdateStep
push str.QuietUpdate
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x45aac0
lea edx, [ebp - 0x218]
push str.HasDownloadUpdateZip
push edx
call fcn.004b2d12
add esp, 8
test eax, eax
jne 0x45aac0
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x45a416
lea eax, [ebp - 0x43c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
push 0
push 0x50cca8
push str.UpdateParam
call esi
mov ebx, eax
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x45a441
lea eax, [ebp - 0x43c]
push eax
push 0
push str.silentupgrade
push str.UpdateParam
call esi
cmp dword [ebp - 0x428], 8
mov edi, eax
mov eax, dword [ebp - 0x43c]
jae 0x45a467
lea eax, [ebp - 0x43c]
push eax
push 0
push str.upgradesetup
push str.UpdateParam
call esi
test ebx, ebx
jne 0x45aa75
cmp edi, 1
jne 0x45aa75
xor esi, esi
cmp eax, esi
jne 0x45aa75
push 0x206
lea ecx, [ebp - 0x41e]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x420], ax
call fcn.004b9c60
mov eax, dword [ebp - 0x43c]
mov edi, 8
add esp, 0xc
cmp dword [ebp - 0x428], edi
jae 0x45a4c8
lea eax, [ebp - 0x43c]
push eax
push 0x104
lea edx, [ebp - 0x420]
push edx
push 0x507b90
push str.version
push str.UpdateParam
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp eax, esi
jne 0x45a542
mov eax, dword [0x5430d8]
cmp eax, esi
je 0x45a527
cmp dword [eax + 8], 4
mov edi, eax
jl 0x45a527
push 0x510110
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x4cc], esp
mov esi, 0x88
push eax
mov ecx, 0x510220
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
lea ecx, [ebp - 0x4ac]
call fcn.00404a50
lea ecx, [ebp - 0x43c]
call fcn.00404a50
jmp 0x45aad7
mov eax, 7
xor ecx, ecx
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x448], esi
mov word [ebp - 0x458], cx
xor edx, edx
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x464], esi
mov word [ebp - 0x474], dx
lea esi, [ebp - 0x490]
mov byte [ebp - 4], 3
call fcn.0040f1b0
mov eax, esi
push eax
mov eax, str.UpdateScript.XML
mov byte [ebp - 4], 4
call fcn.00404060
mov ecx, dword [ebp - 0x490]
cmp dword [ebp - 0x47c], edi
jae 0x45a5a1
mov ecx, esi
lea edx, [ebp - 0x4d0]
push edx
call fcn.0045f950
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.004040f0
mov byte [ebp - 4], 6
mov dword [ebp - 0x4d8], 1
call fcn.00443d80
lea ecx, [ebp - 0x4c8]
call fcn.004401c0
test al, al
je 0x45a5f8
call fcn.00443d80
push eax
call fcn.004407f0
test al, al
je 0x45a5f8
xor bl, bl
jmp 0x45a5fa
mov bl, 1
lea ecx, [ebp - 0x4c8]
mov dword [ebp - 4], 5
call fcn.00401e80
test bl, bl
je 0x45a656
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a87b
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a87b
push 0x510110
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x4cc], esp
push ecx
mov ecx, 0x50d974
mov esi, 0x96
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x45a87b
call fcn.00443d80
push eax
call fcn.004402a0
call fcn.00443d80
mov ecx, dword [ebp - 0x4d4]
push 0xffffffffffffffff
lea esi, [eax + 0x40]
push 0
add ecx, 8
push esi
mov dword [ebp - 0x4cc], ecx
call fcn.00404530
cmp dword [esi + 0x14], 8
jb 0x45a68c
mov eax, dword [esi]
jmp 0x45a68e
mov eax, esi
lea ecx, [ebp - 0x420]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45a6ba
test dx, dx
je 0x45a6b6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45a6ba
add eax, 4
add ecx, 4
test dx, dx
jne 0x45a694
xor eax, eax
jmp 0x45a6bf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45a709
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a87b
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a87b
push 0x510110
push 2
push ecx
mov edx, esp
mov dword [ebp - 0x4cc], esp
push edx
mov ecx, 0x510238
mov esi, 0x9e
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x45a87b
call fcn.00443d80
push eax
call fcn.00440c70
test al, al
jne 0x45a75e
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a87b
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a87b
push 0x510110
push 2
push ecx
mov eax, esp
mov dword [ebp - 0x4cc], esp
push eax
mov ecx, 0x510140
mov esi, 0xa3
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x45a87b
lea esi, [ebp - 0x4c8]
call fcn.0040f1b0
mov esi, dword [ebp - 0x4d4]
add esi, 0x84
mov edi, eax
mov byte [ebp - 4], 7
call fcn.00404350
lea ecx, [ebp - 0x4c8]
mov byte [ebp - 4], 5
call fcn.00404a50
call fcn.00443d80
mov ebx, eax
call fcn.00441460
call fcn.00443d80
mov ebx, eax
call fcn.004414d0
call fcn.00443d80
mov ebx, eax
call fcn.004415c0
mov edx, dword [ebp - 0x4d4]
lea ecx, [ebp - 0x458]
push ecx
lea ecx, [ebp - 0x474]
call fcn.0045b7a0
test al, al
jne 0x45a7f1
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x45a7e4
lea eax, [ebp - 0x458]
push eax
push 0x510260
mov edx, 0xae
jmp 0x45a864
call fcn.00443d80
mov edx, dword [ebp - 0x4dc]
push edx
lea edi, [eax + 0x1b4]
call fcn.00441c10
add esp, 4
call fcn.00443d80
lea ebx, [eax + 0x184]
call fcn.00441d60
mov edi, dword [ebp - 0x4d4]
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x474]
mov edx, edi
call fcn.0045e5d0
test al, al
jne 0x45a90f
mov ecx, edi
call fcn.0045f670
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x45a859
lea eax, [ebp - 0x458]
push eax
push 0x510280
mov edx, 0xb7
push 0x510110
mov esi, 2
mov eax, 0x5430d8
call fcn.0042b3c0
add esp, 0xc
lea eax, [ebp - 0x4d0]
call fcn.00412e20
lea ecx, [ebp - 0x490]
call fcn.00404a50
lea ecx, [ebp - 0x474]
call fcn.00404a50
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 1
call fcn.00404a50
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x45a8c0
lea eax, [ebp - 0x43c]
push eax
push 0x5101e4
push str.UpdateStep
push str.QuietUpdate
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a527
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a527
push 0x510110
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x4cc], esp
push ecx
mov esi, 0xc8
mov ecx, 0x510304
jmp 0x45a51a
call fcn.00442c70
mov dl, byte [eax + 0xe2]
mov byte [ebp - 0x4d8], dl
mov eax, dword [ebp - 0x4d8]
push eax
push edi
lea ecx, [ebp - 0x458]
call fcn.0045ec40
call fcn.00443d80
mov ecx, dword [ebp - 0x4dc]
push ecx
lea edi, [eax + 0x1c4]
call fcn.00441c10
mov edi, 8
add esp, 4
cmp dword [esi + 0x14], edi
jb 0x45a959
mov esi, dword [esi]
push esi
call fcn.00405440
add esp, 4
call fcn.0040f920
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x45a97b
lea eax, [ebp - 0x43c]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push eax
push str.HasQuietUpdate
push str.UpdateStep
push str.QuietUpdate
call esi
mov ebx, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x45a9a7
lea ebx, [ebp - 0x43c]
call fcn.00442c70
add eax, 0x70
cmp dword [eax + 0x14], edi
jb 0x45a9b6
mov eax, dword [eax]
push ebx
push eax
push str.OldVersion
push str.QuietUpdate
call esi
mov ecx, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x45a9d8
lea ecx, [ebp - 0x43c]
mov eax, dword [ebp - 0x4cc]
cmp dword [eax + 0x14], edi
jb 0x45a9e5
mov eax, dword [eax]
push ecx
push eax
push str.CurVersion
push str.QuietUpdate
call esi
mov eax, dword [0x5430d8]
test eax, eax
je 0x45aa2c
cmp dword [eax + 8], 4
mov edi, eax
jl 0x45aa2c
push 0x510110
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x4cc], esp
push edx
mov ecx, 0x5102f0
mov esi, 0xc3
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
lea eax, [ebp - 0x4d0]
call fcn.00412e20
lea ecx, [ebp - 0x490]
call fcn.00404a50
lea ecx, [ebp - 0x474]
call fcn.00404a50
lea ecx, [ebp - 0x458]
call fcn.00404a50
lea ecx, [ebp - 0x4ac]
call fcn.00404a50
lea ecx, [ebp - 0x43c]
call fcn.00404a50
mov eax, 1
jmp 0x45aad9
mov eax, dword [0x5430d8]
test eax, eax
je 0x45aaae
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x45aaae
push 0x510110
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x4cc], esp
push eax
mov ecx, 0x510204
mov esi, 0x80
call fcn.00408620
push ebx
mov ecx, esi
call fcn.0042c420
cmp dword [ebp - 0x428], 8
jb 0x45aad7
mov ecx, dword [ebp - 0x43c]
push ecx
jmp 0x45aacf
cmp dword [ebp - 0x428], edi
jb 0x45aad7
mov edx, dword [ebp - 0x43c]
push edx
call fcn.004b1c22
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b1c2d
mov esp, ebp
pop ebp
ret