Function at 0x4594eb
Capabilities:
Delete file
Move file

Disassembly:
push 0x268
mov eax, 0x492f54
call fcn.0048e728
mov ebx, edx
mov edi, ecx
mov eax, dword [ebp + 8]
and dword [ebp - 0x264], 0
push 0x208
mov dword [ebp - 0x26c], eax
lea eax, [ebp - 0x224]
push 0
push eax
mov dword [ebp - 0x270], ebx
call sub.msvcrt.dll_memset
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 4], ecx
mov dword [ebp - 0x268], ecx
mov dword [ebp - 0x248], ecx
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 1
push eax
mov esi, 0x40fa58
push esi
push 1
push ecx
push 0x40f074
call dword [sym.imp.api_ms_win_core_com_l1_1_1.dll_CoCreateInstance]
test eax, eax
jns 0x45957c
lea eax, [ebp - 0x248]
push eax
push esi
push 1
push 0
push 0x40f074
call dword [sym.imp.api_ms_win_core_com_l1_1_1.dll_CoCreateInstance]
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
xor edx, edx
mov dword [ebp - 0x254], edx
mov dword [ebp - 0x258], edx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x254]
mov eax, dword [ebp - 0x248]
push ecx
push edx
push SysReAllocString
mov esi, dword [eax]
push edx
push edi
push eax
mov ecx, dword [esi + 0xc]
call dword [0x4a60bc]
call dword [esi + 0xc]
test eax, eax
jns 0x4595e3
mov eax, dword [ebp - 0x248]
lea ecx, [ebp - 0x254]
push ecx
push 0
push SysReAllocString
mov esi, dword [eax]
push 0
push edi
push eax
mov ecx, dword [esi + 0xc]
call dword [0x4a60bc]
call dword [esi + 0xc]
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x248]
lea ecx, [ebp - 0x258]
push ecx
push 0
mov edi, SysReAllocString
mov esi, dword [eax]
push edi
push 0
push ebx
mov ecx, dword [esi + 0xc]
push eax
call dword [0x4a60bc]
call dword [esi + 0xc]
test eax, eax
jns 0x459637
mov eax, dword [ebp - 0x248]
lea ecx, [ebp - 0x258]
push ecx
push 0
push edi
mov esi, dword [eax]
push 0
push ebx
push eax
mov ecx, dword [esi + 0xc]
call dword [0x4a60bc]
call dword [esi + 0xc]
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, 0x412f20
lea edi, [ebp - 0x244]
mov esi, eax
lea edx, [ebp - 0x244]
push edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [ebp - 0x234]
mov eax, dword [ebp - 0x254]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x4a60bc]
call esi
test eax, eax
jns 0x459699
mov eax, dword [ebp - 0x254]
lea edx, [ebp - 0x244]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x258]
lea edx, [ebp - 0x234]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x4a60bc]
call esi
test eax, eax
jns 0x4596de
mov eax, dword [ebp - 0x258]
lea edx, [ebp - 0x234]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
lea edx, [ebp - 0x244]
xor ecx, ecx
lea esi, [ebp - 0x234]
mov eax, dword [edx + ecx*4]
cmp eax, dword [esi + ecx*4]
jne 0x4596fc
inc ecx
cmp ecx, 4
jne 0x4596ec
jmp 0x459707
push 0x80070057
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
lea edx, [ebp - 0x224]
mov ecx, ebx
call fcn.0045918b
test eax, eax
jne 0x459723
push 0x8000ffff
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
and dword [ebp - 0x250], 0
mov byte [ebp - 4], 4
lea edx, [ebp - 0x250]
mov eax, dword [ebp - 0x248]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x38]
mov ecx, esi
call dword [0x4a60bc]
call esi
test eax, eax
jns 0x459773
mov eax, dword [ebp - 0x248]
lea edx, [ebp - 0x250]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x38]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x250]
lea ecx, [ebp - 0x224]
mov edi, 0x40000000
mov dword [ebp - 0x268], 1
push edi
push ecx
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x3c]
call dword [0x4a60bc]
call dword [esi + 0x3c]
test eax, eax
jns 0x4597c7
mov eax, dword [ebp - 0x250]
lea ecx, [ebp - 0x224]
push edi
push ecx
push eax
mov esi, dword [eax]
mov ecx, dword [esi + 0x3c]
call dword [0x4a60bc]
call dword [esi + 0x3c]
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x250]
xor ecx, ecx
push ecx
push ecx
push ecx
mov esi, dword [eax]
push ecx
push eax
mov ecx, dword [esi + 0x14]
call dword [0x4a60bc]
call dword [esi + 0x14]
test eax, eax
jns 0x459808
mov eax, dword [ebp - 0x250]
xor ecx, ecx
push ecx
push ecx
push ecx
mov esi, dword [eax]
push ecx
push eax
mov ecx, dword [esi + 0x14]
call dword [0x4a60bc]
call dword [esi + 0x14]
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
and dword [ebp - 0x24c], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
mov eax, dword [ebp - 0x248]
mov edi, 0x40f064
push ecx
push edi
lea ecx, [ebp - 0x234]
mov esi, dword [eax]
push ecx
push eax
mov ecx, dword [esi + 0x20]
call dword [0x4a60bc]
call dword [esi + 0x20]
test eax, eax
jns 0x45986b
mov eax, dword [ebp - 0x248]
lea ecx, [ebp - 0x24c]
push ecx
push edi
lea ecx, [ebp - 0x234]
mov esi, dword [eax]
push ecx
push eax
mov ecx, dword [esi + 0x20]
call dword [0x4a60bc]
call dword [esi + 0x20]
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x24c]
push 2
push dword [ebp - 0x250]
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0xc]
call dword [0x4a60bc]
call dword [esi + 0xc]
test eax, eax
jns 0x4598b1
mov eax, dword [ebp - 0x24c]
push 2
push dword [ebp - 0x250]
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov edx, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x254]
call fcn.0041e9cf
mov eax, dword [ebp - 0x254]
lea edx, [ebp - 0x260]
and dword [ebp - 0x260], 0
and dword [ebp - 0x25c], 0
push edx
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x4a60bc]
call esi
test eax, eax
jns 0x459915
mov eax, dword [ebp - 0x254]
lea edx, [ebp - 0x260]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x258]
lea edx, [ebp - 0x25c]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x4a60bc]
call esi
test eax, eax
jns 0x45995a
mov eax, dword [ebp - 0x258]
lea edx, [ebp - 0x25c]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov eax, dword [ebp - 0x260]
cmp eax, dword [ebp - 0x25c]
je 0x459973
push 0x80070057
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov edi, dword [ebp - 0x26c]
xor esi, esi
cmp esi, dword [ebp - 0x25c]
jae 0x4599a6
mov edx, dword [ebp - 0x258]
push edi
push esi
push dword [ebp - 0x248]
push ecx
push dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x254]
call fcn.00459adc
inc esi
jmp 0x45997b
mov eax, dword [ebp - 0x24c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call dword [0x4a60bc]
call esi
test eax, eax
jns 0x4599dd
mov eax, dword [ebp - 0x24c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call dword [0x4a60bc]
call esi
push eax
call dword [sym.imp.MFC42u.dll_AfxThrowOleException]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x264], 1
test eax, eax
je 0x459a05
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a60bc]
call esi
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x459a23
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a60bc]
call esi
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x258]
test eax, eax
je 0x459a41
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a60bc]
call esi
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x459a5f
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a60bc]
call esi
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x248]
test eax, eax
je 0x459aa1
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a60bc]
call esi
jmp 0x459aa1
push 3
push ebx
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov esi, eax
test esi, esi
jne 0x459acd
cmp dword [ebp - 0x268], 0
je 0x459acd
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, esi
call fcn.0048e666
ret 4