Function at 0x405922
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8d8
push ebx
push esi
push edi
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 0
cmp dword [ebp + 8], 0
jne 0x4059d4
mov edi, 0x9a3940
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x868], eax
dec dword [ebp - 0x868]
mov eax, 0x460aac
mov ecx, 0x460ab0
mov edx, dword [ebp - 0x868]
movsx edx, byte [edx + 0x9a3940]
xor ebx, ebx
cmp edx, 0x5c
setne bl
dec ebx
sub ecx, eax
and ebx, ecx
add ebx, eax
push ebx
push 0x9a3940
push 0x460ab4
push 0x200
lea eax, [ebp - 0x638]
push eax
call fcn.00452660
add esp, 0x14
lea eax, [ebp - 0x638]
push eax
call fcn.004068aa
add esp, 4
push 0x460abc
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x45e05c], eax
jmp 0x405c1d
cmp dword [ebp + 8], 1
jne 0x405c1d
lea eax, [ebp - 0x438]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
push 0x200
lea eax, [ebp - 0x438]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
movsx eax, byte [ebp - 0x438]
test eax, eax
je 0x405a81
lea edi, [ebp - 0x438]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x868], eax
cmp dword [ebp - 0x868], 0
je 0x405a81
dec dword [ebp - 0x868]
mov eax, dword [ebp - 0x868]
movsx eax, byte [ebp + eax - 0x438]
cmp eax, 0x5c
jne 0x405a7c
inc dword [ebp - 0x868]
mov eax, dword [ebp - 0x868]
mov byte [ebp + eax - 0x438], 0
mov dword [ebp - 0x868], 0
jmp 0x405a34
lea edi, [ebp - 0x438]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov edx, edi
mov edi, 0x9a3940
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x438]
push eax
call fcn.00403cd6
add esp, 4
mov edx, 0x460ad0
lea edi, [ebp - 0x438]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov eax, dword [edx]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov ax, word [edx + 8]
mov word [edi + 8], ax
mov al, byte [edx + 0xa]
mov byte [edi + 0xa], al
movsx eax, byte [0x9a3940]
test eax, eax
jne 0x405b10
mov eax, str.C:_temp_
mov ecx, 0x9a3940
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov al, byte [eax + 8]
mov byte [ecx + 8], al
push str.STARTUP:Verify_file_is_present
call fcn.004097a0
add esp, 4
lea eax, [ebp - 0x438]
push eax
call fcn.004097a0
add esp, 4
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x405b4c
mov eax, 0xffffffff
jmp 0x405ea8
push str.FILE_PRESENT__VERIFYING...
call fcn.004097a0
add esp, 4
lea eax, [ebp - 0x438]
push eax
call fcn.00405ead
add esp, 4
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x230]
push eax
push str.Build_Verification_Result___X
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x8d8]
push eax
call fcn.004097a0
add esp, 4
cmp dword [ebp - 0x230], 0
jne 0x405bd6
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push str.STARTUP_FAILED_TO_VERIFY_VERSION_SCAN
call fcn.004097a0
add esp, 4
lea eax, [ebp - 0x438]
push eax
call fcn.004097a0
add esp, 4
xor eax, eax
jmp 0x405ea8
push 0x460b6c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x45e05c], eax
cmp dword [0x45e05c], 0
je 0x405c1d
cmp dword [0x45e05c], 0xffffffff
je 0x405c1d
push 0x9a3940
call fcn.004068aa
add esp, 4
push 0x460b80
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x45e05c], eax
cmp dword [0x45e05c], 0
je 0x405e6c
cmp dword [0x45e05c], 0xffffffff
je 0x405e6c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [0x45e060], 0
push 0x460b94
mov eax, dword [0x45e05c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x45e060], eax
mov eax, dword [0x45e060]
push eax
mov eax, dword [0x45e05c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x460ba4
call fcn.00452380
add esp, 0x10
cmp dword [0x45e060], 0
je 0x405e2d
lea eax, [ebp - 0x864]
push eax
lea eax, [ebp - 0x22c]
push eax
call dword [0x45e060]
add esp, 8
cmp eax, 0x1112222
jne 0x405e04
lea eax, [ebp - 0x864]
push eax
lea eax, [ebp - 0x22c]
push eax
push str._r_nVERIFY_SUCCESSFUL:_n__s__n__s_
call fcn.00452380
add esp, 0xc
push str.Global
lea eax, [ebp - 0x22c]
push eax
call fcn.0042fa7e
add esp, 8
test eax, eax
je 0x405df4
push str.Sign
lea eax, [ebp - 0x22c]
push eax
call fcn.0042fa7e
add esp, 8
test eax, eax
je 0x405df4
push str.Integrity
lea eax, [ebp - 0x864]
push eax
call fcn.0042fa7e
add esp, 8
test eax, eax
je 0x405df4
push str.Software
lea eax, [ebp - 0x864]
push eax
call fcn.0042fa7e
add esp, 8
test eax, eax
je 0x405df4
mov dword [ebp - 0x234], 0x333
cmp dword [ebp + 8], 1
jne 0x405df4
call fcn.00414baf
push str.STARTING_LWAUPD....
call fcn.004097a0
add esp, 4
mov dword [0x45e04c], 1
lea eax, [ebp - 0x438]
push eax
call fcn.0040587a
add esp, 4
mov dword [ebp - 0x868], 0
cmp dword [ebp - 0x868], 0x1770
jge 0x405ddd
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x45e04c], 2
jne 0x405dd2
push str._r_nSTLWA_NT.EXE_stopping_per_LWAUPD_update
call fcn.00452380
add esp, 4
push str.STOPPING_PER_LWAUPD
call fcn.004097a0
add esp, 4
mov dword [0x45e04c], 3
xor eax, eax
jmp 0x405ea8
inc dword [ebp - 0x868]
jmp 0x405d82
push str.ABORTING_LWAUPD__Continuing_with_normal_start
call fcn.004097a0
add esp, 4
mov dword [0x45e04c], 0
mov eax, dword [ebp - 0x234]
jmp 0x405ea8
push str._r_nVERIFICATION_FAILED
call fcn.00452380
add esp, 4
cmp dword [ebp + 8], 1
jne 0x405e28
push str.LWAUPD_VERIFICATION_FAILED
call fcn.004097a0
add esp, 4
jmp 0x405e51
push str._r_nVERIFICATION_DLL_INCOMPLETE
call fcn.00452380
add esp, 4
cmp dword [ebp + 8], 1
jne 0x405e51
push str.LWAUPD_VERIFICATION_DLL_INCOMPLETE_FAILED
call fcn.004097a0
add esp, 4
mov eax, dword [0x45e05c]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x45e05c], 0
jmp 0x405e90
push str._r_nVERIFICATION_DLL_MISSING
call fcn.00452380
add esp, 4
cmp dword [ebp + 8], 1
jne 0x405e90
push str.LWAUPD_VERIFICATION_DLL_MISSING_
call fcn.004097a0
add esp, 4
push 0x460d58
call fcn.00452380
add esp, 4
mov eax, dword [ebp - 0x234]
jmp 0x405ea8
pop edi
pop esi
pop ebx
leave
ret