Function at 0x10077b3a
Capabilities:
Delete file
Move file

Disassembly:
push 0x4c8
mov eax, 0x1018da6f
call fcn.10188e66
mov ebx, ecx
cmp byte [ebx + 0x10], 0
mov edi, dword [ebp + 8]
je 0x100780b8
push 0x208
lea eax, [ebp - 0x238]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x4cc]
push eax
lea eax, [ebp - 0x440]
push eax
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x10077bd2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x10077ba3
movzx esi, si
or esi, 0x80070000
test esi, esi
jns 0x10077bd2
mov eax, dword [0x101c33f0]
cmp eax, 0x101c33f0
je 0x100780e3
test byte [eax + 0x44], 1
je 0x100780e3
push esi
push dword [eax + 0x3c]
mov edx, 0x10020390
push dword [eax + 0x38]
push 0x69
jmp 0x100780dd
push ecx
push dword [ebp - 0x4cc]
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0x488]
call fcn.1006f5b4
and dword [ebp - 4], 0
mov eax, dword [0x101c33f0]
cmp eax, 0x101c33f0
je 0x10077c14
test byte [eax + 0x44], 4
je 0x10077c14
push dword [eax + 0x3c]
mov edx, 0x10020390
push dword [eax + 0x38]
push 0x6a
pop ecx
call fcn.1004a045
cmp dword [ebx + 0xc], 0
mov eax, 0x100200e0
jne 0x10077c24
mov eax, 0x100200c8
cmp dword [ebp - 0x474], 8
mov ecx, dword [ebp - 0x488]
jae 0x10077c39
lea ecx, [ebp - 0x488]
push eax
push ecx
push 0x10020168
lea eax, [ebp - 0x238]
push 0x104
push eax
call fcn.10045113
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x10077c89
mov ecx, dword [0x101c33f0]
cmp ecx, 0x101c33f0
je 0x100780e3
test byte [ecx + 0x44], 1
je 0x100780e3
push esi
push dword [ecx + 0x3c]
mov edx, 0x10020390
push dword [ecx + 0x38]
push 0x6b
jmp 0x100780dd
and dword [ebp - 0x4c8], 0
and dword [ebp - 0x4bc], 0
lea edx, [ebp - 0x4c8]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x238]
call fcn.100a9adb
mov esi, eax
test esi, esi
jns 0x10077cf2
mov ecx, dword [0x101c33f0]
cmp ecx, 0x101c33f0
je 0x10077cda
test byte [ecx + 0x44], 1
je 0x10077cda
push esi
push dword [ecx + 0x3c]
mov edx, 0x10020390
push dword [ecx + 0x38]
push 0x6c
pop ecx
call fcn.1004a069
push esi
lea ecx, [ebp - 0x4c4]
call fcn.10044b9d
push 0x101c213c
mov eax, ecx
jmp 0x100780f6
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x4a0]
call fcn.1005236c
mov byte [ebp - 4], 3
lea eax, [ebp - 0x4bc]
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebp - 0x4c8]
push eax
call fcn.100a9cf1
mov esi, eax
test esi, esi
jns 0x10077d47
mov ecx, dword [0x101c33f0]
cmp ecx, 0x101c33f0
je 0x10077cda
test byte [ecx + 0x44], 1
je 0x10077cda
push esi
push dword [ecx + 0x3c]
mov edx, 0x10020390
push dword [ecx + 0x38]
push 0x6d
jmp 0x10077cd4
lea ecx, [ebp - 0x4c0]
call fcn.100528a8
mov byte [ebp - 4], 4
call fcn.1008349f
push 0x1001fca8
lea edx, [ebp - 0x488]
lea ecx, [ebp - 0x458]
call fcn.1006e1db
mov byte [ebp - 4], 5
cmp dword [ebp - 0x444], 8
mov edx, dword [ebp - 0x458]
jae 0x10077d8a
lea edx, [ebp - 0x458]
mov ecx, edi
call fcn.100e31ac
mov eax, dword [ebx + 0x30]
test byte [eax + 0x3c], 0x18
mov eax, dword [ebp - 0x458]
setne cl
cmp dword [ebp - 0x444], 8
jae 0x10077db0
lea eax, [ebp - 0x458]
mov esi, dword [ebp - 0x4bc]
push ecx
push eax
mov ecx, esi
call fcn.100a9d92
mov edi, eax
test edi, edi
jns 0x10077df3
mov ecx, dword [0x101c33f0]
cmp ecx, 0x101c33f0
je 0x10077ded
test byte [ecx + 0x44], 1
je 0x10077ded
push edi
push dword [ecx + 0x3c]
mov edx, 0x10020390
push dword [ecx + 0x38]
push 0x6e
pop ecx
call fcn.1004a069
push edi
jmp 0x10077cdb
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x10077e08
lea eax, [ebp - 0x458]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x10077e5c
mov eax, dword [0x101c33f0]
cmp eax, 0x101c33f0
je 0x10077e5c
test byte [eax + 0x44], 2
je 0x10077e5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x444], 8
mov edx, eax
mov ecx, dword [ebp - 0x458]
jae 0x10077e42
lea ecx, [ebp - 0x458]
mov eax, dword [0x101c33f0]
push edx
push ecx
mov edx, 0x10020390
push dword [eax + 0x3c]
push dword [eax + 0x38]
push 0x6f
pop ecx
call fcn.1004a0f3
push 0
push 1
lea ecx, [ebp - 0x458]
call fcn.10052803
cmp dword [ebp - 0x4c0], 0
je 0x10077e7a
call dword [sym.imp.ole32.dll_CoUninitialize]
push 6
xor eax, eax
and dword [ebp - 0x460], 0
pop ecx
lea edi, [ebp - 0x2c]
mov dword [ebp - 0x45c], 7
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0x470], ax
lea eax, [ebp - 0x4d4]
mov byte [ebp - 4], 6
push eax
push 0x1a
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x4d0]
push eax
push 0x10020094
push dword [ebx + 0x2c]
call dword [sym.imp.WINSPOOL.DRV_GetPrinterDataW]
mov edi, eax
test edi, edi
jle 0x10077ed7
movzx edi, di
or edi, 0x80070000
test edi, edi
jns 0x10077f17
mov eax, dword [0x101c33f0]
cmp eax, 0x101c33f0
je 0x10077eff
test byte [eax + 0x44], 1
je 0x10077eff
push edi
push dword [eax + 0x3c]
mov edx, 0x10020390
push dword [eax + 0x38]
push 0x70
pop ecx
call fcn.1004a069
push edi
lea ecx, [ebp - 0x4c0]
call fcn.10044b9d
push 0x101c213c
mov eax, ecx
jmp 0x100780f6
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x4d0], ebx
jne 0x10078088
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x4b8]
call fcn.1005236c
push 0xffffffffffffffff
xor edi, edi
mov byte [ebp - 4], 7
push edi
lea ecx, [ebp - 0x488]
push ecx
push ecx
mov ecx, eax
call fcn.100799c5
push eax
lea ecx, [ebp - 0x458]
call fcn.100522e9
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x470]
call fcn.1004fb83
push edi
push ebx
lea ecx, [ebp - 0x458]
call fcn.10052803
push edi
push ebx
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 6
call fcn.10052803
lea ecx, [ebp - 0x4c8]
call fcn.10079352
cmp dword [ebp - 0x45c], 8
mov eax, dword [ebp - 0x470]
jae 0x10077fa9
lea eax, [ebp - 0x470]
push ebx
push eax
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x10078034
mov eax, dword [0x101c33f0]
cmp eax, 0x101c33f0
je 0x10077fed
test byte [eax + 0x44], bl
je 0x10077fed
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x101c33f0]
mov edx, 0x10020390
push eax
push dword [ecx + 0x3c]
push dword [ecx + 0x38]
push 0x72
pop ecx
call fcn.1004a069
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x10078004
movzx edi, di
or edi, 0x80070000
test edi, edi
jns 0x10078032
mov eax, dword [0x101c33f0]
cmp eax, 0x101c33f0
je 0x10077eff
test byte [eax + 0x44], bl
je 0x10077eff
push edi
push dword [eax + 0x3c]
mov edx, 0x10020390
push dword [eax + 0x38]
push 0x73
jmp 0x10077ef9
xor edi, edi
push edi
lea ecx, [ebp - 0x4a0]
call fcn.100527dc
push edi
push ebx
lea ecx, [ebp - 0x470]
call fcn.10052803
lea ecx, [ebp - 0x4a0]
call fcn.10077281
test esi, esi
je 0x10078064
push esi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void__]
pop ecx
lea ecx, [ebp - 0x4c8]
mov byte [ebp - 4], 8
call fcn.10079352
push edi
push ebx
lea ecx, [ebp - 0x488]
call fcn.10052803
call fcn.10188e03
ret 4
mov eax, dword [0x101c33f0]
mov esi, 0x8000ffff
cmp eax, 0x101c33f0
je 0x100780b2
test byte [eax + 0x44], bl
je 0x100780b2
push esi
push dword [eax + 0x3c]
mov edx, 0x10020390
push dword [eax + 0x38]
push 0x71
pop ecx
call fcn.1004a069
push esi
jmp 0x10077f00
mov eax, dword [0x101c33f0]
mov esi, 0x8000ffff
cmp eax, 0x101c33f0
je 0x100780e3
test byte [eax + 0x44], 1
je 0x100780e3
push esi
push dword [eax + 0x3c]
mov edx, 0x10020390
push dword [eax + 0x38]
push 0x68
pop ecx
call fcn.1004a069
push esi
lea ecx, [ebp - 0x4bc]
call fcn.10044b9d
push 0x101c213c
mov eax, ecx
push eax
call sub.msvcrt.dll__CxxThrowException
int3