Function at 0x10029480
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1012c51d
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x1017d4e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
call fcn.10013020
mov ecx, eax
test ecx, ecx
je 0x10029912
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x220], eax
push str.__fromnewinstall
lea ecx, [ebp - 0x220]
mov dword [ebp - 4], 0
call fcn.100042f0
test al, al
jne 0x100294fb
push 0x11
push str.__fromnewinstall
lea ecx, [ebp - 0x220]
call fcn.100056e0
lea eax, [ebp - 0x21c]
mov dword [ebp - 4], 1
push eax
call fcn.10012f20
add esp, 4
mov eax, dword [ebp - 0x21c]
or ebx, 0xffffffff
mov byte [ebp - 4], 2
mov ecx, dword [eax - 0xc]
lea edx, [eax - 0x10]
test ecx, ecx
jne 0x1002954e
mov edi, 2
mov byte [ebp - 4], 1
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10029874
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x10029874
mov esi, dword [edi]
sub esi, 0x10
cmp edx, esi
je 0x100295a7
cmp dword [esi + 0xc], 0
jl 0x10029598
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x10029595
push edx
call fcn.10004430
mov dword [ebp - 0x228], eax
add esp, 4
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10029588
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x228]
add eax, 0x10
mov dword [edi], eax
jmp 0x100295a1
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, edi
call fcn.100056e0
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or ecx, edx
jge 0x100295d2
push 0x104
lea ecx, [ebp - 0x21c]
call fcn.100052b0
mov eax, dword [ebp - 0x21c]
push str.LdsSecurity.exe
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [ebp - 0x21c]
push dword [eax - 8]
push eax
call fcn.100ec86a
mov edx, eax
add esp, 8
test edx, edx
js 0x10029908
mov ecx, dword [ebp - 0x21c]
cmp edx, dword [ecx - 8]
jg 0x10029908
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x21c]
mov word [eax + edx*2], cx
push dword [ebp - 0x21c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10029636
mov edx, dword [ebp - 0x21c]
add edx, 0xfffffff0
jmp 0x10029528
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.100ce270
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x101826e4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.10013020
mov ecx, eax
test ecx, ecx
je 0x1002991c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x22c]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.1001ef10
add esp, 8
call fcn.10013020
mov ecx, eax
test ecx, ecx
je 0x10029926
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 4
call fcn.10013020
mov ecx, eax
test ecx, ecx
je 0x10029930
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x224]
call fcn.100042f0
test al, al
jne 0x10029722
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029700
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x224]
call fcn.100056e0
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.1001ef10
mov edx, dword [ebp - 0x224]
add esp, 8
mov byte [ebp - 4], 4
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1002975d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x228]
cmp dword [esi - 0xc], 0
jne 0x100297b8
mov edi, 2
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10029789
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x22c]
mov eax, ebx
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100297aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x21c]
add edx, 0xfffffff0
jmp 0x1002952d
mov edi, dword [ebp - 0x22c]
push edi
push esi
call fcn.100124a0
add esp, 8
lea ecx, [ebp - 0x220]
test eax, eax
jns 0x100297e9
push 0
push 0x1013e290
call fcn.100056e0
or eax, 0xffffffff
mov dword [ebp - 0x224], eax
jmp 0x10029817
jne 0x10029801
push 0
push 0x1013e290
call fcn.100056e0
xor eax, eax
mov dword [ebp - 0x224], eax
jmp 0x10029817
push 0x10
push str.__fromupinstall
mov dword [ebp - 0x224], 1
call fcn.100056e0
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10029832
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x1002984d
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x21c]
mov eax, ebx
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1002986e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x224]
mov esi, dword [ebp - 0x220]
cmp dword [esi - 4], 1
jle 0x10029894
push dword [esi - 0xc]
lea ecx, [ebp - 0x220]
call fcn.10004e70
mov esi, dword [ebp - 0x220]
call fcn.10023320
add eax, 0x40
mov dword [ebp - 0x228], eax
test esi, esi
jne 0x100298aa
xor ecx, ecx
jmp 0x100298c5
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100298b0
mov eax, dword [ebp - 0x228]
sub ecx, edx
sar ecx, 1
push ecx
push esi
mov ecx, eax
call fcn.100056e0
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x100298ea
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100845e8
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.100042d0
push 0x80004005
call fcn.100042d0
push 0x80004005
call fcn.100042d0
push 0x80004005
call fcn.100042d0
push 0x80004005
call fcn.100042d0
int3