Function at 0x4851e9
Capabilities:
Delete file

Disassembly:
push ebp
lea ebp, [esp - 0x44]
sub esp, 0x44
push 0xffffffffffffffff
push 0x541602
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x596c60]
xor eax, ebp
mov dword [ebp + 0x40], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], 0
cmp dword [ebp + 0x5c], 0
jne 0x485053
cmp dword [ebp + 0x60], 8
jb 0x485049
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x485049
push eax
call fcn.00507b54
add esp, 4
mov eax, 0x57
jmp 0x4853e4
push 0x1000
call fcn.0050828d
mov esi, eax
add esp, 4
mov dword [ebp + 0x20], esi
mov byte [ebp - 4], 1
test esi, esi
jne 0x4851d6
mov eax, dword [0x59f554]
test al, 1
jne 0x48509c
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 2
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4850b1
cmp byte [eax + 0x19], 6
jb 0x4850b1
mov al, 1
jmp 0x4850b3
xor al, al
cmp byte [0x59f560], 0
jne 0x4850cd
cmp byte [0x59f561], 0
jne 0x4850cd
test al, al
je 0x4851b0
sub esp, 8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa8]
call fcn.0047b4d0
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 4
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa8]
call fcn.0047ee50
mov edx, str..DirectoryOperation.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x67
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Failed_to_DeleteDirectoryContents_not_enough_memory.
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 4
cmp dword [ebp + 0x3c], 0x10
jb 0x48514f
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x48514f
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp + 0x28]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 6
cmp dword [esi + 0x14], 0x10
jb 0x48516c
mov esi, dword [esi]
call fcn.004a1320
push esi
push 6
mov ecx, eax
call fcn.004a1510
cmp dword [ebp + 0x3c], 0x10
jb 0x485191
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x485191
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.0047b5a0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
cmp dword [ebp + 0x60], 8
jb 0x4851c6
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x4851c6
push eax
call fcn.00507b54
add esp, 4
mov eax, 8
jmp 0x4853e4
push 0x1000
push 0
push esi
call fcn.0050c510
add esp, 0xc
lea ecx, [ebp + 0x4c]
push 4
push str..
call fcn.004824e0
cmp dword [ebp + 0x60], 8
mov eax, dword [ebp + 0x4c]
jae 0x485201
lea eax, [ebp + 0x4c]
push eax
push 0x800
push esi
call fcn.005083a0
xor eax, eax
add esp, 0xc
mov dword [ebp + 4], eax
xor edi, edi
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], eax
mov dword [ebp], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
mov word [ebp + 0x1c], ax
mov eax, 0x614
mov word [ebp + 0x10], ax
lea eax, [ebp]
push eax
mov dword [ebp + 4], 3
mov dword [ebp + 8], esi
mov dword [ebp + 0x24], edi
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
je 0x485259
mov edi, 0x10
mov dword [ebp + 0x24], edi
mov eax, dword [0x59f554]
test al, 1
jne 0x485284
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 8
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x485299
cmp byte [eax + 0x19], 6
jb 0x485299
mov al, 1
jmp 0x48529b
xor al, al
cmp byte [0x59f560], 0
jne 0x4852b5
cmp byte [0x59f561], 0
jne 0x4852b5
test al, al
je 0x4853c3
sub esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xa8]
call fcn.0047b4d0
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 0xa
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xa8]
call fcn.0047ee50
mov edx, str..DirectoryOperation.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x78
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.DeleteDirectoryContents_
mov ecx, eax
call fcn.0047f0b0
mov edx, esi
mov ecx, eax
call fcn.004a1820
mov edx, str.____returned
mov ecx, eax
call fcn.0047f0b0
push edi
mov ecx, eax
call fcn.0047b2d0
mov byte [ebp - 4], 0xa
cmp dword [ebp + 0x3c], 0x10
jb 0x485354
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x485354
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp + 0x28]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0047b620
mov ebx, eax
mov byte [ebp - 4], 0xc
cmp dword [ebx + 0x14], 0x10
jb 0x485371
mov ebx, dword [ebx]
call fcn.004a1320
push ebx
push 6
mov ecx, eax
call fcn.004a1510
cmp dword [ebp + 0x3c], 0x10
jb 0x485396
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x485396
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 9
call fcn.0047b5a0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x4853c3
push esi
call fcn.00507b54
add esp, 4
cmp dword [ebp + 0x60], 8
jb 0x4853e2
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x4853e2
push eax
call fcn.00507b54
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x40]
xor ecx, ebp
call fcn.005072fd
lea esp, [ebp + 0x44]
pop ebp
ret 0x18