Function at 0x4ebcf0
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x539615
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x59a0a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x88], eax
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0x64
push ecx
lea ecx, [ebp - 0xa4]
push ecx
lea ecx, [eax + 0x424]
call fcn.0042be10
push 0x24
call fcn.0049aa4a
add esp, 4
mov dword [ebp - 0x7c], eax
mov ecx, eax
call fcn.0042a030
mov dword [ebp - 0x9c], eax
test eax, eax
je 0x4ecb00
push ecx
mov ebx, esp
mov dword [ebp - 0x7c], ebx
mov esi, dword [0x59fc0c]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x4ebd88
call dword [eax + 0x10]
mov ecx, eax
cmp dword [esi - 4], 0
lea eax, [esi - 4]
jl 0x4ebd9e
cmp ecx, dword [esi - 0x10]
jne 0x4ebd9e
lea edi, [esi - 0x10]
lock inc dword [eax]
jmp 0x4ebdd6
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x4ebdb2
call fcn.00402c20
mov eax, dword [esi - 0xc]
lea ecx, [edi + 0x10]
mov dword [edi + 4], eax
mov edx, dword [esi - 0xc]
lea eax, [edx*2 + 2]
push eax
push esi
lea edx, [edx*2 + 2]
call fcn.004c7670
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebx], eax
mov ebx, dword [ebp - 0x9c]
mov ecx, ebx
call fcn.004e7930
add esp, 4
test eax, eax
je 0x4ecaee
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x88]
mov dword [ecx + 0x114], ebx
mov ecx, dword [ebx + 8]
mov esi, dword [edi + 0x478]
sub esi, 0x10
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x4ebe9d
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x4ebe88
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4ebe88
mov ecx, edx
call fcn.004021e0
mov dword [ebp - 0x98], eax
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x4ebe77
mov edx, dword [esi]
push esi
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4ebe73
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x98]
add eax, 0x10
mov dword [edi + 0x478], eax
jmp 0x4ebe97
mov ecx, edx
call eax
mov eax, dword [ebp - 0x98]
add eax, 0x10
mov dword [edi + 0x478], eax
jmp 0x4ebe97
push dword [ecx - 0xc]
push ecx
lea ecx, [edi + 0x478]
call fcn.00402d50
mov ebx, dword [ebp - 0x9c]
mov ecx, dword [ebx + 0x10]
mov eax, 0x92492493
sub ecx, dword [ebx + 0xc]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x4ebec7
mov ecx, edi
call fcn.004e9a70
jmp 0x4ecb00
mov eax, edi
push 0
mov dword [eax + 0x4cc], 4
mov eax, dword [ebp - 0xa4]
add eax, 0xc8
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x4ebef1
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edi, edi
mov dword [ebp - 0x94], edi
call fcn.00401980
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ebf15
push 0x80004005
call fcn.00401b40
mov eax, dword [edx]
mov esi, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ebf2a
lock inc dword [edx + 0x14]
lea eax, [edx + 8]
jmp 0x4ebf2e
mov ecx, edx
call esi
lea esi, [eax + 0x10]
mov dword [ebp - 0x84], esi
mov dword [ebp - 4], 0
mov eax, 0x92492493
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
mov dword [ebp - 0x8c], 0
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4ec345
mov dword [ebp - 0x90], 0
test edi, edi
jne 0x4ec2de
mov ecx, dword [ebx + 0x10]
mov eax, 0x92492493
mov edi, dword [ebx + 0xc]
sub ecx, edi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x8c]
jbe 0x4ec62c
mov ebx, dword [ebp - 0x90]
xor edx, edx
add ebx, edi
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x7c], ebx
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0x10]
sar eax, 2
test eax, eax
je 0x4ec293
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
sub eax, ecx
sar eax, 2
cmp eax, edx
jbe 0x4ec62c
lea ebx, [ecx + edx*4]
push 0x55fcf0
lea ecx, [ebp - 0x80]
call fcn.00401ff0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ec118
mov ecx, dword [ebx]
cmp dword [ecx - 0xc], 0
jl 0x4ec118
push eax
push ecx
call fcn.0049d574
mov edi, eax
add esp, 8
test edi, edi
je 0x4ec118
mov eax, dword [ebx]
sub edi, eax
sar edi, 1
test edi, edi
jle 0x4ec118
cmp edi, dword [eax - 0xc]
jge 0x4ec043
lea eax, [eax + edi*2]
push 0x26
push eax
call fcn.0049d7f7
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4ec043
sub ecx, dword [ebx]
sar ecx, 1
jmp 0x4ec046
or ecx, 0xffffffff
mov eax, dword [ebp - 0x80]
mov eax, dword [eax - 0xc]
add eax, edi
cmp ecx, edi
jle 0x4ec165
sub ecx, edi
push ecx
push eax
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
call fcn.00403370
mov byte [ebp - 4], 2
lea edi, [esi - 0x10]
mov edx, dword [eax]
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x4ec0e7
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4ec0d2
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x4ec0d2
call fcn.004021e0
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4ec0c7
mov edx, dword [edi]
push edi
mov ecx, dword [edx]
mov esi, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4ec0c3
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea esi, [ebx + 0x10]
mov dword [ebp - 0x84], esi
jmp 0x4ec0e7
mov ecx, edx
call esi
lea esi, [ebx + 0x10]
mov dword [ebp - 0x84], esi
jmp 0x4ec0e7
push dword [edx - 0xc]
lea ecx, [ebp - 0x84]
push edx
call fcn.00402d50
mov esi, dword [ebp - 0x84]
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov ecx, dword [ebp - 0xac]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ec118
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x4ec224
mov ecx, edx
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x80]
add ecx, 0xfffffff0
cmp dword [esi - 0xc], 0
jne 0x4ec260
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ec23d
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec239
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
jmp 0x4ec23d
push eax
lea eax, [ebp - 0xb0]
mov ecx, ebx
push eax
call fcn.00411720
mov byte [ebp - 4], 3
lea edi, [esi - 0x10]
mov edx, dword [eax]
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x4ec1f3
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4ec1de
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x4ec1de
call fcn.004021e0
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4ec1d3
mov edx, dword [edi]
push edi
mov ecx, dword [edx]
mov esi, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4ec1cf
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea esi, [ebx + 0x10]
mov dword [ebp - 0x84], esi
jmp 0x4ec1f3
mov ecx, edx
call esi
lea esi, [ebx + 0x10]
mov dword [ebp - 0x84], esi
jmp 0x4ec1f3
push dword [edx - 0xc]
lea ecx, [ebp - 0x84]
push edx
call fcn.00402d50
mov esi, dword [ebp - 0x84]
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov ecx, dword [ebp - 0xb0]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ec118
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec114
mov eax, dword [edx + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [eax + 4]
call ebx
jmp 0x4ec11e
mov ecx, edx
call edi
mov ebx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x98]
inc edx
mov dword [ebp - 0x98], edx
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0x10]
sar eax, 2
cmp edx, eax
jb 0x4ebfc4
jmp 0x4ec293
mov dword [ebp - 0x94], 1
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ec293
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec28f
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
jmp 0x4ec293
mov ecx, edx
call edi
mov ebx, dword [ebp - 0x9c]
mov eax, 0x92492493
mov edi, dword [ebp - 0x8c]
add dword [ebp - 0x90], 0x1c
inc edi
mov dword [ebp - 0x8c], edi
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x4ec2d5
mov edi, dword [ebp - 0x94]
jmp 0x4ebf71
cmp dword [ebp - 0x94], 0
je 0x4ec345
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
lea ebx, [eax + 4]
mov eax, dword [0x59fee8]
mov dword [ebp - 0x80], ebx
cmp eax, dword [ebx]
jle 0x4ec335
push 0x59fee8
call fcn.0049af28
add esp, 4
cmp dword [0x59fee8], 0xffffffff
jne 0x4ec335
mov byte [ebp - 4], 5
call fcn.004e7150
push 0x53eaa0
call fcn.0049b282
add esp, 4
mov byte [ebp - 4], 0
push 0x59fee8
call fcn.0049aee9
add esp, 4
push esi
push 0x55fdf0
push str.__s__Find_In_Url_fsname__s_
jmp 0x4ec3c7
push dword [ebx + 0x20]
lea eax, [ebp - 0x84]
push dword [ebx + 8]
push str._s__s.patch
push eax
call fcn.004023f0
mov eax, dword fs:[0x2c]
add esp, 0x10
mov eax, dword [eax]
lea ecx, [eax + 4]
mov eax, dword [0x59fee8]
mov dword [ebp - 0x80], ecx
cmp eax, dword [ecx]
jle 0x4ec3b6
push 0x59fee8
call fcn.0049af28
add esp, 4
cmp dword [0x59fee8], 0xffffffff
jne 0x4ec3b6
mov byte [ebp - 4], 4
call fcn.004e7150
push 0x53eaa0
call fcn.0049b282
add esp, 4
mov byte [ebp - 4], 0
push 0x59fee8
call fcn.0049aee9
add esp, 4
mov esi, dword [ebp - 0x84]
push esi
push 0x55fd18
push str.__s__Use_Default_fsname__s_
push 0x59feec
call fcn.004e76a0
add esp, 0x10
call fcn.00401980
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ec3f0
push 0x80004005
call fcn.00401b40
mov eax, dword [edx]
mov edi, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec405
lock inc dword [edx + 0x14]
lea eax, [edx + 8]
jmp 0x4ec409
mov ecx, edx
call edi
add eax, 0x10
mov dword [ebp - 0x8c], eax
mov byte [ebp - 4], 6
call fcn.00401980
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ec432
push 0x80004005
call fcn.00401b40
mov eax, dword [edx]
mov edi, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec447
lock inc dword [edx + 0x14]
lea eax, [edx + 8]
jmp 0x4ec44b
mov ecx, edx
call edi
add eax, 0x10
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 7
push eax
call fcn.0050a4a0
mov edi, dword [ebp - 0x8c]
push esi
test eax, eax
je 0x4ec477
push edi
push 0x55fe50
jmp 0x4ec488
mov eax, dword [ebp - 0x88]
push dword [eax + 0x434]
push 0x55fe5c
lea eax, [ebp - 0x94]
push eax
call fcn.004023f0
mov ecx, dword [ebp - 0xa4]
add esp, 0x10
mov ebx, dword [ecx + 0x60]
lea eax, [ecx + 0x60]
mov dword [ebp - 0x90], eax
sub ebx, 0x10
mov eax, dword [ebp - 0x94]
lea edx, [eax - 0x10]
mov dword [ebp - 0x98], edx
cmp edx, ebx
je 0x4ec54f
cmp dword [ebx + 0xc], 0
jl 0x4ec536
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x4ec536
mov ecx, edx
call fcn.004021e0
mov dword [ebp - 0x7c], eax
lea edx, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ec520
mov edx, dword [ebx]
push ebx
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4ec51c
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x98]
add eax, 0x10
mov dword [ebx], eax
jmp 0x4ec555
mov ecx, edx
call eax
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x98]
add eax, 0x10
mov dword [ebx], eax
jmp 0x4ec555
push dword [eax - 0xc]
mov ebx, dword [ebp - 0x90]
mov ecx, ebx
push eax
call fcn.00402d50
mov edx, dword [ebp - 0x98]
jmp 0x4ec555
mov ebx, dword [ebp - 0x90]
mov byte [ebp - 4], 6
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4ec591
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x7c], edi
mov edi, dword [ebp - 0x8c]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec58e
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4ec591
call dword [ebp - 0x7c]
mov byte [ebp - 4], 0
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4ec5c8
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec5c6
mov eax, dword [ecx + 4]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [eax + 4]
call edi
jmp 0x4ec5ce
call edx
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4ec602
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ec600
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call edi
jmp 0x4ec602
call edx
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x18], 0
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4ec636
push 0x57962c
call fcn.00498105
mov ecx, dword [ebp - 0xa4]
mov edx, dword [edi]
add ecx, 0x88
mov esi, dword [ecx]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x7c], eax
cmp eax, esi
je 0x4ec6cc
cmp dword [esi + 0xc], 0
jl 0x4ec6c3
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x4ec6c3
mov ecx, dword [ebp - 0x7c]
call fcn.004021e0
mov dword [ebp - 0x7c], eax
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ec6af
mov edx, dword [esi]
push esi
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4ec6ab
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x7c]
add eax, 0x10
mov dword [ecx + 0x88], eax
jmp 0x4ec6d2
mov ecx, edx
call eax
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x7c]
add eax, 0x10
mov dword [ecx + 0x88], eax
jmp 0x4ec6d2
push dword [edx - 0xc]
push edx
call fcn.00402d50
mov ecx, dword [ebp - 0xa4]
mov dword [edi + 0xc], 0
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
sub eax, edx
sar eax, 2
test eax, eax
jne 0x4ec6f2
push 0x57962c
call fcn.00498105
mov edx, dword [edx]
add ecx, 0x84
mov esi, dword [ecx]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x7c], eax
cmp eax, esi
je 0x4ec782
cmp dword [esi + 0xc], 0
jl 0x4ec779
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x4ec779
mov ecx, dword [ebp - 0x7c]
call fcn.004021e0
mov dword [ebp - 0x7c], eax
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ec765
mov edx, dword [esi]
push esi
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4ec761
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x7c]
add eax, 0x10
mov dword [ecx + 0x84], eax
jmp 0x4ec782
mov ecx, edx
call eax
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x7c]
add eax, 0x10
mov dword [ecx + 0x84], eax
jmp 0x4ec782
push dword [edx - 0xc]
push edx
call fcn.00402d50
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xa4]
push dword [ebx]
mov dword [edi + 0x30], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4ec83d
mov edx, dword [edi + 0x88]
mov ecx, dword [ebx]
push 0
call fcn.004e0890
add esp, 4
test eax, eax
jne 0x4ec8de
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4ec83d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x80]
mov esi, eax
mov ecx, dword [0x59fee8]
mov edi, dword [ebx]
cmp ecx, dword [edx]
jle 0x4ec81e
push 0x59fee8
call fcn.0049af28
add esp, 4
cmp dword [0x59fee8], 0xffffffff
jne 0x4ec81e
mov dword [ebp - 4], 8
call fcn.004e7150
push 0x53eaa0
call fcn.0049b282
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x59fee8
call fcn.0049aee9
add esp, 4
push esi
push edi
push 0x55fe68
push 0x55fec8
push 0x59feec
call fcn.004e76a0
mov edi, dword [ebp - 0xa4]
add esp, 0x14
cmp dword [edi + 0x28], 0
mov dword [edi + 0x100], 0x4e9b40
mov dword [edi + 0x104], 0
mov dword [edi + 0xf8], 0x4ea010
mov dword [edi + 0xfc], 0
jne 0x4ec878
mov ecx, dword [ebp - 0x88]
push 0x64
call fcn.004f66f0
push 0xac
push 0x55ff00
push 0x55ff60
lea ecx, [ebp - 0x78]
call fcn.00428d70
mov esi, eax
mov ecx, dword [ebp - 0x88]
push 0
push 0x4eb240
mov dword [ebp - 4], 9
lea ecx, [ecx + 0x408]
call fcn.0042ad30
push eax
mov edx, esi
mov ecx, 2
call fcn.004ecb20
mov ecx, dword [ebp - 0x4c]
add esp, 4
cmp ecx, 0x10
jb 0x4ecaad
mov eax, dword [ebp - 0x60]
inc ecx
cmp ecx, 0xffffffff
jbe 0x4eca6d
call fcn.004a4e3e
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0x80]
mov dword [edi + 0x4ac], 1
mov eax, dword [0x59fee8]
mov esi, dword [ebx]
cmp eax, dword [edx]
jle 0x4ec93f
push 0x59fee8
call fcn.0049af28
add esp, 4
cmp dword [0x59fee8], 0xffffffff
jne 0x4ec93f
mov dword [ebp - 4], 0xa
call fcn.004e7150
push 0x53eaa0
call fcn.0049b282
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x59fee8
call fcn.0049aee9
add esp, 4
push esi
push 0x55ff90
push str.__s__ApkPatchFile__s__Verify_OK
push 0x59feec
call fcn.004e76a0
add esp, 0x10
mov dword [ebp - 0x7c], 0
lea ecx, [ebp - 0x44]
push 0xb8
push 0x560030
push str.GameDownload::CMainUI::StartParseApkUpdateJson
call fcn.00428d70
mov esi, eax
push 0
push 0x4e9ea0
lea eax, [ebp - 0x7c]
mov dword [ebp - 4], 0xb
push eax
lea ecx, [edi + 0x408]
call fcn.0042ae10
push eax
mov edx, esi
mov ecx, 2
call fcn.004ecb20
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x4ec9fa
mov eax, dword [ebp - 0x2c]
inc ecx
cmp ecx, 0xffffffff
jbe 0x4ec9ba
call fcn.004a4e3e
cmp ecx, 0x1000
jb 0x4ec9f1
test byte [ebp - 0x2c], 0x1f
je 0x4ec9cd
call fcn.004a4e3e
mov ecx, dword [eax - 4]
cmp ecx, eax
jb 0x4ec9d9
call fcn.004a4e3e
sub eax, ecx
cmp eax, 4
jae 0x4ec9e5
call fcn.004a4e3e
cmp eax, 0x23
jbe 0x4ec9ef
call fcn.004a4e3e
mov eax, ecx
push eax
call fcn.0049aa1d
add esp, 4
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
cmp eax, 0x10
jb 0x4ecb00
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x44]
cmp ecx, 0xffffffff
jbe 0x4eca28
call fcn.004a4e3e
cmp ecx, 0x1000
jb 0x4eca5f
test byte [ebp - 0x44], 0x1f
je 0x4eca3b
call fcn.004a4e3e
mov ecx, dword [eax - 4]
cmp ecx, eax
jb 0x4eca47
call fcn.004a4e3e
sub eax, ecx
cmp eax, 4
jae 0x4eca53
call fcn.004a4e3e
cmp eax, 0x23
jbe 0x4eca5d
call fcn.004a4e3e
mov eax, ecx
push eax
call fcn.0049aa1d
add esp, 4
jmp 0x4ecb00
cmp ecx, 0x1000
jb 0x4ecaa4
test byte [ebp - 0x60], 0x1f
je 0x4eca80
call fcn.004a4e3e
mov ecx, dword [eax - 4]
cmp ecx, eax
jb 0x4eca8c
call fcn.004a4e3e
sub eax, ecx
cmp eax, 4
jae 0x4eca98
call fcn.004a4e3e
cmp eax, 0x23
jbe 0x4ecaa2
call fcn.004a4e3e
mov eax, ecx
push eax
call fcn.0049aa1d
add esp, 4
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x4c], 0xf
mov dword [ebp - 0x50], 0
mov byte [ebp - 0x60], 0
cmp eax, 0x10
jb 0x4ecb00
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x78]
cmp ecx, 0xffffffff
jbe 0x4ecad7
call fcn.004a4e3e
cmp ecx, 0x1000
jb 0x4eca5f
test byte [ebp - 0x78], 0x1f
je 0x4eca3b
call fcn.004a4e3e
mov ecx, ebx
call fcn.0042a0d0
push 0x24
push ebx
call fcn.0049aa7d
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049aa22
mov esp, ebp
pop ebp
ret