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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x577a7f
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x5d52e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
xor edi, edi
mov dword [ebp - 4], edi
mov ecx, dword [0x5dda14]
mov dword [ebp - 0x14], edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x2c], 0x5dd9b8
mov dword [ebp - 0x38], 2
call edx
mov ecx, dword [0x5dda14]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
call edx
inc eax
push 0x5dda0c
mov dword [ebp - 0x14], eax
push 0x5dda08
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x14]
push ecx
mov byte [0x5dda2c], 0
call dword [0x5dd484]
test al, al
jne 0x54e9ec
push 0x5dda00
call dword [0x5dd4a0]
mov al, byte [0x5dda01]
mov byte [0x5dda2c], al
cmp al, 0xa
je 0x54e9ec
cmp al, 0xb
je 0x54e9ec
cmp al, 0xc
je 0x54e9ec
cmp al, 0xd
je 0x54e9ec
cmp al, 0x94
je 0x54e9ec
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov edi, eax
mov bl, 3
lea esp, [esp]
cmp edi, dword [ebp - 0x14]
jae 0x54e9d7
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x5c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
push eax
lea ecx, [ebp - 0x20]
push ecx
call fcn.0052c970
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [esi + 0x5c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401210
mov byte [ebp - 4], 2
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x54e928
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
push ecx
push edi
push 4
push edx
lea eax, [ebp + 8]
push 0x5a99b0
push eax
call fcn.00401cf0
mov esi, dword [ebp + 8]
add esp, 0x18
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x54e96b
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x54e98b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x54e9ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x54e9d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc edi
jmp 0x54e8d0
push 0x5c77e8
lea ecx, [ebp - 0x30]
push ecx
mov dword [ebp - 0x30], 0x63f
call fcn.005039bf
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [esi], ecx
add dword [0x5dda10], ecx
cmp dword [ebp - 0x18], 0x10e6
jne 0x54ea39
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
inc eax
cmp dword [ebp - 0x14], eax
jb 0x54ea33
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
inc eax
mov dword [ebp - 0x14], eax
mov dword [esi], 1
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.0052c970
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
push eax
lea ecx, [ebp - 0x24]
call fcn.00401210
mov bl, 5
mov byte [ebp - 4], bl
call fcn.0040c84f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x54ea8c
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
push ecx
push edx
push 4
push eax
lea ecx, [ebp - 0x20]
push 0x5a99b0
push ecx
call fcn.00401cf0
mov esi, dword [ebp - 0x20]
add esp, 0x18
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x54ead3
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
cmp dword [ebp - 0x14], eax
jne 0x54eb73
mov ecx, dword [0x5dd9d4]
sub ecx, dword [0x5dd9d0]
test ecx, 0xfffffffc
jne 0x54eb11
mov edx, dword [0x5dd9e4]
sub edx, dword [0x5dd9e0]
test edx, 0xfffffffc
je 0x54eb1a
cmp dword [ebp + 8], 0x1faf
jne 0x54eb73
movzx eax, byte [0x5dda2c]
add eax, 0xfffffff6
cmp eax, 3
ja case.default.0x54eb29
jmp dword [eax*4 + 0x54ec24]
mov dword [0x5dda00], 0x90a00
jmp case.default.0x54eb29
mov dword [0x5dda00], 0x90b00
jmp case.default.0x54eb29
mov dword [0x5dda00], 0x90a01
jmp case.default.0x54eb29
mov dword [0x5dda00], 0x90b01
push 0x5c77e8
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x34], 0x664
call fcn.005039bf
mov ecx, dword [0x5dda14]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x18]
mov edx, dword [edx + 0x10c]
push eax
call edx
lea eax, [esi - 0x10]
mov edi, 1
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x54ebab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x54ebce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x54ec0e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x54ec0e
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4