Function at 0x40b422
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x45ab8f
mov eax, dword fs:[0]
push eax
sub esp, 0x810
mov eax, dword [0x47613c]
xor eax, esp
mov dword [esp + 0x80c], eax
push ebx
push esi
push edi
mov eax, dword [0x47613c]
xor eax, esp
push eax
lea eax, [esp + 0x820]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [0x478674]
call fcn.00403430
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
push 0
push 3
push eax
push ecx
call fcn.00441c90
mov ecx, dword [0x478674]
push edx
push eax
call fcn.004035d0
test al, al
jne 0x40b2e6
push 0x6b
call fcn.00427cae
test eax, eax
je 0x40b291
push 0x6b
push eax
mov ecx, 0x47a6a4
call fcn.00402880
push 3
push 0x45fb90
mov ecx, 0x47a6a4
call fcn.00402940
mov eax, dword [0x47a6a4]
mov edx, 1
sub edx, dword [eax - 4]
or edx, dword [eax - 8]
jge 0x40b2c5
push 0
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
push eax
mov eax, dword [0x478674]
push eax
call fcn.00403230
mov ecx, dword [0x478674]
add esp, 8
call fcn.00403490
xor al, al
jmp 0x40b64a
push 0x6c
call fcn.00427cae
test eax, eax
je 0x40b2fe
push 0x6c
push eax
mov ecx, 0x47a6a4
call fcn.00402880
mov edx, dword [0x47a6a4]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x40b325
push 0
mov ecx, 0x47a6a4
call fcn.004013e0
mov edx, dword [0x47a6a4]
mov ecx, dword [0x478674]
push edx
call fcn.00403210
mov ecx, dword [esi + 0x58]
push ecx
lea edx, [esp + 0x20]
push str.ps_.4u.patch
push edx
call fcn.0044166a
push 0x478270
lea eax, [esp + 0x42c]
push 0x45f25c
push eax
call fcn.0044166a
mov ecx, dword [0x478674]
add esp, 0x18
push 0x45f1f0
push 0x3ee
call fcn.00422507
mov ecx, dword [0x478674]
push 0x45f1f0
push 0x3ef
call fcn.00422507
lea ecx, [esp + 0x41c]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00409760
add esp, 8
test eax, eax
jne 0x40b404
push 0x6d
call fcn.00427cae
test eax, eax
je 0x40b3b9
push 0x6d
push eax
mov ecx, 0x47a6a4
call fcn.00402880
push 3
push 0x45fb8c
mov ecx, 0x47a6a4
call fcn.00402940
mov eax, dword [0x47a6a4]
mov ecx, 1
sub ecx, dword [eax - 4]
or ecx, dword [eax - 8]
jge 0x40b3ed
push 0
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
mov edx, dword [0x478674]
push eax
push edx
call fcn.00403230
add esp, 8
xor al, al
jmp 0x40b64a
mov ecx, dword [0x478674]
cmp eax, 2
je 0x40b2da
call fcn.004034b0
cmp dword [esi + 0x58], 1
jbe 0x40b60b
push 0
push str.update.sah
call fcn.00441344
add esp, 8
test eax, eax
jne 0x40b60b
push eax
push str.update.saf
call fcn.00441344
add esp, 8
test eax, eax
jne 0x40b60b
push str.update.saf
lea ecx, [esp + 0x18]
call fcn.00406110
mov ecx, dword [0x478674]
push eax
mov dword [esp + 0x82c], 0
call fcn.00403e10
mov ecx, dword [0x478674]
add eax, eax
push 0
push eax
call fcn.004035d0
test al, al
lea ecx, [esp + 0x14]
sete bl
mov dword [esp + 0x828], 0xffffffff
call fcn.00401360
mov ecx, 0x47a6a4
test bl, bl
je 0x40b4de
push 0x6e
call fcn.00402a30
push 0x45fb70
mov ecx, 0x47a6a4
call fcn.00402d80
push 0
mov ecx, 0x47a6a4
call fcn.00401470
push eax
mov eax, dword [0x478674]
push eax
call fcn.00403230
add esp, 8
xor al, al
jmp 0x40b64a
push 0x6f
call fcn.00402a30
push 0
mov ecx, 0x47a6a4
call fcn.00401470
mov ecx, dword [0x478674]
push eax
call fcn.00403210
mov ecx, dword [0x478674]
push 0x45f1f0
push 0x3ee
call fcn.00422507
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40b530
mov ecx, edi
call fcn.0040d220
push edi
call fcn.00419956
add esp, 4
mov dword [esi + 0xc], 0
push 0xa4
call fcn.0041991c
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x828], 1
test eax, eax
je 0x40b559
mov ecx, eax
call fcn.0040ce20
jmp 0x40b55b
xor eax, eax
mov dword [esp + 0x828], 0xffffffff
mov dword [esi + 0xc], eax
test eax, eax
jne 0x40b5f5
push 0x7e
mov ecx, 0x47a6a8
call fcn.00402a30
push 0x70
mov ecx, 0x47a6ac
call fcn.00402a30
push 0x45fae4
lea ecx, [esp + 0x14]
push 0x47a6a8
push ecx
call fcn.0040a870
push 0x47a6ac
push eax
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x840], 2
call fcn.0040a7b0
add esp, 0x18
push eax
mov ecx, 0x47a6a4
mov byte [esp + 0x82c], 3
call fcn.0040a790
lea ecx, [esp + 0x18]
call fcn.00401360
lea ecx, [esp + 0x10]
mov dword [esp + 0x828], 0xffffffff
call fcn.00401360
push 0x45fb6c
jmp 0x40b4b2
mov ecx, eax
mov byte [esi + 0x874], 1
call fcn.0040e6a0
test al, al
je 0x40b2df
mov ecx, esi
call fcn.00409de0
test al, al
jne 0x40b62e
mov ecx, dword [0x478674]
push str.SaveLocalVersion_Error
push ecx
call fcn.00403230
add esp, 8
xor al, al
jmp 0x40b64a
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esi + 0x20]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
setne al
mov ecx, dword [esp + 0x820]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x80c]
xor ecx, esp
call fcn.00441051
add esp, 0x81c
ret