Function at 0x45f1d0
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x508ec9
mov eax, dword fs:[0]
push eax
sub esp, 0xec
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5364d0]
xor eax, esp
push eax
lea eax, [esp + 0x100]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x114]
mov ebx, dword [esp + 0x110]
mov eax, dword [ebp]
xor esi, esi
cmp eax, esi
jne 0x45f220
call fcn.004e48f7
mov eax, dword [ebp]
cmp eax, esi
je 0x45f224
mov eax, dword [eax]
jmp 0x45f226
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f233
call fcn.004e48f7
mov edx, dword [ebp + 4]
lea eax, [esp + 0x5c]
mov dword [edx + 0x2c], 1
call fcn.0044bb40
mov dword [esp + 0x5c], vtable.C360zipDialogT_class_CConvertDlgImpl__0__1__0_.0
mov dword [esp + 0x108], esi
mov eax, dword [ebx + 0x51e4]
cmp eax, esi
je 0x45f26e
mov ecx, dword [eax]
mov edx, dword [ecx + 0x90]
push eax
call edx
test eax, eax
je 0x45f275
mov dword [esp + 0xc4], esi
mov eax, dword [ebx + 4]
push eax
lea edi, [esp + 0x60]
call fcn.00473ed0
cmp eax, 1
je 0x45f2cf
mov eax, dword [ebp]
cmp eax, esi
jne 0x45f29a
call fcn.004e48f7
mov eax, dword [ebp]
cmp eax, esi
je 0x45f29e
mov eax, dword [eax]
jmp 0x45f2a0
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f2ad
call fcn.004e48f7
mov edx, dword [ebp + 4]
mov dword [edx + 0x2c], esi
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x10c], 0xffffffff
call fcn.0044ced0
xor eax, eax
jmp 0x45f90b
mov edx, dword [0x563288]
mov eax, dword [edx + 0xc]
mov ecx, 0x563288
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x10c], 1
call fcn.00474090
mov byte [esp + 0x108], 2
mov edx, dword [0x563288]
mov eax, dword [edx + 0xc]
mov ecx, 0x563288
call eax
mov edx, dword [0x563288]
add eax, 0x10
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x563288
call eax
mov edx, dword [0x563288]
add eax, 0x10
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x563288
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x108], 3
mov eax, dword [ebp]
cmp eax, esi
jne 0x45f360
call fcn.004e48f7
mov eax, dword [ebp]
cmp eax, esi
je 0x45f364
mov eax, dword [eax]
jmp 0x45f366
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f373
call fcn.004e48f7
mov eax, dword [ebp + 4]
add eax, 0x1c
lea edi, [esp + 0x30]
call fcn.00404930
mov edx, dword [esp + 0x30]
mov eax, dword [edx - 0xc]
cmp eax, esi
je 0x45f3e2
mov eax, edi
push eax
mov eax, 1
lea ecx, [esp + 0x30]
call fcn.00429020
push eax
mov ecx, 0x511ddc
call fcn.004728c0
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45f3d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x2b], 0
je 0x45f3e2
push 0x5c
lea edi, [esp + 0x34]
call fcn.00437f60
mov eax, dword [ebp]
cmp eax, esi
jne 0x45f3f5
call fcn.004e48f7
mov eax, dword [ebp]
cmp eax, esi
je 0x45f3f9
mov eax, dword [eax]
jmp 0x45f3fb
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f408
call fcn.004e48f7
mov eax, dword [ebp + 4]
add eax, 0x20
lea edi, [esp + 0x34]
call fcn.00404930
mov eax, dword [ebp]
cmp eax, esi
jne 0x45f42a
call fcn.004e48f7
mov eax, dword [ebp]
cmp eax, esi
je 0x45f42e
mov eax, dword [eax]
jmp 0x45f430
xor eax, eax
mov edx, dword [ebp + 4]
cmp edx, dword [eax + 0x18]
jne 0x45f43d
call fcn.004e48f7
mov eax, dword [ebp + 4]
add eax, 0x10
mov eax, dword [eax + 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
cmp eax, esi
jne 0x45f455
xor ecx, ecx
jmp 0x45f46f
mov ecx, eax
lea edi, [ecx + 2]
lea ebx, [ebx]
mov dx, word [ecx]
add ecx, 2
cmp dx, si
jne 0x45f460
sub ecx, edi
sar ecx, 1
push ecx
push eax
lea eax, [esp + 0x40]
call fcn.00401560
lea eax, [esp + 0x30]
push eax
lea edi, [esp + 0x48]
call fcn.00475fa0
cmp dword [ebx + 0x4c98], 1
jne 0x45f6b1
mov eax, dword [ebp]
mov esi, dword [ebx + 0x51e4]
test eax, eax
jne 0x45f4ae
call fcn.004e48f7
mov eax, dword [ebp]
test eax, eax
je 0x45f4b2
mov eax, dword [eax]
jmp 0x45f4b4
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f4c1
call fcn.004e48f7
mov edx, dword [esi]
mov edi, dword [ebp + 4]
mov eax, dword [edx + 0x6c]
push esi
add edi, 0x10
call eax
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45f4e4
push 0x80004005
call fcn.00401540
mov edi, dword [edi + 8]
push eax
push edi
call fcn.004e4707
add esp, 8
test eax, eax
jne 0x45f6b1
mov edx, dword [0x563288]
mov eax, dword [edx + 0xc]
push ecx
mov ecx, 0x563288
mov dword [esp + 0x40], esp
mov esi, esp
call eax
add eax, 0x10
mov dword [esi], eax
call fcn.004013b0
mov byte [esp + 0x10c], 5
mov edx, dword [esp + 0xc0]
mov eax, dword [0x563288]
push 4
lea ecx, [esp + 0x2c]
push ecx
push edx
mov edx, dword [eax + 0xc]
push ecx
mov ecx, 0x563288
lea edi, [esp + 0x58]
mov dword [esp + 0x40], esp
mov esi, esp
call edx
add eax, 0x10
mov dword [esi], eax
call fcn.004013b0
mov byte [esp + 0x11c], 5
mov edx, dword [ebx + 0x51e4]
push ebx
mov ecx, edi
mov byte [esp + 0x120], 3
call fcn.0046f440
mov esi, eax
mov dword [esp + 0x3c], esi
test esi, esi
jne 0x45f743
mov eax, dword [ebx + 0x51e4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6c]
push eax
call edx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.00401640
mov byte [esp + 0x108], 7
mov eax, dword [ebx + 0x51e4]
mov edx, dword [eax]
mov edi, dword [ebx + 0xa4]
push 1
push eax
mov eax, dword [edx + 0x74]
lea esi, [ebx + 0xa4]
call eax
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 0x24]
push eax
push ecx
mov ecx, esi
call edx
cmp dword [ebx + 0x51e4], 0
jne 0x45f5fe
lea ecx, [esp + 0x2c]
call fcn.004016f0
lea esi, [esp + 0x30]
call fcn.004963c0
lea esi, [esp + 0x44]
call fcn.00475f50
lea ecx, [esp + 0x24]
call fcn.004016f0
jmp 0x45f2b3
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.SHELL32.dll_ILCreateFromPathW]
mov edi, eax
mov dword [esp + 0x40], edi
push edi
mov byte [esp + 0x10c], 8
call dword [sym.imp.SHELL32.dll_ILClone]
lea edx, [ebx + 0x4f1c]
mov esi, eax
mov eax, edx
call fcn.004745c0
mov eax, dword [ebx + 0x4400]
push eax
call dword [sym.imp.SHELL32.dll_ILFree]
push edi
call dword [sym.imp.SHELL32.dll_ILClone]
mov edx, dword [esp + 0x24]
mov dword [ebx + 0x4400], eax
lea eax, [ebx + 0x41f8]
mov esi, 0x104
sub edx, eax
jmp 0x45f660
lea ecx, [esi + 0x7ffffefa]
test ecx, ecx
je 0x45f680
movzx ecx, word [eax + edx]
test cx, cx
je 0x45f680
mov word [eax], cx
add eax, 2
sub esi, 1
jne 0x45f660
jmp 0x45f684
test esi, esi
jne 0x45f687
sub eax, 2
xor edx, edx
mov word [eax], dx
test edi, edi
je 0x45f697
push edi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x108], 3
call fcn.004016f0
mov esi, dword [esp + 0x3c]
jmp 0x45f743
mov eax, dword [0x563288]
mov edx, dword [eax + 0xc]
push ecx
mov ecx, 0x563288
mov dword [esp + 0x44], esp
mov esi, esp
call edx
add eax, 0x10
mov dword [esi], eax
call fcn.004013b0
push 4
lea eax, [esp + 0x2c]
mov byte [esp + 0x110], 0xa
mov ecx, dword [esp + 0xc4]
push eax
mov eax, dword [ebp]
lea edi, [esp + 0x50]
push ecx
test eax, eax
jne 0x45f6ff
call fcn.004e48f7
mov eax, dword [ebp]
test eax, eax
je 0x45f703
mov eax, dword [eax]
jmp 0x45f705
xor eax, eax
mov edx, dword [ebp + 4]
cmp edx, dword [eax + 0x18]
jne 0x45f712
call fcn.004e48f7
mov eax, dword [ebp + 4]
add eax, 0x10
mov eax, dword [eax + 8]
push ecx
sub eax, 0x10
mov dword [esp + 0x50], esp
mov esi, esp
call fcn.004048c0
add eax, 0x10
mov dword [esi], eax
push ebx
mov ecx, edi
xor edx, edx
mov byte [esp + 0x120], 3
call fcn.0046f440
mov esi, eax
mov eax, dword [ebp]
test eax, eax
jne 0x45f756
call fcn.004e48f7
mov eax, dword [ebp]
test eax, eax
je 0x45f75a
mov eax, dword [eax]
jmp 0x45f75c
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f769
call fcn.004e48f7
mov edx, dword [ebp + 4]
mov dword [edx + 0x2c], 0
test esi, esi
jne 0x45f8b7
cmp dword [esp + 0xc0], esi
je 0x45f7ce
mov esi, ebp
call fcn.00475c20
add eax, 8
mov eax, dword [eax]
sub eax, 0x10
call fcn.004048c0
lea esi, [eax + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push esi
push 0x2005
push 4
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45f7ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp]
test eax, eax
jne 0x45f7e1
call fcn.004e48f7
mov eax, dword [ebp]
test eax, eax
je 0x45f7e5
mov eax, dword [eax]
jmp 0x45f7e7
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f7f4
call fcn.004e48f7
mov edi, dword [ebp + 4]
add edi, 0x18
lea eax, [esp + 0x24]
call fcn.00404930
mov eax, dword [ebp]
test eax, eax
jne 0x45f816
call fcn.004e48f7
mov eax, dword [ebp]
test eax, eax
je 0x45f81a
mov eax, dword [eax]
jmp 0x45f81c
xor eax, eax
mov edx, dword [ebp + 4]
cmp edx, dword [eax + 0x18]
jne 0x45f829
call fcn.004e48f7
mov eax, dword [ebp + 4]
mov dword [eax + 0x28], 1
mov eax, dword [ebp]
test eax, eax
jne 0x45f846
call fcn.004e48f7
mov eax, dword [ebp]
test eax, eax
je 0x45f84a
mov eax, dword [eax]
jmp 0x45f84c
xor eax, eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 0x18]
jne 0x45f859
call fcn.004e48f7
mov edi, dword [ebp + 4]
add edi, 0x18
call fcn.0044b5f0
lea esi, [esp + 0x30]
call fcn.004963c0
lea esi, [esp + 0x44]
call fcn.00475f50
mov byte [esp + 0x108], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45f89e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x5c]
push ecx
mov dword [esp + 0x10c], 0xffffffff
call fcn.0044ced0
xor eax, eax
jmp 0x45f90b
lea esi, [esp + 0x30]
call fcn.004963c0
lea esi, [esp + 0x44]
call fcn.00475f50
mov byte [esp + 0x108], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45f8f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x5c]
push ecx
mov dword [esp + 0x10c], 0xffffffff
call fcn.0044ced0
mov eax, 1
mov ecx, dword [esp + 0x100]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret 8