Function at 0x422570
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x470024]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x2c], eax
push edi
mov edi, dword [ebp + 8]
xor esi, esi
push edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x422883
test al, 0x50
jne 0x422883
call fcn.00422230
cmp eax, 1
je 0x4225cf
lea ebx, [esi + 0x7e]
jmp 0x422888
push 0x23f0
call fcn.004218c0
add esp, 4
test eax, eax
jne 0x422719
push edi
call fcn.00421680
add esp, 4
test eax, eax
je 0x422719
mov eax, dword [0x47268c]
xorps xmm0, xmm0
movq qword [ebp - 0x10], xmm0
mov dword [ebp - 8], ebx
mov dword [ebp - 0x30], ebx
movups xmmword [ebp - 0x20], xmm0
test eax, eax
jne 0x42262b
push eax
push str.Advapi32.dll
call fcn.00421ab0
add esp, 8
mov dword [0x47268c], eax
test eax, eax
je 0x42270d
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [0x472530], ebx
jne 0x422653
push str.OpenSCManagerW
push eax
call esi
mov dword [0x472530], eax
test eax, eax
je 0x42270d
mov eax, dword [0x47268c]
cmp dword [0x472534], ebx
jne 0x422675
push str.OpenServiceW
push eax
call esi
mov dword [0x472534], eax
test eax, eax
je 0x42270d
mov eax, dword [0x47268c]
cmp dword [0x47253c], ebx
jne 0x422693
push str.QueryServiceStatus
push eax
call esi
mov dword [0x47253c], eax
test eax, eax
je 0x42270d
mov eax, dword [0x47268c]
cmp dword [0x472540], ebx
jne 0x4226ac
push str.CloseServiceHandle
push eax
call esi
mov dword [0x472540], eax
test eax, eax
je 0x42270d
push SysReAllocStringLen
push 0
push 0
call dword [0x472530]
mov esi, eax
test esi, esi
je 0x422708
push 4
push str.CryptSvc
push esi
call dword [0x472534]
mov edi, eax
test edi, edi
je 0x4226fe
lea eax, [ebp - 0x20]
push eax
push edi
call dword [0x47253c]
test eax, eax
je 0x4226f7
mov eax, dword [ebp - 0x1c]
mov ecx, 3
add eax, 0xfffffffc
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
push edi
call dword [0x472540]
push esi
call dword [0x472540]
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x30], ebx
jne 0x422719
mov esi, 1
xor ebx, ebx
jmp 0x422888
push 0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x40]
push eax
push 0
push 2
push 0x400
push edi
push 1
call dword [0x472510]
mov esi, eax
test esi, esi
jne 0x422754
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x422888
push 0x34
lea eax, [ebp - 0x74]
xorps xmm0, xmm0
push 0
push eax
movups xmmword [ebp - 0x84], xmm0
call fcn.0043ce50
or dword [ebp - 0x4c], 0x1000
lea eax, [ebp - 0x84]
push 0x23f0
mov dword [ebp - 0x84], 0x10
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x74], 0x34
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x5c], eax
call fcn.004218c0
add esp, 0x10
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
test eax, eax
jne 0x4227e8
lea eax, [ebp - 0x74]
push eax
call fcn.00421e00
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x422888
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x422888
lea eax, [ebp - 0x9c]
xorps xmm0, xmm0
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x74]
movups xmmword [ebp - 0x9c], xmm0
push eax
movq qword [ebp - 0x8c], xmm0
mov dword [ebp - 0x9c], 0x18
mov dword [ebp - 0x94], 3
mov dword [ebp - 0x98], ebx
call fcn.00421e00
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x422888
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov edi, 1
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0xc], edi
jb 0x422888
push dword [ebp - 0x2c]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 1
mov dword [eax + 4], edi
lea eax, [ebp - 0x74]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
push eax
call fcn.00421e00
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x422888
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
inc edi
mov eax, dword [ebp - 0x44]
cmp edi, dword [eax + 0xc]
jbe 0x422844
jmp 0x422888
mov ebx, 2
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x422898
push 0
push eax
call dword [0x472500]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4228a6
push eax
call dword [0x4724fc]
test esi, esi
jne 0x4228ad
push ebx
jmp 0x4228af
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042425a
mov esp, ebp
pop ebp
ret