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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53df6b
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
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 edi, ecx
mov eax, dword [edi + 0x3e8]
xor ebx, ebx
sub eax, dword [edi + 0x3e4]
sar eax, 2
mov dword [ebp - 0x38], ebx
test eax, eax
je 0x529596
nop dword [eax]
mov eax, dword [edi + 0x3e8]
mov ecx, dword [edi + 0x3e4]
sub eax, ecx
sar eax, 2
cmp eax, ebx
jbe 0x5295eb
mov eax, dword [ecx + ebx*4]
lea ecx, [edi + 0x424]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0042be10
mov esi, dword [ebp - 0x48]
push dword [esi + 0x60]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x5293fb
push dword [esi + 0x60]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esi + 0x6c]
push eax
lea edx, [esi + 0x64]
lea ecx, [ebp - 0x3c]
call fcn.00401e60
add esp, 4
mov dword [ebp - 4], 0
push dword [ebp - 0x3c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x52953e
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x18], 0
cmp word [eax], 0
jne 0x529446
xor edx, edx
jmp 0x52945f
mov edx, eax
lea esi, [edx + 2]
nop dword [eax + eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x529450
sub edx, esi
sar edx, 1
push edx
push eax
lea ecx, [ebp - 0x28]
call fcn.00405040
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
push 0
lea edx, [ebp - 0x34]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.004cd080
mov byte [ebp - 4], 1
add esp, 4
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x529529
mov edx, dword [ebp - 0x30]
push ecx
call fcn.00406c20
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
mov ebx, dword [ebp - 0x34]
add esp, 4
sub ecx, ebx
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xaaaaaaa
ja 0x529703
lea eax, [eax + eax*2]
shl eax, 3
cmp eax, 0x1000
jb 0x529508
test bl, 0x1f
jne 0x529703
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x529703
sub ebx, eax
cmp ebx, 4
jb 0x529703
cmp ebx, 0x23
ja 0x529703
mov ebx, eax
push ebx
call fcn.0049aa1d
mov ebx, dword [ebp - 0x38]
add esp, 4
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x52953e
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00403010
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x52957b
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x529577
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x52957b
mov ecx, edx
call esi
mov eax, dword [edi + 0x3e8]
inc ebx
sub eax, dword [edi + 0x3e4]
sar eax, 2
mov dword [ebp - 0x38], ebx
cmp ebx, eax
jb 0x5293b0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
push str.TBOX_32
lea edx, [edi + 0x438]
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x40]
call fcn.00401d60
add esp, 4
mov byte [ebp - 4], 4
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp word [edx], ax
jne 0x5295f5
xor ecx, ecx
jmp 0x52960f
push 0x57962c
call fcn.00498105
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x529600
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00405040
mov byte [ebp - 4], 6
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x40]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x529655
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x529651
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x529655
mov ecx, edx
call esi
push 0
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x28]
call fcn.004cd080
push str.TBOX_64
lea edx, [edi + 0x438]
lea ecx, [ebp - 0x38]
call fcn.00401d60
add esp, 8
mov byte [ebp - 4], 7
mov edx, dword [eax]
cmp word [edx], 0
jne 0x529688
xor ecx, ecx
jmp 0x52969f
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x529690
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00405040
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x5296e0
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5296dc
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x5296e0
mov ecx, edx
call esi
push 0
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x28]
call fcn.004cd080
mov eax, dword [ebp - 0x14]
add esp, 4
cmp eax, 8
jb 0x529749
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
jbe 0x529708
call fcn.004a4e3e
add eax, eax
cmp eax, 0x1000
jb 0x529740
test byte [ebp - 0x28], 0x1f
je 0x52971c
call fcn.004a4e3e
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x529728
call fcn.004a4e3e
sub ecx, eax
cmp ecx, 4
jae 0x529734
call fcn.004a4e3e
cmp ecx, 0x23
jbe 0x52973e
call fcn.004a4e3e
mov ecx, eax
push ecx
call fcn.0049aa1d
add esp, 4
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
test ecx, ecx
je 0x5297d9
mov edx, dword [ebp - 0x30]
push ecx
call fcn.00406c20
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
mov ebx, dword [ebp - 0x34]
add esp, 4
sub ecx, ebx
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xaaaaaaa
jbe 0x529795
call fcn.004a4e3e
lea eax, [eax + eax*2]
shl eax, 3
cmp eax, 0x1000
jb 0x5297d0
test bl, 0x1f
je 0x5297ac
call fcn.004a4e3e
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x5297b8
call fcn.004a4e3e
sub ebx, eax
cmp ebx, 4
jae 0x5297c4
call fcn.004a4e3e
cmp ebx, 0x23
jbe 0x5297ce
call fcn.004a4e3e
mov ebx, eax
push ebx
call fcn.0049aa1d
add esp, 4
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