Function at 0x59aa6e
Capabilities:
Delete file

Disassembly:
push 0x74c
mov eax, 0x60c66a
call fcn.004db4be
mov ebx, ecx
xor eax, eax
mov dword [ebp - 0x6a4], eax
mov dword [ebp - 0x6a0], eax
mov dword [ebp - 0x69c], eax
mov dword [ebp - 4], eax
movzx eax, word [ebp + 0xc]
sub eax, 0x7f59
mov dword [ebp - 0x68c], eax
js 0x59aaf3
cmp eax, dword [ebx + 0x16c]
jge 0x59aaf3
lea edi, [ebx + 0x168]
push eax
mov ecx, edi
call fcn.0047f882
mov esi, eax
lea ecx, [ebp - 0x6a4]
push esi
call fcn.004186f6
mov edx, dword [esi + 4]
mov ecx, edi
push dword [ebp - 0x68c]
mov dword [ebp - 0x6a0], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x69c], eax
call fcn.0047f882
and dword [eax + 4], 0
jmp 0x59ac4b
mov eax, dword [0x668294]
mov dword [ebp - 0x6b0], eax
push 0x8152
push ecx
lea ecx, [ebp - 0x6b0]
mov byte [ebp - 4], 1
call fcn.0041129f
xor eax, eax
xorps xmm0, xmm0
push 0x208
push eax
mov dword [ebp - 0x6ec], eax
mov dword [ebp - 0x6d4], eax
lea eax, [ebp - 0x220]
push eax
movlpd qword [ebp - 0x6dc], xmm0
call fcn.004e0bc0
mov eax, dword [ebx + 4]
add esp, 0xc
mov esi, dword [ebp - 0x6b0]
mov dword [ebp - 0x6f0], eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x6e8], eax
lea eax, [ebp - 0x6f0]
push eax
mov dword [ebp - 0x6e4], esi
mov dword [ebp - 0x6e0], 1
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
mov dword [ebp - 0x6a0], eax
test eax, eax
jne 0x59ab9c
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x59b075
call fcn.00407965
jmp 0x59b075
and dword [ebp - 0x68c], 0
lea eax, [ebp - 0x68c]
push eax
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x59ac23
and dword [ebp - 0x690], 0
lea eax, [ebp - 0x694]
mov byte [ebp - 4], 3
and dword [ebp - 0x694], 0
push eax
lea eax, [ebp - 0x690]
push eax
push 0x6159e0
push dword [ebp - 0x6a0]
call dword [sym.imp.SHELL32.dll_SHBindToParent]
test eax, eax
js 0x59ac0f
mov eax, dword [ebp - 0x690]
lea edx, [ebp - 0x6a4]
push edx
push 0
push 0x618510
mov ecx, dword [eax]
lea edx, [ebp - 0x694]
push edx
push 1
push dword [ebx + 4]
push eax
call dword [ecx + 0x28]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x690]
test eax, eax
je 0x59ac23
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x68c]
test eax, eax
je 0x59ac37
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esi - 0xc]
mov byte [ebp - 4], 0
cmp ecx, 0x668010
je 0x59ac4b
call fcn.00407965
cmp dword [ebp - 0x6a4], 0
je 0x59b075
and dword [ebp - 0x6ac], 0
push 1
lea eax, [ebp - 0x6ac]
mov byte [ebp - 4], 4
push eax
mov ecx, ebx
call fcn.005a01e6
test eax, eax
js 0x59b061
mov eax, dword [ebp - 0x6a4]
lea edx, [ebp - 0x6a8]
push edx
push 0
push 0
push 1
push dword [ebp - 0x6ac]
mov dword [ebp - 0x6a8], 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
test eax, eax
js 0x59b061
cmp dword [ebp - 0x6a8], 0
je 0x59b061
mov eax, dword [ebp - 0x6a4]
lea edx, [ebp - 0x6a8]
push edx
push 0
push 0
mov ecx, dword [eax]
push 1
push dword [ebp - 0x6ac]
push eax
call dword [ecx + 0x18]
mov ecx, dword [ebp - 0x6a4]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x14]
test esi, esi
js 0x59b061
cmp dword [ebp - 0x6a8], 2
jne 0x59ad0c
push 0
push 0x7f13
push 0x111
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp - 0x6a0], 0
je 0x59b061
test dword [ebp - 0x69c], 0x20000000
je 0x59b061
lea ecx, [ebp - 0x758]
call fcn.0047aba7
push 0x105
lea ecx, [ebp - 0x70c]
call fcn.0040ceb7
push eax
push dword [ebp - 0x6a0]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x59b056
push 0xffffffffffffffff
lea ecx, [ebp - 0x70c]
call fcn.0040ce81
mov eax, dword [ebp - 0x70c]
cmp dword [eax - 8], 0
je 0x59b056
mov ecx, dword [0x668294]
mov dword [ebp - 0x690], ecx
push eax
lea eax, [ebp - 0x690]
mov byte [ebp - 4], 6
push 0x819c
push eax
call fcn.0041c926
add esp, 0xc
push 0x24
push dword [0x674764]
push dword [ebp - 0x690]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x59b040
mov eax, dword [ebp - 0x70c]
push 0x5c
mov ecx, dword [eax - 8]
movzx eax, word [eax + ecx*2 - 2]
pop ecx
cmp ax, cx
je 0x59adeb
lea eax, [ebp - 0x68c]
mov dword [ebp - 0x68c], ecx
push eax
push 1
lea ecx, [ebp - 0x70c]
call fcn.0040f454
lea esi, [ebx + 0x18c]
push esi
lea ecx, [ebp - 0x758]
call fcn.00474263
push 0
mov ecx, esi
call fcn.00597870
cmp dword [ebp - 0x754], 0
je 0x59b040
xor edi, edi
cmp dword [0x673a9c], edi
jbe 0x59aed9
push edi
mov ecx, 0x673a98
call fcn.00413f65
mov esi, eax
lea ecx, [ebp - 0x698]
push esi
call fcn.0040d36e
mov eax, dword [esi + 4]
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x694], eax
mov byte [ebp - 4], 7
push dword [0x673630]
mov esi, dword [ebp - 0x698]
push esi
call fcn.005073b0
pop ecx
pop ecx
test eax, eax
jne 0x59ae73
mov eax, dword [ebp - 0x68c]
mov dword [ebp - 0x710], eax
jmp 0x59aea6
push dword [0x673634]
push esi
call fcn.005073b0
pop ecx
pop ecx
test eax, eax
jne 0x59aea6
mov eax, dword [0x673a90]
cmp dword [eax - 8], 0
je 0x59aeb8
push 0x673a90
lea ecx, [ebp - 0x698]
call fcn.0040d242
mov esi, dword [ebp - 0x698]
lea eax, [ebp - 0x698]
push eax
lea ecx, [ebp - 0x720]
call fcn.00413f16
lea ecx, [esi - 0xc]
mov byte [ebp - 4], 6
cmp ecx, 0x668010
je 0x59aecc
call fcn.00407965
inc edi
cmp edi, dword [0x673a9c]
jb 0x59ae21
mov eax, dword [0x668294]
lea edx, [ebp - 0x694]
mov dword [ebp - 0x694], eax
mov ecx, 0x819d
mov dword [ebp - 0x68c], eax
lea eax, [ebp - 0x68c]
push 0x7c
push eax
call fcn.005c95ce
mov esi, dword [ebp - 0x68c]
mov edi, dword [ebp - 0x694]
pop ecx
pop ecx
push esi
push ecx
push edi
lea ecx, [ebp - 0x688]
call fcn.00430663
push dword [ebx + 4]
lea eax, [ebp - 0x758]
push eax
push 0x59b08a
lea ecx, [ebp - 0x688]
call fcn.004307d3
lea ecx, [ebp - 0x688]
test eax, eax
jne 0x59af6e
call fcn.00430746
lea ecx, [esi - 0xc]
mov ebx, 0x668010
cmp ecx, ebx
je 0x59af59
call fcn.00407965
lea ecx, [edi - 0xc]
cmp ecx, ebx
je 0x59b040
call fcn.00407965
jmp 0x59b040
call fcn.00430746
lea ecx, [esi - 0xc]
mov esi, 0x668010
cmp ecx, esi
je 0x59af84
call fcn.00407965
lea ecx, [edi - 0xc]
cmp ecx, esi
je 0x59af90
call fcn.00407965
push 0
push 0x7c
lea ecx, [ebp - 0x708]
call fcn.0042a054
push 0
push 0x7c
lea ecx, [ebp - 0x704]
call fcn.0042a054
mov eax, dword [ebx + 4]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x704]
xor ebx, ebx
mov dword [ebp - 0x6d0], eax
mov eax, dword [ebp - 0x708]
push 0x41
pop edx
movlpd qword [ebp - 0x6ba], xmm0
mov dword [ebp - 0x6cc], 2
mov dword [ebp - 0x6c8], eax
mov dword [ebp - 0x6c4], ecx
mov word [ebp - 0x6c0], dx
mov dword [ebp - 0x6be], ebx
cmp dword [eax - 8], ebx
je 0x59b00d
cmp dword [ecx - 8], ebx
je 0x59b00d
lea eax, [ebp - 0x6d0]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov esi, ebx
cmp dword [ebp - 0x6fc], ebx
jbe 0x59b034
push esi
lea ecx, [ebp - 0x700]
call fcn.0041d3f0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
inc esi
cmp esi, dword [ebp - 0x6fc]
jb 0x59b017
push ebx
lea ecx, [ebp - 0x758]
call fcn.00597870
mov ecx, dword [ebp - 0x690]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x59b056
call fcn.00407965
lea ecx, [ebp - 0x758]
call fcn.0047abda
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x6ac]
test eax, eax
je 0x59b075
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x6a4]
call fcn.004653f2
xor eax, eax
call fcn.004db46d
ret 0x10