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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a20a5
mov eax, dword fs:[0]
push eax
sub esp, 0x660
mov eax, dword [0x639354]
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.00560a80
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00560a80
add esp, 0x18
mov dword [ebp - 4], 0
call fcn.00429250
mov ecx, eax
test ecx, ecx
je 0x470aa6
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], 1
push eax
call fcn.00522450
add esp, 4
mov edi, eax
cmp dword [edi + 0x14], 8
mov byte [ebp - 4], 2
jb 0x46fecf
mov edi, dword [edi]
call fcn.00429250
mov ecx, eax
test ecx, ecx
je 0x470ab0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x668], eax
mov byte [ebp - 4], 3
test edi, edi
je 0x46ff23
test edi, 0xffff0000
jne 0x46ff0d
movzx eax, di
lea ecx, [ebp - 0x668]
push eax
call fcn.00429d90
jmp 0x46ff32
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46ff12
sub ecx, edx
sar ecx, 1
jmp 0x46ff25
xor ecx, ecx
push ecx
push edi
lea ecx, [ebp - 0x668]
call fcn.0042a060
mov edx, dword [ebp - 0x62c]
mov byte [ebp - 4], 5
cmp edx, 8
jb 0x46ff76
mov ecx, dword [ebp - 0x640]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x46ff6c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x470aba
push edx
push ecx
call fcn.0055c524
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.0047fa90
add esp, 4
lea ecx, [ebp - 0x668]
push 0x11
push str.tempuninstall.ini
call fcn.004299d0
push dword [ebp - 0x668]
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0056f8ec
add esp, 0xc
push dword [ebp - 0x668]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x47095e
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b8734
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 0x470015
sub ecx, edx
sar ecx, 1
je 0x4700b4
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00429250
test eax, eax
je 0x470ad3
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], 6
shr ebx, 0x10
mov dword [ebp - 0x660], ebx
test ebx, ebx
jne 0x470076
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00429d90
jmp 0x47009e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470080
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 5
call fcn.0049ccd0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x4700c3
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 0x5b8734
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 0x4700f0
sub ecx, edx
sar ecx, 1
je 0x470179
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00429250
test eax, eax
je 0x470ad3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 7
test ebx, ebx
jne 0x47013e
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00429d90
jmp 0x470165
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470147
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 5
call fcn.0049cc50
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b8734
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 0x4701a6
sub ecx, edx
sar ecx, 1
je 0x47026f
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x658]
push eax
call fcn.0052a300
cmp dword [ebp - 0x644], 8
lea edi, [ebp - 0x658]
mov byte [ebp - 4], 8
cmovae edi, dword [ebp - 0x658]
add esp, 4
mov ebx, esp
mov dword [ebp - 0x664], ebx
call fcn.00429250
mov ecx, eax
test ecx, ecx
je 0x470abf
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 9
test edi, edi
je 0x470241
test edi, 0xffff0000
jne 0x470227
movzx eax, di
mov ecx, ebx
push eax
call fcn.00429d90
jmp 0x47024c
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470230
sub ecx, edx
sar ecx, 1
jmp 0x470243
xor ecx, ecx
push ecx
push edi
mov ecx, ebx
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 8
call fcn.0049cd70
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 5
call fcn.0042ab30
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b8734
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 0x4702a0
sub ecx, edx
sar ecx, 1
je 0x470347
push ecx
mov edi, esp
mov dword [ebp - 0x65c], edi
call fcn.00429250
test eax, eax
je 0x470ad3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov ebx, dword [ebp - 0x660]
lea eax, [ebp - 0x218]
movzx eax, ax
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x664], eax
test ebx, ebx
jne 0x4702fe
push eax
mov ecx, edi
call fcn.00429d90
jmp 0x470331
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470307
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov edi, dword [ebp - 0x664]
mov dword [ebp - 0x664], edi
mov ecx, 0x641e28
mov byte [ebp - 4], 5
call fcn.0049cde0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x47035c
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 0x5b8734
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 0x470390
sub ecx, edx
sar ecx, 1
je 0x470419
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00429250
test eax, eax
je 0x470ad3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xb
test ebx, ebx
jne 0x4703de
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00429d90
jmp 0x470405
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4703e7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 5
call fcn.0049d0a0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b8734
push 0x5bc304
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470446
sub ecx, edx
sar ecx, 1
je 0x4704f9
call fcn.00429250
mov ecx, eax
test ecx, ecx
je 0x470ac9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x65c], eax
mov byte [ebp - 4], 0xc
test ebx, ebx
jne 0x470497
lea eax, [ebp - 0x218]
movzx eax, ax
lea ecx, [ebp - 0x65c]
push eax
call fcn.00429d90
jmp 0x4704c2
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4704a0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x65c]
call fcn.0042a060
lea eax, [ebp - 0x65c]
mov byte [ebp - 4], 0xd
push eax
mov ecx, 0x642094
call fcn.004c4d10
mov edx, dword [ebp - 0x65c]
or eax, 0xffffffff
mov byte [ebp - 4], 5
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4704f9
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 0x5b9868
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 0x470526
sub ecx, edx
sar ecx, 1
je 0x47057f
mov ecx, 0x5bbd7c
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470568
test dx, dx
je 0x470564
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470568
add eax, 4
add ecx, 4
test dx, dx
jne 0x470542
xor ecx, ecx
jmp 0x47056d
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x641e28
sete al
push eax
call fcn.0049cee0
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b8734
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 0x4705b0
sub ecx, edx
sar ecx, 1
je 0x470644
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00429250
test eax, eax
je 0x470ad3
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], 0xe
shr ebx, 0x10
test ebx, ebx
jne 0x470607
push dword [ebp - 0x664]
mov ecx, edi
call fcn.00429d90
jmp 0x47062e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470610
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 5
call fcn.0049cbd0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x47064d
lea ebx, [ebp - 0x218]
shr ebx, 0x10
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b8734
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 0x470680
sub ecx, edx
sar ecx, 1
je 0x470709
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00429250
mov ecx, eax
test ecx, ecx
je 0x470ad3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xf
test ebx, ebx
jne 0x4706ce
push dword [ebp - 0x664]
mov ecx, edi
call fcn.00429d90
jmp 0x4706f5
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4706d7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 5
call fcn.0049cf50
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b9868
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 0x470736
sub ecx, edx
sar ecx, 1
je 0x47078f
mov ecx, 0x5bbd7c
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470778
test dx, dx
je 0x470774
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470778
add eax, 4
add ecx, 4
test dx, dx
jne 0x470752
xor ecx, ecx
jmp 0x47077d
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x641e28
sete al
push eax
call fcn.0049cf00
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b9868
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 0x4707c0
sub ecx, edx
sar ecx, 1
je 0x47081d
mov ecx, 0x5bbd7c
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470806
test dx, dx
je 0x470802
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470806
add eax, 4
add ecx, 4
test dx, dx
jne 0x4707e0
xor ecx, ecx
jmp 0x47080b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x641e28
sete al
push eax
call fcn.0049cf10
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b9868
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 0x470850
sub ecx, edx
sar ecx, 1
je 0x4708ad
mov ecx, 0x5bbd7c
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470896
test dx, dx
je 0x470892
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470896
add eax, 4
add ecx, 4
test dx, dx
jne 0x470870
xor ecx, ecx
jmp 0x47089b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x641e28
sete al
push eax
call fcn.0049cef0
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b9868
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 0x4708e0
sub ecx, edx
sar ecx, 1
je 0x47093d
mov ecx, 0x5bbd7c
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470926
test dx, dx
je 0x470922
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470926
add eax, 4
add ecx, 4
test dx, dx
jne 0x470900
xor ecx, ecx
jmp 0x47092b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x641e28
sete al
push eax
call fcn.0049cf30
push 1
mov ecx, 0x641e28
call fcn.0049cc40
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
or ebx, 0xffffffff
jmp 0x470a58
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00560a80
push 0x104
lea eax, [ebp - 0x628]
push eax
push 0x1a
call fcn.0047ca90
lea eax, [ebp - 0x660]
push eax
call fcn.004b5470
add esp, 0x1c
mov eax, dword [ebp - 0x660]
mov byte [ebp - 4], 0x10
cmp dword [eax - 0xc], 0
je 0x4709b4
lea eax, [ebp - 0x660]
mov ecx, 0x642094
push eax
call fcn.004c4d10
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00429250
mov ecx, eax
test ecx, ecx
je 0x470add
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp - 0x628]
mov byte [ebp - 4], 0x11
test eax, 0xffff0000
jne 0x4709f4
movzx eax, ax
mov ecx, edi
push eax
call fcn.00429d90
jmp 0x470a1e
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470a00
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a060
mov ecx, 0x641e28
mov byte [ebp - 4], 0x10
call fcn.0049cc50
push 0
mov ecx, 0x641e28
call fcn.0049cc40
mov edx, dword [ebp - 0x660]
or ebx, 0xffffffff
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x470a58
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x668]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x470a75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x470a8a
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.0055c3a9
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00429b60
push 0x80004005
call fcn.00429b60
call fcn.0056af64
push 0x80004005
call fcn.00429b60
push 0x80004005
call fcn.00429b60
push 0x80004005
call fcn.00429b60
push 0x80004005
call fcn.00429b60
int3