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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59dbe5
mov eax, dword fs:[0]
push eax
sub esp, 0x660
mov eax, dword [0x63434c]
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.0055c530
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0055c530
add esp, 0x18
mov dword [ebp - 4], 0
call fcn.004291f0
mov ecx, eax
test ecx, ecx
je 0x470e76
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.0051ca90
add esp, 4
mov edi, eax
cmp dword [edi + 0x14], 8
mov byte [ebp - 4], 2
jb 0x47029f
mov edi, dword [edi]
call fcn.004291f0
mov ecx, eax
test ecx, ecx
je 0x470e80
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 0x4702f3
test edi, 0xffff0000
jne 0x4702dd
movzx eax, di
lea ecx, [ebp - 0x668]
push eax
call fcn.00429d30
jmp 0x470302
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4702e2
sub ecx, edx
sar ecx, 1
jmp 0x4702f5
xor ecx, ecx
push ecx
push edi
lea ecx, [ebp - 0x668]
call fcn.0042a000
mov edx, dword [ebp - 0x62c]
mov byte [ebp - 4], 5
cmp edx, 8
jb 0x470346
mov ecx, dword [ebp - 0x640]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x47033c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x470e8a
push edx
push ecx
call fcn.00558004
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.0047f130
add esp, 4
lea ecx, [ebp - 0x668]
push 0x11
push str.tempuninstall.ini
call fcn.00429970
push dword [ebp - 0x668]
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0056b39c
add esp, 0xc
push dword [ebp - 0x668]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x470d2e
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b3734
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 0x4703e5
sub ecx, edx
sar ecx, 1
je 0x470484
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.004291f0
test eax, eax
je 0x470ea3
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 0x470446
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00429d30
jmp 0x47046e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470450
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 5
call fcn.0049c370
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x470493
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 0x5b3734
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 0x4704c0
sub ecx, edx
sar ecx, 1
je 0x470549
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.004291f0
test eax, eax
je 0x470ea3
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 0x47050e
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00429d30
jmp 0x470535
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470517
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 5
call fcn.0049c2f0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b3734
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 0x470576
sub ecx, edx
sar ecx, 1
je 0x47063f
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x658]
push eax
call fcn.00524940
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.004291f0
mov ecx, eax
test ecx, ecx
je 0x470e8f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 9
test edi, edi
je 0x470611
test edi, 0xffff0000
jne 0x4705f7
movzx eax, di
mov ecx, ebx
push eax
call fcn.00429d30
jmp 0x47061c
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470600
sub ecx, edx
sar ecx, 1
jmp 0x470613
xor ecx, ecx
push ecx
push edi
mov ecx, ebx
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 8
call fcn.0049c410
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 5
call fcn.0042aad0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b3734
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 0x470670
sub ecx, edx
sar ecx, 1
je 0x470717
push ecx
mov edi, esp
mov dword [ebp - 0x65c], edi
call fcn.004291f0
test eax, eax
je 0x470ea3
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 0x4706ce
push eax
mov ecx, edi
call fcn.00429d30
jmp 0x470701
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.0042a000
mov edi, dword [ebp - 0x664]
mov dword [ebp - 0x664], edi
mov ecx, 0x63cd10
mov byte [ebp - 4], 5
call fcn.0049c480
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x47072c
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 0x5b3734
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 0x470760
sub ecx, edx
sar ecx, 1
je 0x4707e9
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.004291f0
test eax, eax
je 0x470ea3
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 0x4707ae
lea eax, [ebp - 0x218]
mov ecx, edi
movzx eax, ax
push eax
call fcn.00429d30
jmp 0x4707d5
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4707b7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 5
call fcn.0049c740
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b3734
push 0x5b7370
push str.install
call edi
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470816
sub ecx, edx
sar ecx, 1
je 0x4708c9
call fcn.004291f0
mov ecx, eax
test ecx, ecx
je 0x470e99
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 0x470867
lea eax, [ebp - 0x218]
movzx eax, ax
lea ecx, [ebp - 0x65c]
push eax
call fcn.00429d30
jmp 0x470892
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470870
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x65c]
call fcn.0042a000
lea eax, [ebp - 0x65c]
mov byte [ebp - 4], 0xd
push eax
mov ecx, 0x63cf7c
call fcn.004c4260
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 0x4708c9
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 0x5b4868
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 0x4708f6
sub ecx, edx
sar ecx, 1
je 0x47094f
mov ecx, 0x5b6e0c
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470938
test dx, dx
je 0x470934
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470938
add eax, 4
add ecx, 4
test dx, dx
jne 0x470912
xor ecx, ecx
jmp 0x47093d
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x63cd10
sete al
push eax
call fcn.0049c580
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b3734
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 0x470980
sub ecx, edx
sar ecx, 1
je 0x470a14
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.004291f0
test eax, eax
je 0x470ea3
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 0x4709d7
push dword [ebp - 0x664]
mov ecx, edi
call fcn.00429d30
jmp 0x4709fe
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4709e0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 5
call fcn.0049c270
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x470a1d
lea ebx, [ebp - 0x218]
shr ebx, 0x10
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b3734
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 0x470a50
sub ecx, edx
sar ecx, 1
je 0x470ad9
push ecx
mov edi, esp
mov dword [ebp - 0x660], edi
call fcn.004291f0
mov ecx, eax
test ecx, ecx
je 0x470ea3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xf
test ebx, ebx
jne 0x470a9e
push dword [ebp - 0x664]
mov ecx, edi
call fcn.00429d30
jmp 0x470ac5
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470aa7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 5
call fcn.0049c5f0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b4868
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 0x470b06
sub ecx, edx
sar ecx, 1
je 0x470b5f
mov ecx, 0x5b6e0c
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470b48
test dx, dx
je 0x470b44
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470b48
add eax, 4
add ecx, 4
test dx, dx
jne 0x470b22
xor ecx, ecx
jmp 0x470b4d
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x63cd10
sete al
push eax
call fcn.0049c5a0
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b4868
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 0x470b90
sub ecx, edx
sar ecx, 1
je 0x470bed
mov ecx, 0x5b6e0c
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470bd6
test dx, dx
je 0x470bd2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470bd6
add eax, 4
add ecx, 4
test dx, dx
jne 0x470bb0
xor ecx, ecx
jmp 0x470bdb
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x63cd10
sete al
push eax
call fcn.0049c5b0
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b4868
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 0x470c20
sub ecx, edx
sar ecx, 1
je 0x470c7d
mov ecx, 0x5b6e0c
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470c66
test dx, dx
je 0x470c62
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470c66
add eax, 4
add ecx, 4
test dx, dx
jne 0x470c40
xor ecx, ecx
jmp 0x470c6b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x63cd10
sete al
push eax
call fcn.0049c590
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x5b4868
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 0x470cb0
sub ecx, edx
sar ecx, 1
je 0x470d0d
mov ecx, 0x5b6e0c
lea eax, [ebp - 0x218]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x470cf6
test dx, dx
je 0x470cf2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x470cf6
add eax, 4
add ecx, 4
test dx, dx
jne 0x470cd0
xor ecx, ecx
jmp 0x470cfb
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, 0x63cd10
sete al
push eax
call fcn.0049c5d0
push 1
mov ecx, 0x63cd10
call fcn.0049c2e0
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
or ebx, 0xffffffff
jmp 0x470e28
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.0055c530
push 0x104
lea eax, [ebp - 0x628]
push eax
push 0x1a
call fcn.0047ca40
lea eax, [ebp - 0x660]
push eax
call fcn.004b49e0
add esp, 0x1c
mov eax, dword [ebp - 0x660]
mov byte [ebp - 4], 0x10
cmp dword [eax - 0xc], 0
je 0x470d84
lea eax, [ebp - 0x660]
mov ecx, 0x63cf7c
push eax
call fcn.004c4260
push ecx
mov edi, esp
mov dword [ebp - 0x664], edi
call fcn.004291f0
mov ecx, eax
test ecx, ecx
je 0x470ead
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 0x470dc4
movzx eax, ax
mov ecx, edi
push eax
call fcn.00429d30
jmp 0x470dee
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x470dd0
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0042a000
mov ecx, 0x63cd10
mov byte [ebp - 4], 0x10
call fcn.0049c2f0
push 0
mov ecx, 0x63cd10
call fcn.0049c2e0
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 0x470e28
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 0x470e45
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 0x470e5a
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.00557e89
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00429b00
push 0x80004005
call fcn.00429b00
call fcn.00566a14
push 0x80004005
call fcn.00429b00
push 0x80004005
call fcn.00429b00
push 0x80004005
call fcn.00429b00
push 0x80004005
call fcn.00429b00
int3