Function at 0x41d890
Capabilities:
Create directory
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50a6c7
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x54112c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x18
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.update_api_query_success
mov byte [ecx], 0
call fcn.0040e880
sub esp, 0x18
mov dword [ebp - 4], 0
mov ecx, esp
push 7
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.install
mov byte [ecx], 0
call fcn.0040e880
lea ecx, [edi + 0x84]
mov dword [ebp - 4], 0xffffffff
call fcn.0040ac70
mov esi, dword [edi + 0x184]
mov dword [edi + 0x184], 0
test esi, esi
je 0x41d940
mov ecx, esi
call fcn.00401ce0
push 0x24
push esi
call fcn.0048bf7f
add esp, 8
lea eax, [ebp - 0x14]
push eax
call fcn.0041b8f0
add esp, 4
push 0
push dword [ebp - 0x14]
mov dword [ebp - 4], 1
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 0xffffffff
sub eax, 0
je 0x41dabb
sub eax, 0x50
je 0x41da12
sub eax, 0x67
je 0x41da12
push str._n_nMake_sure_to_run_the_installer_as_administrator.
lea ecx, [ebp - 0x18]
call fcn.00418950
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x20]
push str.Could_not_create_path:_n
push eax
call fcn.0041a5a0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
push ecx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0041a450
add esp, 0x18
push 0
push str.Error
push dword [eax]
push dword [edi + 4]
call ebx
mov edx, dword [ebp - 0x1c]
or esi, esi
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d9e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, esi
mov byte [ebp - 4], 4
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41da06
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
mov byte [ebp - 4], 1
jmp 0x41daee
push str._n_nDo_you_want_to_proceed_with_the_installation_anyway_
lea ecx, [ebp - 0x18]
call fcn.00418950
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x1c]
push str.The_installation_path_already_exists:_n
push eax
call fcn.0041a5a0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041a450
add esp, 0x18
push 4
push str.Warning
push dword [eax]
push dword [edi + 4]
call ebx
mov edx, dword [ebp - 0x20]
cmp eax, 7
mov eax, esi
sete byte [ebp - 0xd]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41da79
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, esi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41da97
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41dab5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
jne 0x41db05
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryW]
test eax, eax
jne 0x41db13
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push str.Could_not_use_path:_n
push eax
call fcn.0041a5a0
add esp, 0xc
push 0
push str.Error
push dword [eax]
push dword [edi + 4]
call ebx
mov edx, dword [ebp - 0x20]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41db05
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
mov ecx, edi
call fcn.00420bb0
jmp 0x41dc62
push 0xc
call fcn.0048bf4f
mov ebx, eax
add esp, 4
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x41dbbd
movzx ecx, byte [edi + 0x81]
push ecx
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x1c], esp
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__lambda_251c42e96e90c1cb1925143c97103c8c___void___.0
mov dword [eax + 4], edi
mov dword [eax + 0x24], eax
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x18], esp
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__lambda_56e634a71086ff653d9258c63d5ba327___void__enum_Downloader::state_.0
mov dword [eax + 4], edi
mov dword [eax + 0x24], eax
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x24], esp
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__lambda_ebf0367a0c1d9b3f43cc34b3664a64b2___void__long_long___int64___long_long___int64__.0
mov dword [eax + 4], edi
mov dword [eax + 0x24], eax
sub esp, 0x18
mov byte [ebp - 4], 9
mov ecx, esp
mov dword [ebp - 0x28], esp
xor eax, eax
push 0xb
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
push str.ReasonAV.7z
mov word [ecx], ax
call fcn.004235b0
sub esp, 0x18
mov byte [ebp - 4], 0xa
lea eax, [edi + 0x188]
mov ecx, esp
push eax
call fcn.00401770
mov ecx, ebx
mov byte [ebp - 4], 6
call fcn.00402bf0
mov ebx, eax
jmp 0x41dbbf
xor ebx, ebx
lea ecx, [edi + 0x1a0]
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2c]
cmp ecx, eax
je 0x41dbe9
mov eax, dword [ecx]
mov dword [ebp - 0x20], eax
mov dword [ecx], ebx
test eax, eax
je 0x41dbff
mov ecx, eax
call fcn.00403110
push 0xc
push dword [ebp - 0x20]
jmp 0x41dbf7
test ebx, ebx
je 0x41dbff
mov ecx, ebx
call fcn.00403110
push 0xc
push ebx
call fcn.0048bf7f
add esp, 8
push 2
mov ecx, edi
call fcn.00420bb0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0xe
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.download_start
mov byte [ecx], 0
call fcn.0040e880
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, esp
push 7
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.install
mov byte [ecx], 0
call fcn.0040e880
lea ecx, [edi + 0x84]
mov byte [ebp - 4], 1
call fcn.0040ac70
mov edx, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x41dc81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc