Function at 0x4090d0
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x45803f
mov eax, dword fs:[0]
push eax
sub esp, 0x810
mov eax, dword [0x473204]
xor eax, esp
mov dword [esp + 0x80c], eax
push ebx
push esi
push edi
mov eax, dword [0x473204]
xor eax, esp
push eax
lea eax, [esp + 0x820]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [0x475f44]
call fcn.004032c0
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
push 0
push 3
push eax
push ecx
call fcn.0043f630
mov ecx, dword [0x475f44]
push edx
push eax
call fcn.00403460
test al, al
jne 0x408f96
call fcn.00402e90
movzx edx, ax
push edx
push 0x6b
push 0
mov ecx, 0x475f4c
call fcn.004026b0
push 3
push 0x45cee4
mov ecx, 0x475f4c
call fcn.00402770
mov eax, dword [0x475f4c]
mov ecx, 1
sub ecx, dword [eax - 4]
or ecx, dword [eax - 8]
jge 0x408f74
push 0
mov ecx, 0x475f4c
call fcn.00401510
mov eax, dword [0x475f4c]
mov edx, dword [0x475f44]
push eax
push edx
call fcn.00403120
mov ecx, dword [0x475f44]
add esp, 8
call fcn.00403320
xor al, al
jmp 0x409312
call fcn.00402e90
movzx eax, ax
push eax
push 0x6c
push 0
mov ecx, 0x475f4c
call fcn.004026b0
mov edx, dword [0x475f4c]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x408fd4
push 0
mov ecx, 0x475f4c
call fcn.00401510
mov edx, dword [0x475f4c]
mov ecx, dword [0x475f44]
push edx
call fcn.00403100
mov ecx, dword [esi + 0x58]
push ecx
lea edx, [esp + 0x20]
push str.ps_.4u.patch
push edx
call fcn.0043ee4a
push 0x475b40
lea eax, [esp + 0x42c]
push 0x45c528
push eax
call fcn.0043ee4a
mov ecx, dword [0x475f44]
add esp, 0x18
push 0x45bd84
push 0x3ee
call fcn.0041feba
mov ecx, dword [0x475f44]
push 0x45bd84
push 0x3ef
call fcn.0041feba
lea ecx, [esp + 0x41c]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00407350
add esp, 8
test eax, eax
jne 0x4090b2
call fcn.00402e90
movzx eax, ax
push eax
push 0x6d
push 0
mov ecx, 0x475f4c
call fcn.004026b0
push 3
push 0x45cee0
mov ecx, 0x475f4c
call fcn.00402770
mov eax, dword [0x475f4c]
mov ecx, 1
sub ecx, dword [eax - 4]
or ecx, dword [eax - 8]
jge 0x40909b
push 0
mov ecx, 0x475f4c
call fcn.00401510
mov eax, dword [0x475f4c]
push eax
mov edx, dword [0x475f44]
push edx
call fcn.00403120
add esp, 8
xor al, al
jmp 0x409312
mov ecx, dword [0x475f44]
cmp eax, 2
je 0x408f8a
call fcn.00403340
cmp dword [esi + 0x58], 1
jbe 0x4092e1
push 0
push str.update.sah
call fcn.0043eaf5
add esp, 8
test eax, eax
jne 0x4092e1
push eax
push str.update.saf
call fcn.0043eaf5
add esp, 8
test eax, eax
jne 0x4092e1
push str.update.saf
lea ecx, [esp + 0x18]
call fcn.004058a0
mov ecx, dword [0x475f44]
push eax
mov dword [esp + 0x82c], 0
call fcn.004039f0
mov ecx, dword [0x475f44]
add eax, eax
push 0
push eax
call fcn.00403460
test al, al
lea ecx, [esp + 0x14]
sete bl
mov dword [esp + 0x828], 0xffffffff
call fcn.004014f0
call fcn.00402e90
mov ecx, 0x475f4c
test bl, bl
je 0x409198
movzx eax, ax
push eax
push 0x6e
push 0
call fcn.004026b0
push 0x45cec4
mov ecx, 0x475f4c
call fcn.00402880
push 0
mov ecx, 0x475f4c
call fcn.004015b0
mov ecx, dword [0x475f44]
push eax
push ecx
call fcn.00403120
add esp, 8
xor al, al
jmp 0x409312
movzx edx, ax
push edx
push 0x6f
push 0
call fcn.004026b0
push 0
mov ecx, 0x475f4c
call fcn.004015b0
mov ecx, dword [0x475f44]
push eax
call fcn.00403100
mov ecx, dword [0x475f44]
push 0x45bd84
push 0x3ee
call fcn.0041feba
mov edi, dword [esi + 0xc]
test edi, edi
je 0x4091f0
mov ecx, edi
call fcn.0040aa60
push edi
call fcn.0041724b
add esp, 4
mov dword [esi + 0xc], 0
push 0xa4
call fcn.0041721c
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x828], 1
test eax, eax
je 0x409219
mov ecx, eax
call fcn.0040a660
jmp 0x40921b
xor eax, eax
mov dword [esp + 0x828], 0xffffffff
mov dword [esi + 0xc], eax
test eax, eax
jne 0x4092cb
call fcn.00402e90
movzx eax, ax
push eax
push 0x7e
push 0
mov ecx, 0x477f7c
call fcn.004026b0
call fcn.00402e90
movzx ecx, ax
push ecx
push 0x70
push 0
mov ecx, 0x477f80
call fcn.004026b0
push 0x45ce38
lea edx, [esp + 0x14]
push 0x477f7c
push edx
call fcn.00408510
push 0x477f80
push eax
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x840], 2
call fcn.00408450
add esp, 0x18
push eax
mov ecx, 0x475f4c
mov byte [esp + 0x82c], 3
call fcn.00408430
lea ecx, [esp + 0x18]
call fcn.004014f0
lea ecx, [esp + 0x10]
mov dword [esp + 0x828], 0xffffffff
call fcn.004014f0
push 0x45cec0
jmp 0x40916b
mov ecx, eax
mov byte [esi + 0x87c], 1
call fcn.0040bef0
test al, al
je 0x408f8f
mov ecx, esi
call fcn.00407b50
test al, al
jne 0x4092f6
push str.SaveLocalVersion_Error
jmp 0x40909c
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esi + 0x20]
push 0
push ecx
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.0043e7e7
add esp, 0x81c
ret