Function at 0x459d10
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eac3f
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 0x459d9f
or dword [0x5431e4], 1
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
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 0x459dc8
mov eax, dword [esi]
jmp 0x459dca
mov eax, esi
cmp word [eax + ecx*2 - 2], 0x5c
je 0x459de0
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.004b96b0
mov eax, dword [ebp - 0x43c]
add esp, 0xc
cmp dword [ebp - 0x428], edi
jae 0x459e1c
lea eax, [ebp - 0x43c]
push eax
push 0x104
lea ecx, [ebp - 0x218]
push ecx
push 0x5100ac
push str.UpdateStep
push str.QuietUpdate
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x45a520
lea edx, [ebp - 0x218]
push str.HasDownloadUpdateZip
push edx
call fcn.004b2762
add esp, 8
test eax, eax
jne 0x45a520
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x459e76
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 0x459ea1
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 0x459ec7
lea eax, [ebp - 0x43c]
push eax
push 0
push str.upgradesetup
push str.UpdateParam
call esi
test ebx, ebx
jne 0x45a4d5
cmp edi, 1
jne 0x45a4d5
xor esi, esi
cmp eax, esi
jne 0x45a4d5
push 0x206
lea ecx, [ebp - 0x41e]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x420], ax
call fcn.004b96b0
mov eax, dword [ebp - 0x43c]
mov edi, 8
add esp, 0xc
cmp dword [ebp - 0x428], edi
jae 0x459f28
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 0x459fa2
mov eax, dword [0x5430d8]
cmp eax, esi
je 0x459f87
cmp dword [eax + 8], 4
mov edi, eax
jl 0x459f87
push 0x50ffd8
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x4cc], esp
mov esi, 0x88
push eax
mov ecx, 0x5100e8
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 0x45a537
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 0x45a001
mov ecx, esi
lea edx, [ebp - 0x4d0]
push edx
call fcn.0045f3b0
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 0x45a058
call fcn.00443d80
push eax
call fcn.004407f0
test al, al
je 0x45a058
xor bl, bl
jmp 0x45a05a
mov bl, 1
lea ecx, [ebp - 0x4c8]
mov dword [ebp - 4], 5
call fcn.00401e80
test bl, bl
je 0x45a0b6
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a2db
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a2db
push 0x50ffd8
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x4cc], esp
push ecx
mov ecx, 0x50d83c
mov esi, 0x96
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x45a2db
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 0x45a0ec
mov eax, dword [esi]
jmp 0x45a0ee
mov eax, esi
lea ecx, [ebp - 0x420]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45a11a
test dx, dx
je 0x45a116
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45a11a
add eax, 4
add ecx, 4
test dx, dx
jne 0x45a0f4
xor eax, eax
jmp 0x45a11f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45a169
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a2db
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a2db
push 0x50ffd8
push 2
push ecx
mov edx, esp
mov dword [ebp - 0x4cc], esp
push edx
mov ecx, 0x510100
mov esi, 0x9e
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x45a2db
call fcn.00443d80
push eax
call fcn.00440c70
test al, al
jne 0x45a1be
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a2db
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45a2db
push 0x50ffd8
push 2
push ecx
mov eax, esp
mov dword [ebp - 0x4cc], esp
push eax
mov ecx, 0x510008
mov esi, 0xa3
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x45a2db
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.0045b200
test al, al
jne 0x45a251
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x45a244
lea eax, [ebp - 0x458]
push eax
push 0x510128
mov edx, 0xae
jmp 0x45a2c4
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.0045e030
test al, al
jne 0x45a36f
mov ecx, edi
call fcn.0045f0d0
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x45a2b9
lea eax, [ebp - 0x458]
push eax
push 0x510148
mov edx, 0xb7
push 0x50ffd8
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 0x45a320
lea eax, [ebp - 0x43c]
push eax
push 0x5100ac
push str.UpdateStep
push str.QuietUpdate
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [0x5430d8]
test eax, eax
je 0x459f87
cmp dword [eax + 8], 2
mov edi, eax
jl 0x459f87
push 0x50ffd8
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x4cc], esp
push ecx
mov esi, 0xc8
mov ecx, 0x5101cc
jmp 0x459f7a
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.0045e6a0
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 0x45a3b9
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 0x45a3db
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 0x45a407
lea ebx, [ebp - 0x43c]
call fcn.00442c70
add eax, 0x70
cmp dword [eax + 0x14], edi
jb 0x45a416
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 0x45a438
lea ecx, [ebp - 0x43c]
mov eax, dword [ebp - 0x4cc]
cmp dword [eax + 0x14], edi
jb 0x45a445
mov eax, dword [eax]
push ecx
push eax
push str.CurVersion
push str.QuietUpdate
call esi
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a48c
cmp dword [eax + 8], 4
mov edi, eax
jl 0x45a48c
push 0x50ffd8
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x4cc], esp
push edx
mov ecx, 0x5101b8
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 0x45a539
mov eax, dword [0x5430d8]
test eax, eax
je 0x45a50e
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x45a50e
push 0x50ffd8
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x4cc], esp
push eax
mov ecx, 0x5100cc
mov esi, 0x80
call fcn.00408620
push ebx
mov ecx, esi
call fcn.0042c420
cmp dword [ebp - 0x428], 8
jb 0x45a537
mov ecx, dword [ebp - 0x43c]
push ecx
jmp 0x45a52f
cmp dword [ebp - 0x428], edi
jb 0x45a537
mov edx, dword [ebp - 0x43c]
push edx
call fcn.004b1676
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.004b1681
mov esp, ebp
pop ebp
ret