Function at 0x40f55f
Capabilities:
Delete file
Get common file path

Disassembly:
push 0x770
mov eax, 0x64361e
call fcn.004e70a5
mov edi, ecx
mov dword [ebp - 0x76c], edi
call fcn.004c1fa0
xor ebx, ebx
test al, al
je 0x40f615
mov eax, dword [0x6f3a10]
test eax, eax
je 0x40f615
cmp dword [eax + 4], 4
jl 0x40f615
push str.1011
call fcn.004c1bb5
mov dword [ebp - 0x770], eax
mov dword [esp], str.1130
call fcn.004c1bb5
pop ecx
xor esi, esi
lea ecx, [ebp - 0x768]
push esi
push esi
push 0x6c7914
push 0x73
push str.CDoUpdateTask::DoTask
push 4
mov ebx, eax
call fcn.0040f0c8
mov edi, eax
mov dword [ebp - 4], esi
lea esi, [edi + 0x30]
push ebx
push esi
call fcn.0040d270
push dword [ebp - 0x770]
push esi
call fcn.0040d270
mov ecx, dword [0x6f3a10]
add esp, 0x10
push edi
call fcn.0040f1ac
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x768]
call fcn.0040d28d
mov edi, dword [ebp - 0x76c]
xor ebx, ebx
lea ecx, [ebp - 0x77c]
mov byte [ebp - 0x770], bl
call fcn.004d0200
xor esi, esi
lea ecx, [ebp - 0x584]
inc esi
mov dword [ebp - 4], esi
call fcn.004d33a0
lea ecx, [ebp - 0x4e4]
mov byte [ebp - 4], 2
call fcn.004d3310
push ebx
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 3
call fcn.004d6af0
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x76c], esp
push eax
call fcn.004c47d4
sub esp, 0x14
mov byte [ebp - 4], 4
mov ecx, esp
push 0x6c7ad8
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov byte [ecx], bl
call fcn.0040ef26
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 3
call fcn.004d5e70
call fcn.0040fe5e
sub esp, 0x18
mov dword [ebp - 0x774], esp
lea ecx, [eax + 4]
mov eax, esp
push eax
mov eax, dword [ecx]
call dword [eax]
sub esp, 0x18
mov byte [ebp - 4], 5
mov ecx, esp
push 0x6c7adc
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov byte [ecx], bl
call fcn.0040ef26
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 3
call fcn.004d5e70
call fcn.0040fe5e
sub esp, 0x18
mov dword [ebp - 0x774], esp
lea ecx, [eax + 4]
mov eax, esp
push eax
mov eax, dword [ecx]
call dword [eax + 0x34]
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
push str.insd
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov byte [ecx], bl
call fcn.0040ef26
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 3
call fcn.004d5e70
push ebx
lea eax, [ebp - 0x4e4]
push eax
lea eax, [ebp - 0x584]
push eax
call fcn.0040fedd
mov ecx, eax
call fcn.004d6e30
cmp dword [edi], ebx
je 0x40f854
cmp dword [edi + 4], 0
je 0x40f754
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0x1388
mov dword [edi + 4], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [edi + 8], 0
je 0x40f7e2
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 0x18
lea eax, [ebp - 0x4c8]
mov ecx, esp
mov dword [ebp - 0x774], esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
sub esp, 0x18
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x76c], esp
lea eax, [ebp - 0x498]
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
sub esp, 0x18
mov byte [ebp - 4], 8
mov ecx, esp
lea eax, [ebp - 0x4e0]
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
mov ecx, dword [edi]
mov eax, dword [ecx]
mov byte [ebp - 4], 3
call dword [eax]
jmp 0x40f854
sub esp, 0x18
lea eax, [ebp - 0x4c8]
mov ecx, esp
mov dword [ebp - 0x778], esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
sub esp, 0x18
mov byte [ebp - 4], 9
mov ecx, esp
mov dword [ebp - 0x774], esp
lea eax, [ebp - 0x498]
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
lea eax, [ebp - 0x4e0]
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
mov ecx, dword [edi]
mov eax, dword [ecx]
mov byte [ebp - 4], 3
call dword [eax]
test al, al
je 0x40f854
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [ebp - 0x4b8], 0
je 0x40fc5e
cmp dword [ebp - 0x4a0], 0
je 0x40fc5e
push esi
push esi
call fcn.0040f1e8
mov esi, 0x208
lea eax, [ebp - 0x420]
push esi
push ebx
push eax
call fcn.004fe600
push esi
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.004fe600
add esp, 0x18
lea eax, [ebp - 0x218]
mov esi, 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push esi
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
xor eax, eax
mov dword [ebp - 0x428], ebx
mov word [ebp - 0x438], ax
lea ecx, [ebp - 0x438]
lea eax, [ebp - 0x420]
mov dword [ebp - 0x424], 7
push eax
call fcn.0040b728
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x4c8]
cmp dword [ebp - 0x4b4], 8
cmovae eax, dword [ebp - 0x4c8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x438]
call fcn.0040b45b
cmp dword [ebp - 0x424], 8
lea ecx, [ebp - 0x438]
push ebx
cmovae ecx, dword [ebp - 0x438]
lea eax, [ebp - 0x4c8]
cmp dword [ebp - 0x4b4], 8
push ebx
cmovae eax, dword [ebp - 0x4c8]
push ebx
push ecx
push eax
call fcn.004d0b60
add esp, 0x14
test al, al
jne 0x40f96c
push ebx
push 2
call fcn.0040f1e8
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 3
call fcn.0040b4f9
jmp 0x40fc65
push 1
push 2
call fcn.0040f1e8
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
lea ecx, [ebp - 0x700]
cmovae eax, dword [ebp - 0x438]
sub esp, 0xc
push eax
call fcn.0040ffbc
lea ecx, [ebp - 0x648]
mov byte [ebp - 4], 0xc
call fcn.004c4df1
lea eax, [ebp - 0x700]
push eax
lea ecx, [ebp - 0x648]
call fcn.004c58a4
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x648]
call fcn.004c5114
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x4b0]
cmp dword [ebp - 0x49c], 8
mov esi, 0x3a8
cmovae eax, dword [ebp - 0x4b0]
push eax
push esi
sub esp, 0x18
lea eax, [ebp - 0x4fc]
mov ecx, esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040dd78
lea eax, [ebp - 0x450]
push eax
call fcn.004b7264
add esp, 0x20
mov byte [ebp - 4], 0xe
cmp dword [eax + 0x14], 8
jb 0x40fa1c
mov eax, dword [eax]
push eax
call fcn.004b70f7
pop ecx
pop ecx
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 0xd
mov bl, al
call fcn.0040b4f9
test bl, bl
jne 0x40fa5e
xor ebx, ebx
push ebx
push 3
call fcn.0040f1e8
lea ecx, [ebp - 0x4fc]
call fcn.0040ee34
lea ecx, [ebp - 0x700]
call fcn.0040fd4f
jmp 0x40f958
mov ecx, dword [edi]
test ecx, ecx
je 0x40fa69
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push 3
call fcn.0040f1e8
push esi
sub esp, 0x18
lea eax, [ebp - 0x438]
mov ecx, esp
xor ebx, ebx
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040b482
lea eax, [ebp - 0x52c]
push eax
call fcn.004b75cb
add esp, 0x20
mov esi, eax
mov byte [ebp - 4], 0xf
cmp dword [esi + 0x14], 0x10
jb 0x40faa9
mov esi, dword [esi]
lea eax, [ebp - 0x514]
push eax
call fcn.0040b037
mov ecx, eax
call fcn.004b5c6b
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 8
jb 0x40fac8
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.004b74a7
pop ecx
pop ecx
lea ecx, [ebp - 0x514]
call fcn.0040b4f9
cmp dword [ebp - 0x43c], 0x10
lea eax, [ebp - 0x450]
push ebx
cmovae eax, dword [ebp - 0x450]
push 0x40f4f7
push 0x6c744c
push eax
push esi
call fcn.004dca40
lea ecx, [ebp - 0x450]
call fcn.0040ee34
lea ecx, [ebp - 0x52c]
mov byte [ebp - 4], 0xd
call fcn.0040ee34
push 1
push 4
call fcn.0040f1e8
call fcn.0040f352
mov ecx, dword [edi]
test ecx, ecx
je 0x40fb3b
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x5dc]
call fcn.004d73d0
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x778], esp
push str._soft_i4
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov byte [ecx], bl
call fcn.0040ef26
sub esp, 0x18
mov byte [ebp - 4], 0x12
mov ecx, esp
push 0x6c7af4
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov byte [ecx], bl
call fcn.0040ef26
lea ecx, [ebp - 0x5dc]
mov byte [ebp - 4], 0x11
call fcn.004d5e70
push ebx
lea eax, [ebp - 0x5dc]
push ebx
push eax
call fcn.0040fedd
mov ecx, eax
call fcn.004d6e30
call fcn.004c1fa0
test al, al
jne 0x40fbd2
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x468]
push eax
call fcn.0040b037
mov ecx, eax
call fcn.004b5c6b
push 0x6c7af8
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 0x13
call fcn.0040b45b
cmp dword [ebp - 0x454], 8
lea esi, [ebp - 0x468]
cmovae esi, dword [ebp - 0x468]
call fcn.004c3cac
neg eax
sbb eax, eax
inc eax
push eax
push 0xffffffffffffffff
push 1
push esi
push str.11953289
call fcn.004b8fc4
add esp, 0x14
neg eax
sbb al, al
inc al
mov byte [ebp - 0x770], al
push dword [ebp - 0x770]
push 5
call fcn.0040f1e8
lea ecx, [ebp - 0x468]
call fcn.0040b4f9
lea ecx, [ebp - 0x5dc]
call fcn.004d59a0
jmp 0x40fa43
push ebx
push esi
call fcn.0040f1e8
mov ecx, dword [edi]
test ecx, ecx
je 0x40fc76
mov eax, dword [ecx]
push dword [ebp - 0x770]
call dword [eax + 0xc]
cmp dword [edi + 4], 0
je 0x40fc88
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 4], ebx
call fcn.004c1fa0
test al, al
je 0x40fd19
mov eax, dword [0x6f3a10]
test eax, eax
je 0x40fd19
cmp dword [eax + 4], 4
jl 0x40fd19
push str.1012
call fcn.004c1bb5
mov dword [ebp - 0x76c], eax
mov dword [esp], str.1130
call fcn.004c1bb5
pop ecx
xor esi, esi
lea ecx, [ebp - 0x130]
push esi
push esi
push 0x6c7914
push 0xe3
push str.CDoUpdateTask::DoTask
push 4
mov ebx, eax
call fcn.0040f0c8
mov edi, eax
lea esi, [edi + 0x30]
mov byte [ebp - 4], 0x14
push ebx
push esi
call fcn.0040d270
push dword [ebp - 0x76c]
push esi
call fcn.0040d270
mov ecx, dword [0x6f3a10]
add esp, 0x10
push edi
call fcn.0040f1ac
lea ecx, [ebp - 0x130]
call fcn.0040d28d
lea ecx, [ebp - 0x4e0]
mov dword [ebp - method.CParseUpdateData.virtual_0], vtable.CParseUpdateData.0
call fcn.00411652
lea ecx, [ebp - 0x584]
call fcn.004d59a0
lea ecx, [ebp - 0x77c]
call fcn.004d0370
call fcn.004e704f
ret