Function at 0x18089e1e
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x248
mov eax, dword [0x180f51f0]
xor eax, ebp
mov dword [ebp - 8], eax
and dword [ebp - 0x218], 0
movzx ecx, byte [0x180fb8f9]
push ebx
push esi
neg ecx
push edi
sbb ecx, ecx
and ecx, 0x180fbba0
push 2
pop esi
je 0x18089e83
push esi
push esi
mov dword [ebp - 0x230], ecx
call fcn.18001d8a
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x230]
push str._SetupFiles::Uninstall_
push eax
mov dword [ebp - 0x228], esi
mov dword [ebp - 0x224], esi
call fcn.18001000
pop ecx
pop ecx
lea eax, [ebp - 0x234]
call fcn.18008a22
mov edi, dword [eax]
xor eax, eax
mov word [ebp - 0x214], ax
test edi, edi
je 0x18089ebb
cmp word [edi], ax
je 0x18089ebb
lea eax, [ebp - 0x214]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push edi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
call fcn.18004250
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x18089eed
mov dword [ebp - 0x218], 1
call fcn.1806dbba
lea eax, [ebp - 0x240]
call fcn.1806e123
jmp 0x18089f03
mov dword [ebp - 0x218], esi
call fcn.1806dbba
lea eax, [ebp - 0x23c]
call fcn.1806de9e
mov eax, dword [eax]
sub eax, 0x10
call fcn.18003d67
mov edi, eax
add edi, 0x10
test byte [ebp - 0x218], 2
mov dword [ebp - 0x234], edi
je 0x18089f36
mov eax, dword [ebp - 0x23c]
and dword [ebp - 0x218], 0xfffffffd
add eax, 0xfffffff0
call fcn.18004250
test byte [ebp - 0x218], 1
push 0xfffffffffffffffe
pop ebx
je 0x18089f56
mov eax, dword [ebp - 0x240]
and dword [ebp - 0x218], ebx
add eax, 0xfffffff0
call fcn.18004250
push edi
call fcn.18004ff6
pop ecx
mov dword [ebp - 0x21c], eax
mov edi, str._DeleteDirectory_failed___s__0x_08x_
test eax, eax
jge 0x18089fc3
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1808a1c5
push ebx
push esi
mov dword [ebp - 0x230], ecx
call fcn.18001d8a
push dword [ebp - 0x21c]
mov dword [ebp - 0x22c], eax
push dword [ebp - 0x234]
lea eax, [ebp - 0x230]
push edi
push eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], esi
call fcn.18001000
add esp, 0x10
jmp 0x1808a1c5
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x18089fe4
or dword [ebp - 0x218], 4
call fcn.1806dbba
lea eax, [ebp - 0x244]
call fcn.1806e06f
jmp 0x18089ffb
or dword [ebp - 0x218], 8
call fcn.1806dbba
lea eax, [ebp - 0x248]
call fcn.1806ddae
mov eax, dword [eax]
sub eax, 0x10
call fcn.18003d67
add eax, 0x10
test byte [ebp - 0x218], 8
mov dword [ebp - 0x220], eax
je 0x1808a02c
mov eax, dword [ebp - 0x248]
and dword [ebp - 0x218], 0xfffffff7
add eax, 0xfffffff0
call fcn.18004250
test byte [ebp - 0x218], 4
je 0x1808a043
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
call fcn.18004250
push dword [ebp - 0x220]
call fcn.18004ff6
pop ecx
mov dword [ebp - 0x21c], eax
test eax, eax
jge 0x1808a0a7
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1808a0a7
push ebx
push esi
mov dword [ebp - 0x230], ecx
call fcn.18001d8a
push dword [ebp - 0x21c]
mov dword [ebp - 0x22c], eax
push dword [ebp - 0x220]
lea eax, [ebp - 0x230]
push edi
push eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], esi
call fcn.18001000
add esp, 0x10
mov eax, dword [ebp + 8]
cmp byte [eax], 0
jne 0x1808a1b7
call fcn.1806dbba
lea eax, [ebp - 0x238]
call fcn.1806de62
push dword [ebp - 0x238]
call fcn.18004ff6
pop ecx
mov dword [ebp - 0x21c], eax
test eax, eax
jge 0x1808a127
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1808a127
push ebx
push esi
mov dword [ebp - 0x230], ecx
call fcn.18001d8a
push dword [ebp - 0x21c]
mov dword [ebp - 0x22c], eax
push dword [ebp - 0x238]
lea eax, [ebp - 0x230]
push edi
push eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], esi
call fcn.18001000
add esp, 0x10
call fcn.1806dbba
lea eax, [ebp - 0x218]
call fcn.1806ddea
push dword [ebp - 0x218]
call fcn.18004ff6
pop ecx
mov dword [ebp - 0x21c], eax
test eax, eax
jge 0x1808a19b
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1808a19b
push ebx
push esi
mov dword [ebp - 0x230], ecx
call fcn.18001d8a
push dword [ebp - 0x21c]
mov dword [ebp - 0x22c], eax
push dword [ebp - 0x218]
lea eax, [ebp - 0x230]
push edi
push eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], esi
call fcn.18001000
add esp, 0x10
mov eax, dword [ebp - 0x218]
add eax, 0xfffffff0
call fcn.18004250
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
call fcn.18004250
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
call fcn.18004250
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x1808a299
movzx esi, byte [0x180fb8f9]
neg esi
sbb esi, esi
and esi, 0x180fbba0
push dword [esi + 0xd4]
mov ecx, esi
call fcn.1800222c
test al, al
je 0x1808a214
mov ecx, dword [esi + 0xd4]
test ecx, ecx
je 0x1808a204
mov eax, dword [ecx]
push 1
call dword [eax + 4]
cmp dword [esi + 0x94], 0
jne 0x1808a214
mov ecx, esi
call fcn.18001ca5
call fcn.1806dbba
lea eax, [ebp - 0x220]
call fcn.1806e0e7
push dword [ebp - 0x220]
call fcn.18004ff6
pop ecx
mov dword [ebp - 0x21c], eax
test eax, eax
jge 0x1808a28b
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1808a28b
push ebx
push 2
pop esi
push esi
mov dword [ebp - 0x230], ecx
call fcn.18001d8a
push dword [ebp - 0x21c]
mov dword [ebp - 0x22c], eax
push dword [ebp - 0x220]
lea eax, [ebp - 0x230]
push edi
push eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], esi
call fcn.18001000
add esp, 0x10
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
call fcn.18004250
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
call fcn.18004250
cmp word [ebp - 0x214], 0
je 0x1808a2be
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1809ccb5
leave
ret 4