Function at 0x41ae50
Capabilities:
Check if file exists
Create process on windows
Delete file
Get file attributes
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4533c5
mov eax, dword fs:[0]
push eax
sub esp, 0x1d8
mov eax, dword [0x467340]
xor eax, esp
mov dword [esp + 0x1d0], eax
push ebx
push esi
push edi
mov eax, dword [0x467340]
xor eax, esp
push eax
lea eax, [esp + 0x1e8]
mov dword fs:[0], eax
xor edi, edi
mov esi, ecx
mov dword [esp + 0x10], edi
cmp dword [esi + 0x3c], edi
je 0x41b2d1
cmp dword [esi + 0x40], 8
lea ebx, [esi + 0x28]
jb 0x41aeaf
mov eax, dword [ebx + 4]
jmp 0x41aeb2
lea eax, [ebx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41b2d1
test al, 0x10
jne 0x41b2d1
mov ecx, esi
call fcn.0041b420
test al, al
jne 0x41aee2
mov dword [esp + 0x10], 7
jmp 0x41b2d9
push 0x40
lea eax, [esp + 0xdc]
push edi
push eax
call fcn.004375f0
add esp, 0xc
lea ecx, [esp + 0x54]
push ecx
mov dword [esp + 0xd8], 0x44
call fcn.0040a370
push 0x45d160
push ecx
mov dword [esp + 0x1f8], edi
movzx edx, byte [esi + 0x24]
push edx
movzx eax, byte [esi + 0x26]
push ecx
push str._slient_install:_
push ecx
push 0x45d160
push ecx
push eax
push ecx
push str._join_UE_program:_
push ecx
push 0x45d160
push ecx
movzx ecx, byte [esi + 0x25]
push ecx
push ecx
push str._default_browser:_
push ecx
push 0x45d160
push ecx
lea edx, [esi + 8]
push edx
push ecx
push str._install_path:_
push ecx
push 0x45d160
push ecx
push ebx
push ecx
lea eax, [esp + 0xc4]
push 0x45d1fc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0040e2b0
add esp, 0xc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0040e2b0
add esp, 0xc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0041b550
add esp, 4
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0041b550
add esp, 4
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0040e060
add esp, 0xc
push eax
call fcn.0041b550
add esp, 4
push eax
call fcn.0040e060
add esp, 8
lea ecx, [esp + 0x1c4]
lea eax, [esp + 0x54]
call fcn.0040a470
mov byte [esp + 0x1f0], 1
push 0xe
push str..TaskImpl.cpp
lea ecx, [esp + 0x40]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], edi
mov byte [esp + 0x44], 0
call fcn.00406050
push edi
lea ecx, [esp + 0x120]
push ecx
mov ebx, 2
mov ecx, 0x1d8
lea edx, [esp + 0x40]
mov byte [esp + 0x1f8], bl
call fcn.0041f600
mov byte [esp + 0x1f0], 3
cmp dword [esp + 0x1dc], 8
mov ecx, dword [esp + 0x1c8]
jae 0x41b06f
lea ecx, [esp + 0x1c8]
push ecx
push ecx
push 0x45d200
push ecx
add eax, 0x28
push str.PackageInstallTask::Run
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.0041fd00
add esp, 0xc
push eax
call fcn.0041fd00
add esp, 8
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1f0], bl
call fcn.0041f890
cmp dword [esp + 0x50], 0x10
jb 0x41b0c1
mov edx, dword [esp + 0x3c]
push edx
call fcn.004308f5
add esp, 4
xor eax, eax
cmp dword [esp + 0x1dc], 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x18], edi
jae 0x41b0eb
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xd8]
push edx
push edi
push edi
push edi
push edi
push edi
push edi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
cmp eax, edi
je 0x41b154
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x41b154
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x60]
push ecx
push ebx
mov dword [esp + 0x40], eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, edi
jne 0x41b146
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x1c], edi
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
jmp 0x41b15c
mov ecx, dword [esp + 0x18]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x41b15c
mov dword [esp + 0x10], 8
cmp dword [esp + 0x1dc], 8
jb 0x41b176
mov edx, dword [esp + 0x1c8]
push edx
call fcn.004308f5
add esp, 4
mov edx, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 0x1dc], 7
mov dword [esp + 0x1d8], edi
mov word [esp + 0x1c8], ax
mov eax, dword [edx + 4]
lea ecx, [esp + 0xa0]
mov dword [esp + 0x34], ecx
mov dword [esp + eax + 0x54], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov dword [esp + 0x1f0], 4
test byte [esp + 0x98], 1
lea ecx, [esp + 0x58]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x58], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
je 0x41b1e0
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
push eax
call fcn.004308f5
add esp, 4
mov eax, dword [esp + 0x68]
mov dword [eax], edi
mov ecx, dword [esp + 0x78]
mov dword [ecx], edi
mov edx, dword [esp + 0x88]
mov dword [edx], edi
mov eax, dword [esp + 0x6c]
mov dword [eax], edi
mov ecx, dword [esp + 0x7c]
mov dword [ecx], edi
mov edx, dword [esp + 0x8c]
mov dword [edx], edi
and dword [esp + 0x98], 0xfffffffe
mov dword [esp + 0x94], edi
mov dword [esp + 0x58], vtable.std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__.0
mov byte [esp + 0x1f0], 5
mov eax, dword [esp + 0x90]
mov dword [esp + 0x28], eax
cmp eax, edi
je 0x41b289
mov ebx, dword [eax]
cmp ebx, edi
je 0x41b27c
push edi
lea ecx, [esp + 0x18]
call fcn.0042fabb
mov eax, dword [ebx + 4]
cmp eax, edi
jbe 0x41b258
cmp eax, 0xffffffff
jae 0x41b258
dec eax
mov dword [ebx + 4], eax
mov edi, dword [ebx + 4]
neg edi
sbb edi, edi
not edi
lea ecx, [esp + 0x14]
and edi, ebx
call fcn.0042fae3
test edi, edi
je 0x41b27a
mov eax, dword [edi]
mov edx, dword [eax]
push 1
mov ecx, edi
call edx
xor edi, edi
mov eax, dword [esp + 0x28]
push eax
call fcn.004308f5
add esp, 4
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1f0], 4
call fcn.0042f578
mov dword [esp + 0x1f0], 0xffffffff
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 4]
lea eax, [esp + 0xa0]
mov dword [esp + edx + 0x54], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
push eax
mov dword [esp + 0xa4], vtable.std::ios_base.0
call fcn.0042f6c0
add esp, 4
jmp 0x41b2d9
mov dword [esp + 0x10], 6
cmp dword [esi + 0x64], edi
je 0x41b326
mov ecx, dword [esi + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ebx, dword [esi + 0x64]
push 0x10
call fcn.004309b0
add esp, 4
cmp eax, edi
je 0x41b312
mov ecx, dword [esp + 0x10]
mov dword [eax], vtable.CallBack_1_void__class_ITaskDelegate__int_.0
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x41bd60
jmp 0x41b314
xor eax, eax
mov edx, dword [0x46a814]
mov ecx, dword [edx + 4]
mov edx, dword [ecx]
push edi
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esi + 0x40], 8
jb 0x41b331
mov esi, dword [esi + 0x2c]
jmp 0x41b334
add esi, 0x2c
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [esp + 0x1e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.00430900
mov esp, ebp
pop ebp
ret