Function at 0x4094ce
Capabilities:
Set current directory

Disassembly:
mov eax, 0x8dec
call fcn.00409f60
mov eax, dword [0x42a664]
xor eax, esp
mov dword [esp + 0x8de8], eax
push ebx
push ebp
mov ebp, 0x800
lea eax, [esp + 0x25f0]
push ebp
push eax
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ebp
lea eax, [esp + 0x25f4]
push eax
lea eax, [esp + 0x35f8]
push eax
call fcn.00406e4c
lea eax, [esp + 0x35f0]
push 0x5c
push eax
call fcn.0040c11b
pop ecx
pop ecx
test eax, eax
je 0x409ac6
lea ecx, [esp + 0x35f0]
cmp eax, ecx
jbe 0x409548
cmp word [eax - 2], 0x3a
jne 0x409548
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x40954d
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x35f0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ebp
lea eax, [esp + 0x35f4]
push eax
call fcn.00404d86
mov ebp, 0x13f2
cmp byte [0x434260], bl
jne 0x40959c
push 0x10024
push ebp
call fcn.00406967
push eax
push 0x13f5
call fcn.00406967
push eax
push ebx
call fcn.00408961
cmp eax, 6
jne 0x409ac6
push esi
push edi
push 0x42252c
mov esi, str.Uninstall.lst
push esi
call fcn.0040438e
mov edi, eax
test edi, edi
jne 0x4095ee
push esi
push 0x13f6
call fcn.00406967
push eax
lea eax, [esp + 0x70]
push 0xc8
push eax
call fcn.00403379
add esp, 0x10
push 0x10010
push ebp
call fcn.00406967
push eax
lea eax, [esp + 0x70]
push eax
push ebx
call fcn.00408961
jmp 0x409ac4
mov esi, 0x100
push esi
push 0x13fc
call fcn.00406967
push eax
lea eax, [esp + 0x400]
push eax
call fcn.00406e4c
push esi
push ebp
call fcn.00406967
push eax
lea eax, [esp + 0x200]
push eax
call fcn.00406e4c
call fcn.00408b63
mov ecx, 0x42d000
call fcn.004069e9
cmp byte [0x434261], bl
jne 0x409ac4
mov esi, ebx
push ebx
push dword [esi + 0x42a654]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [esi + 0x42a654]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 4
cmp esi, 8
jb 0x40963e
mov byte [esp + 0x13], bl
push edi
lea eax, [esp + 0xdfc]
xor ebp, ebp
push 0x800
push eax
call fcn.00410ece
add esp, 0xc
test eax, eax
je 0x409877
lea eax, [esp + 0xdf8]
push eax
call fcn.00410000
pop ecx
jmp 0x4096b6
mov cl, byte [esp + eax + 0xdf8]
cmp cl, 0xd
je 0x4096ae
cmp cl, 0xa
je 0x4096ae
cmp cl, 0x20
je 0x4096ae
cmp cl, 9
jne 0x4096bb
mov byte [esp + eax + 0xdf8], 0
sub eax, 1
jns 0x409693
cmp byte [esp + 0xdf8], 0
je 0x409751
mov ebx, 0x800
lea eax, [esp + 0x35f8]
push ebx
push eax
lea eax, [esp + 0x1600]
push eax
call fcn.00406e4c
lea eax, [esp + 0x15f8]
push eax
call fcn.0040d948
pop ecx
sub ebx, eax
lea ecx, [esp + 0x15f8]
push ebx
lea eax, [ecx + eax*2]
push eax
lea eax, [esp + 0xe00]
push eax
call fcn.004070c9
lea eax, [esp + 0x15f8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
lea eax, [esp + 0x15f8]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp ebx, 0xffffffff
je 0x409787
test bl, 0x10
je 0x409787
lea eax, [esp + 0x15f8]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
neg eax
sbb eax, eax
neg eax
add ebp, eax
mov bl, byte [esp + 0x13]
push edi
lea eax, [esp + 0xdfc]
push 0x800
push eax
call fcn.00410ece
add esp, 0xc
test eax, eax
jne 0x409683
test ebp, ebp
je 0x409877
push eax
push eax
push edi
call fcn.00411193
add esp, 0xc
jmp 0x409663
lea eax, [esp + 0x15f8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor ecx, ecx
test eax, eax
setne cl
add ebp, ecx
test eax, eax
jne 0x40974d
cmp ebx, 0xffffffff
je 0x40974d
lea eax, [esp + 0x15f8]
push eax
call fcn.004052a6
mov esi, eax
lea eax, [esp + 0x25f8]
push eax
call fcn.004052a6
push eax
push esi
call fcn.004073da
test eax, eax
je 0x40974d
push str.Uninstall.lst
push esi
call fcn.004073da
test eax, eax
je 0x40974d
mov bl, 1
xor esi, esi
mov byte [esp + 0x13], bl
push esi
lea eax, [esp + 0x15fc]
push eax
push str._s._u.tmp
lea eax, [esp + 0x4604]
push 0x800
push eax
call fcn.00403379
add esp, 0x14
lea eax, [esp + 0x45f8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40982c
inc esi
cmp esi, 0x3e8
jb 0x4097ed
lea eax, [esp + 0x45f8]
push eax
lea eax, [esp + 0x15fc]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x409860
push 0x800
lea eax, [esp + 0x15fc]
push eax
lea eax, [esp + 0x4600]
push eax
call fcn.00406e4c
push 4
push 0
lea eax, [esp + 0x4600]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x409751
push edi
call fcn.0040fb38
mov dword [esp], str.Uninstall.lst
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esp + 0x6df8]
mov ebp, 0x800
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test bl, bl
je 0x4098f6
xor ebx, ebx
cmp byte [0x434260], bl
jne 0x4098f8
push 0x10040
lea eax, [esp + 0x1fc]
push eax
lea eax, [esp + 0x400]
push eax
push ebx
call fcn.00408961
push 0x420744
lea eax, [esp + 0x6dfc]
push eax
call fcn.004052a6
push eax
call fcn.004073da
test eax, eax
jne 0x4098f8
push 4
push ebx
lea eax, [esp + 0x6e00]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x4098f8
xor ebx, ebx
lea eax, [esp + 0x55f8]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ebp
push str.Uninstall_Rar.Bat
lea eax, [esp + 0x5600]
push eax
call fcn.00406e24
push 0x420fe8
lea eax, [esp + 0x55fc]
push eax
call fcn.0040438e
mov esi, eax
test esi, esi
je 0x409ac4
lea eax, [esp + 0x25f8]
mov edi, 0x400
push eax
push str.__s___wait_r_n
lea eax, [esp + 0x600]
push edi
push eax
call fcn.00403379
add esp, 0x10
lea eax, [esp + 0x5f8]
push eax
push esi
call fcn.00409add
lea eax, [esp + 0x25f8]
push eax
lea eax, [esp + 0x6dfc]
push eax
lea eax, [esp + 0x2600]
push eax
push str.del___s__r_nrd___s__r_nif_not_exist___s__goto_done_r_n
lea eax, [esp + 0x608]
push edi
push eax
call fcn.00403379
add esp, 0x18
push 5
pop edi
lea eax, [esp + 0x5f8]
push eax
push esi
call fcn.00409add
sub edi, 1
jne 0x409998
push str.:done_r_n
push esi
call fcn.00409add
cmp byte [0x434260], 0
mov edi, 0x400
jne 0x4099f1
lea eax, [esp + 0x25f8]
push eax
push eax
push str.if_exist___s____s___warning_r_n
lea eax, [esp + 0x604]
push edi
push eax
call fcn.00403379
add esp, 0x14
lea eax, [esp + 0x5f8]
push eax
push esi
call fcn.00409add
lea eax, [esp + 0x55f8]
push eax
push str.del___s__r_n
lea eax, [esp + 0x600]
push edi
push eax
call fcn.00403379
add esp, 0x10
lea eax, [esp + 0x5f8]
push eax
push esi
call fcn.00409add
push esi
call fcn.0040fb38
pop ecx
xor eax, eax
mov word [esp + 0x7df8], ax
lea eax, [esp + 0x7df8]
push ebp
push eax
push str.COMSPEC
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [esp + 0x55f8]
push eax
lea eax, [esp + 0x7dfc]
push eax
push str._s__c___s_
lea eax, [esp + 0x6604]
push edi
push eax
call fcn.00403379
push 0x44
pop esi
push esi
lea eax, [esp + 0x2c]
push ebx
push eax
call fcn.0040aea0
add esp, 0x20
mov dword [esp + 0x14], esi
xor eax, eax
mov dword [esp + 0x40], 1
mov word [esp + 0x44], ax
push 0x42141c
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
push ebx
call fcn.00404d02
neg eax
sbb eax, eax
and eax, 0xfffffff8
add eax, 8
push eax
push 1
push ebx
push ebx
lea eax, [esp + 0x6618]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
pop edi
pop esi
mov ecx, dword [esp + 0x8df0]
pop ebp
pop ebx
xor ecx, esp
call fcn.00409f4a
add esp, 0x8dec
ret