Function at 0x47bd86
Capabilities:
Create directory

Disassembly:
push 0x48
mov eax, 0x51fba6
call fcn.004d8abf
mov bl, dl
mov edi, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], 4
mov eax, dword [ebp + 0x10]
cmp dword [eax - 0xc], 0
jne 0x47bdcc
push 0x2649
push 0x80004005
push ecx
mov ecx, esp
push str.Invalid_path._Installer_might_be_out_of_date.
call fcn.00406fea
mov ecx, edi
call fcn.00406620
jmp 0x47c05b
lea ecx, [ebp - 0x1c]
call fcn.004282f6
mov esi, eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.004283a1
push esi
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x14]
call fcn.0040a037
pop ecx
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00407189
push 0
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x47be62
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x2653
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x54]
call fcn.00406620
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x4c]
jmp 0x47c048
push dword [ebp + 0x38]
lea eax, [ebp + 0x18]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.004044ab
push dword [ebp + 0x24]
mov byte [ebp - 4], 0xb
push dword [ebp + 0x20]
push ecx
mov esi, esp
mov dword [ebp - 0x2c], esp
mov dword [ebp - 0x30], esi
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 0xc
mov esi, esp
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
mov dword [ebp - 0x30], esp
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 0xd
mov esi, esp
mov dword [ebp - 0x38], esi
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov dword [ebp - 0x34], esp
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 0xe
mov esi, esp
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov dword [ebp - 0x38], esp
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 0xf
mov esi, esp
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x48]
mov dword [esi], eax
mov dl, bl
mov byte [ebp - 4], 9
call fcn.004798a8
add esp, 0x38
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x48], 0x80004004
jne 0x47bfef
cmp dword [ebp + 0x34], 0
jne 0x47bfef
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0xd], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x11
and dword [ebp - 0x1c], 0
call fcn.0044f24f
mov ecx, eax
mov eax, dword [ecx + 0x1b0]
sub eax, dword [ecx + 0x1ac]
mov ecx, 0xa8
cdq
idiv ecx
test eax, eax
je 0x47bfe3
mov edi, dword [ebp - 0x1c]
xor ebx, ebx
call fcn.0044f24f
push ecx
push ecx
xor edx, edx
mov dword [ebp - 0x3c], esp
mov esi, dword [eax + 0x1ac]
mov eax, esp
mov ecx, esp
add esi, ebx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [ecx], edx
mov dword [ecx + 4], edx
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x12
push str.Canceled
call fcn.00406fea
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.0044ef0e
mov esi, 0xa8
inc edi
add ebx, esi
call fcn.0044f24f
mov ecx, eax
mov eax, dword [ecx + 0x1b0]
sub eax, dword [ecx + 0x1ac]
cdq
idiv esi
cmp edi, eax
jb 0x47bf80
mov edi, dword [ebp - 0x20]
lea ecx, [ebp - 0xd]
mov byte [ebp - 4], 0x10
call fcn.0044f694
push ecx
mov esi, esp
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
xor ecx, ecx
mov dword [esi], eax
call fcn.00428b15
pop ecx
test eax, eax
jns 0x47c03a
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
push ecx
mov esi, esp
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
xor ecx, ecx
mov dword [esi], eax
call fcn.00428b15
pop ecx
lea eax, [ebp - 0x48]
mov ecx, edi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x47c093
call fcn.00405adf
mov eax, edi
call fcn.004d8a8d
ret