Function at 0x4678a0
Capabilities:
Check if file exists
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x599fd0
mov eax, dword fs:[0]
push eax
sub esp, 0x660
mov eax, dword [0x61ce74]
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
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00540d70
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00540d70
add esp, 0x18
call fcn.00421b80
mov ecx, eax
test ecx, ecx
je 0x468525
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x66c], esi
lea eax, [ebp - 0x640]
mov dword [ebp - 4], 0
push eax
call fcn.004e3920
add esp, 4
mov edi, eax
cmp dword [edi + 0x14], 8
mov byte [ebp - 4], 1
jb 0x467938
mov edi, dword [edi]
call fcn.00421b80
mov ecx, eax
test ecx, ecx
je 0x46852f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x668], eax
mov byte [ebp - 4], 2
test edi, edi
je 0x467991
test edi, 0xffff0000
jne 0x467976
movzx eax, di
lea ecx, [ebp - 0x668]
push eax
call fcn.00426130
jmp 0x4679a0
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x467980
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467980
sub ecx, edx
sar ecx, 1
jmp 0x467993
xor ecx, ecx
push ecx
push edi
lea ecx, [ebp - 0x668]
call fcn.004263f0
mov edx, dword [ebp - 0x62c]
mov byte [ebp - 4], 4
cmp edx, 8
jb 0x4679e4
mov ecx, dword [ebp - 0x640]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4679da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x468539
push edx
push ecx
call fcn.0053d0af
add esp, 8
xor eax, eax
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
lea eax, [ebp - 0x668]
push eax
mov dword [ebp - 0x62c], 7
call fcn.00474b30
add esp, 4
lea ecx, [ebp - 0x668]
push 0x11
push str.tempuninstall.ini
call fcn.00425dc0
push dword [ebp - 0x668]
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.00554202
add esp, 0xc
push dword [ebp - 0x668]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4683ce
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.localappdata
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467a83
sub ecx, edx
sar ecx, 1
je 0x467b24
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00421b80
test eax, eax
je 0x468552
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
lea ebx, [ebp - 0x218]
mov byte [ebp - 4], 5
shr ebx, 0x10
mov dword [ebp - 0x660], ebx
test ebx, ebx
jne 0x467ae4
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00426130
jmp 0x467b0e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467af0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 4
call fcn.0048c7d0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x467b33
lea ebx, [ebp - 0x218]
shr ebx, 0x10
mov dword [ebp - 0x660], ebx
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.appdatapath
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467b60
sub ecx, edx
sar ecx, 1
je 0x467be9
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00421b80
test eax, eax
je 0x468552
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 6
test ebx, ebx
jne 0x467bae
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00426130
jmp 0x467bd5
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467bb7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 4
call fcn.0048c750
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.newcurinstallpath
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467c16
sub ecx, edx
sar ecx, 1
je 0x467cdf
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x658]
push eax
call fcn.004e3be0
cmp dword [ebp - 0x644], 8
lea edi, [ebp - 0x658]
mov byte [ebp - 4], 7
cmovae edi, dword [ebp - 0x658]
add esp, 4
mov ebx, esp
mov dword [ebp - 0x664], ebx
call fcn.00421b80
mov ecx, eax
test ecx, ecx
je 0x46853e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 8
test edi, edi
je 0x467cb1
test edi, 0xffff0000
jne 0x467c97
movzx eax, di
mov ecx, ebx
push eax
call fcn.00426130
jmp 0x467cbc
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467ca0
sub ecx, edx
sar ecx, 1
jmp 0x467cb3
xor ecx, ecx
push ecx
push edi
mov ecx, ebx
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 7
call fcn.0048c870
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 4
call fcn.00430d50
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.startmenudir
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467d10
sub ecx, edx
sar ecx, 1
je 0x467dba
push ecx
mov edi, esp
mov dword [ebp - 0x65c], edi
call fcn.00421b80
test eax, eax
je 0x468552
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov ebx, dword [ebp - 0x660]
mov byte [ebp - 4], 9
test ebx, ebx
jne 0x467d6e
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
mov dword [ebp - 0x664], eax
call fcn.00426130
jmp 0x467da4
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467d77
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
lea eax, [ebp - 0x218]
movzx edi, ax
mov dword [ebp - 0x664], edi
mov ecx, 0x629c48
mov byte [ebp - 4], 4
call fcn.0048c8e0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x467dcf
mov ebx, dword [ebp - 0x660]
lea eax, [ebp - 0x218]
movzx eax, ax
mov dword [ebp - 0x664], eax
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.waitclearlist
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467e00
sub ecx, edx
sar ecx, 1
je 0x467e89
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00421b80
test eax, eax
je 0x468552
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xa
test ebx, ebx
jne 0x467e4e
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00426130
jmp 0x467e75
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467e57
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 4
call fcn.0048cb90
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push 0x5b441c
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467eb6
sub ecx, edx
sar ecx, 1
je 0x467f69
call fcn.00421b80
mov ecx, eax
test ecx, ecx
je 0x468548
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x65c], eax
mov byte [ebp - 4], 0xb
test ebx, ebx
jne 0x467f07
lea eax, [ebp - 0x218]
movzx eax, ax
lea ecx, [ebp - 0x65c]
push eax
call fcn.00426130
jmp 0x467f32
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467f10
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x65c]
call fcn.004263f0
lea eax, [ebp - 0x65c]
mov byte [ebp - 4], 0xc
push eax
mov ecx, 0x629f1c
call fcn.004acf90
mov edx, dword [ebp - 0x65c]
or eax, 0xffffffff
mov byte [ebp - 4], 4
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x467f69
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b151c
push str.2019icdisable
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467f96
sub ecx, edx
sar ecx, 1
je 0x467fef
mov ecx, 0x5b3ec4
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x467fd8
test dx, dx
je 0x467fd4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x467fd8
add eax, 4
add ecx, 4
test dx, dx
jne 0x467fb2
xor ecx, ecx
jmp 0x467fdd
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x629c48
sete al
push eax
call fcn.0048c9e0
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.AutoRecoverFilePath
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x468020
sub ecx, edx
sar ecx, 1
je 0x4680b4
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00421b80
test eax, eax
je 0x468552
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
lea ebx, [ebp - 0x218]
mov byte [ebp - 4], 0xd
shr ebx, 0x10
test ebx, ebx
jne 0x468077
push dword [ebp - 0x664]
mov ecx, edi
call fcn.00426130
jmp 0x46809e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x468080
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 4
call fcn.0048c6d0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x4680bd
lea ebx, [ebp - 0x218]
shr ebx, 0x10
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b0144
push str.OldAutoRecoverFilePath
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4680f0
sub ecx, edx
sar ecx, 1
je 0x468179
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00421b80
mov ecx, eax
test ecx, ecx
je 0x468552
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xe
test ebx, ebx
jne 0x46813e
push dword [ebp - 0x664]
mov ecx, edi
call fcn.00426130
jmp 0x468165
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x468147
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 4
call fcn.0048ca40
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b151c
push str.delbackupdisable
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4681a6
sub ecx, edx
sar ecx, 1
je 0x4681ff
mov ecx, 0x5b3ec4
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4681e8
test dx, dx
je 0x4681e4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4681e8
add eax, 4
add ecx, 4
test dx, dx
jne 0x4681c2
xor ecx, ecx
jmp 0x4681ed
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x629c48
sete al
push eax
call fcn.0048ca00
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b151c
push str.delcustombackupdisable
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x468230
sub ecx, edx
sar ecx, 1
je 0x46828d
mov ecx, 0x5b3ec4
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x468276
test dx, dx
je 0x468272
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x468276
add eax, 4
add ecx, 4
test dx, dx
jne 0x468250
xor ecx, ecx
jmp 0x46827b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x629c48
sete al
push eax
call fcn.0048ca10
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b151c
push str.deladdondisable
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4682c0
sub ecx, edx
sar ecx, 1
je 0x46831d
mov ecx, 0x5b3ec4
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x468306
test dx, dx
je 0x468302
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x468306
add eax, 4
add ecx, 4
test dx, dx
jne 0x4682e0
xor ecx, ecx
jmp 0x46830b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x629c48
sete al
push eax
call fcn.0048c9f0
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b151c
push str.silentdefaultdeldisable
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x468350
sub ecx, edx
sar ecx, 1
je 0x4683ad
mov ecx, 0x5b3ec4
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x468396
test dx, dx
je 0x468392
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x468396
add eax, 4
add ecx, 4
test dx, dx
jne 0x468370
xor ecx, ecx
jmp 0x46839b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x629c48
sete al
push eax
call fcn.0048ca20
push 1
mov ecx, 0x629c48
call fcn.0048c740
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
or ebx, 0xffffffff
jmp 0x4684cc
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00540d70
push 0x104
lea eax, [ebp - 0x628]
push eax
push 0x1a
call fcn.00472c70
lea eax, [ebp - 0x660]
push eax
call fcn.004a0070
add esp, 0x1c
mov eax, dword [ebp - 0x660]
mov byte [ebp - 4], 0xf
cmp dword [eax - 0xc], 0
je 0x468424
lea eax, [ebp - 0x660]
mov ecx, 0x629f1c
push eax
call fcn.004acf90
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00421b80
mov ecx, eax
test ecx, ecx
je 0x46855c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp - 0x628]
mov byte [ebp - 4], 0x10
test eax, 0xffff0000
jne 0x468464
movzx eax, ax
mov ecx, edi
push eax
call fcn.00426130
jmp 0x46848e
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x468470
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.004263f0
mov ecx, 0x629c48
mov byte [ebp - 4], 0xf
call fcn.0048c750
push 0
mov ecx, 0x629c48
call fcn.0048c740
mov edx, dword [ebp - 0x660]
or ebx, 0xffffffff
mov byte [ebp - 4], 4
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4684cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x668]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4684ed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x468509
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
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.0053d079
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00425f50
push 0x80004005
call fcn.00425f50
call fcn.0054b0c3
push 0x80004005
call fcn.00425f50
push 0x80004005
call fcn.00425f50
push 0x80004005
call fcn.00425f50
push 0x80004005
call fcn.00425f50
int3