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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x599740
mov eax, dword fs:[0]
push eax
sub esp, 0x660
mov eax, dword [0x62819c]
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.0054b380
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0054b380
add esp, 0x18
call fcn.00428a90
mov ecx, eax
test ecx, ecx
je 0x46c625
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.00515e10
add esp, 4
mov edi, eax
cmp dword [edi + 0x14], 8
mov byte [ebp - 4], 1
jb 0x46ba38
mov edi, dword [edi]
call fcn.00428a90
mov ecx, eax
test ecx, ecx
je 0x46c62f
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 0x46ba91
test edi, 0xffff0000
jne 0x46ba76
movzx eax, di
lea ecx, [ebp - 0x668]
push eax
call fcn.004295b0
jmp 0x46baa0
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x46ba80
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46ba80
sub ecx, edx
sar ecx, 1
jmp 0x46ba93
xor ecx, ecx
push ecx
push edi
lea ecx, [ebp - 0x668]
call fcn.00429870
mov edx, dword [ebp - 0x62c]
mov byte [ebp - 4], 4
cmp edx, 8
jb 0x46bae4
mov ecx, dword [ebp - 0x640]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x46bada
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46c639
push edx
push ecx
call fcn.00546044
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.00479790
add esp, 4
lea ecx, [ebp - 0x668]
push 0x11
push str.tempuninstall.ini
call fcn.00429240
push dword [ebp - 0x668]
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.00559d1c
add esp, 0xc
push dword [ebp - 0x668]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46c4ce
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ac698
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 0x46bb83
sub ecx, edx
sar ecx, 1
je 0x46bc24
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00428a90
test eax, eax
je 0x46c652
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 0x46bbe4
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.004295b0
jmp 0x46bc0e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bbf0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 4
call fcn.00493410
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x46bc33
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 0x5ac698
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 0x46bc60
sub ecx, edx
sar ecx, 1
je 0x46bce9
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00428a90
test eax, eax
je 0x46c652
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 0x46bcae
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.004295b0
jmp 0x46bcd5
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bcb7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 4
call fcn.00493390
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ac698
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 0x46bd16
sub ecx, edx
sar ecx, 1
je 0x46bddf
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x658]
push eax
call fcn.005160f0
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.00428a90
mov ecx, eax
test ecx, ecx
je 0x46c63e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 8
test edi, edi
je 0x46bdb1
test edi, 0xffff0000
jne 0x46bd97
movzx eax, di
mov ecx, ebx
push eax
call fcn.004295b0
jmp 0x46bdbc
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bda0
sub ecx, edx
sar ecx, 1
jmp 0x46bdb3
xor ecx, ecx
push ecx
push edi
mov ecx, ebx
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 7
call fcn.004934b0
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 4
call fcn.0042a1f0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ac698
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 0x46be10
sub ecx, edx
sar ecx, 1
je 0x46beba
push ecx
mov edi, esp
mov dword [ebp - 0x65c], edi
call fcn.00428a90
test eax, eax
je 0x46c652
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 0x46be6e
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
mov dword [ebp - 0x664], eax
call fcn.004295b0
jmp 0x46bea4
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46be77
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
lea eax, [ebp - 0x218]
movzx edi, ax
mov dword [ebp - 0x664], edi
mov ecx, 0x6319b8
mov byte [ebp - 4], 4
call fcn.00493520
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x46becf
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 0x5ac698
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 0x46bf00
sub ecx, edx
sar ecx, 1
je 0x46bf89
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00428a90
test eax, eax
je 0x46c652
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 0x46bf4e
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.004295b0
jmp 0x46bf75
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bf57
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 4
call fcn.004937e0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ac698
push 0x5b0750
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bfb6
sub ecx, edx
sar ecx, 1
je 0x46c069
call fcn.00428a90
mov ecx, eax
test ecx, ecx
je 0x46c648
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 0x46c007
lea eax, [ebp - 0x218]
movzx eax, ax
lea ecx, [ebp - 0x65c]
push eax
call fcn.004295b0
jmp 0x46c032
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46c010
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x65c]
call fcn.00429870
lea eax, [ebp - 0x65c]
mov byte [ebp - 4], 0xc
push eax
mov ecx, 0x631c24
call fcn.004bad70
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 0x46c069
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 0x5ad78c
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 0x46c096
sub ecx, edx
sar ecx, 1
je 0x46c0ef
mov ecx, 0x5b01ec
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46c0d8
test dx, dx
je 0x46c0d4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46c0d8
add eax, 4
add ecx, 4
test dx, dx
jne 0x46c0b2
xor ecx, ecx
jmp 0x46c0dd
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x6319b8
sete al
push eax
call fcn.00493620
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ac698
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 0x46c120
sub ecx, edx
sar ecx, 1
je 0x46c1b4
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00428a90
test eax, eax
je 0x46c652
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 0x46c177
push dword [ebp - 0x664]
mov ecx, edi
call fcn.004295b0
jmp 0x46c19e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46c180
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 4
call fcn.00493310
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x46c1bd
lea ebx, [ebp - 0x218]
shr ebx, 0x10
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ac698
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 0x46c1f0
sub ecx, edx
sar ecx, 1
je 0x46c279
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.00428a90
mov ecx, eax
test ecx, ecx
je 0x46c652
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xe
test ebx, ebx
jne 0x46c23e
push dword [ebp - 0x664]
mov ecx, edi
call fcn.004295b0
jmp 0x46c265
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46c247
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 4
call fcn.00493690
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ad78c
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 0x46c2a6
sub ecx, edx
sar ecx, 1
je 0x46c2ff
mov ecx, 0x5b01ec
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46c2e8
test dx, dx
je 0x46c2e4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46c2e8
add eax, 4
add ecx, 4
test dx, dx
jne 0x46c2c2
xor ecx, ecx
jmp 0x46c2ed
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x6319b8
sete al
push eax
call fcn.00493640
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ad78c
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 0x46c330
sub ecx, edx
sar ecx, 1
je 0x46c38d
mov ecx, 0x5b01ec
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46c376
test dx, dx
je 0x46c372
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46c376
add eax, 4
add ecx, 4
test dx, dx
jne 0x46c350
xor ecx, ecx
jmp 0x46c37b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x6319b8
sete al
push eax
call fcn.00493650
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ad78c
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 0x46c3c0
sub ecx, edx
sar ecx, 1
je 0x46c41d
mov ecx, 0x5b01ec
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46c406
test dx, dx
je 0x46c402
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46c406
add eax, 4
add ecx, 4
test dx, dx
jne 0x46c3e0
xor ecx, ecx
jmp 0x46c40b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x6319b8
sete al
push eax
call fcn.00493630
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5ad78c
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 0x46c450
sub ecx, edx
sar ecx, 1
je 0x46c4ad
mov ecx, 0x5b01ec
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46c496
test dx, dx
je 0x46c492
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46c496
add eax, 4
add ecx, 4
test dx, dx
jne 0x46c470
xor ecx, ecx
jmp 0x46c49b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x6319b8
sete al
push eax
call fcn.00493670
push 1
mov ecx, 0x6319b8
call fcn.00493380
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
or ebx, 0xffffffff
jmp 0x46c5cc
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.0054b380
push 0x104
lea eax, [ebp - 0x628]
push eax
push 0x1a
call fcn.00477420
lea eax, [ebp - 0x660]
push eax
call fcn.004ab040
add esp, 0x1c
mov eax, dword [ebp - 0x660]
mov byte [ebp - 4], 0xf
cmp dword [eax - 0xc], 0
je 0x46c524
lea eax, [ebp - 0x660]
mov ecx, 0x631c24
push eax
call fcn.004bad70
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.00428a90
mov ecx, eax
test ecx, ecx
je 0x46c65c
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 0x46c564
movzx eax, ax
mov ecx, edi
push eax
call fcn.004295b0
jmp 0x46c58e
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46c570
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00429870
mov ecx, 0x6319b8
mov byte [ebp - 4], 0xf
call fcn.00493390
push 0
mov ecx, 0x6319b8
call fcn.00493380
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 0x46c5cc
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 0x46c5ed
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 0x46c609
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.00545ec7
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004293d0
push 0x80004005
call fcn.004293d0
call fcn.00555394
push 0x80004005
call fcn.004293d0
push 0x80004005
call fcn.004293d0
push 0x80004005
call fcn.004293d0
push 0x80004005
call fcn.004293d0
int3