Function at 0x454730
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea esi, [ebp - 0x52f]
push ebx
lea ebx, [ebp - 0x220]
sub esp, 0x55c
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x540], 0
mov dword [esp + 4], ebx
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x53c], 0
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x534], 0
mov dword [esp + 8], 0x104
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
sub esp, 0xc
mov dword [esp + 0xc], ebx
lea ebx, [ebp - 0x327]
mov dword [esp + 8], 0x5a93b6
mov dword [esp + 4], 0x104
mov dword [esp], esi
call fcn.004c1a90
mov eax, dword [ebp + 8]
mov dword [esp + 8], str._dp_ls
mov dword [esp + 4], 0x107
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.004c1a90
cmp eax, 0x100
jg 0x454b70
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x42b]
mov dword [esp + 8], 0x5a93b6
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x104
call fcn.004c1a90
mov dword [esp], 0x40020
mov dword [ebp - 0x53c], ebx
mov dword [ebp - 0x538], edi
mov dword [ebp - 0x540], esi
call fcn.005708c0
mov dword [esp + 8], 0x40020
mov dword [esp + 4], 0
mov edi, eax
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [edi], 0x5f985c
mov dword [esp], 0x4008c
call fcn.005708c0
mov dword [esp], 3
mov ebx, eax
lea eax, [ebp - 0x540]
mov dword [esp + 4], eax
mov ecx, ebx
call fcn.004515a0
mov eax, dword [ebx + 0x40068]
sub esp, 8
test eax, eax
jne 0x454a50
mov dword [ebp - 0x550], 0
mov dword [ebp - 0x54c], 0
mov eax, dword [ebx + 0x4004c]
lea esi, [ebx + 0x40044]
mov dword [ebx + 0x40044], 0x5f9914
test eax, eax
jns 0x454bc0
cmp byte [ebx + 0x40048], 0
jne 0x454ca0
mov eax, dword [ebx + 0x40050]
cmp eax, dword [ebx + 0x40054]
je 0x4548d0
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x4005c]
lea esi, [ebx + 0x40028]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x40054]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x40030]
mov dword [ebx + 0x40028], 0x5f98f0
test eax, eax
jns 0x454e70
cmp byte [ebx + 0x4002c], 0
jne 0x454c50
mov dword [ebx + 0x40028], 0x5f9914
mov eax, dword [ebx + 0x40030]
test eax, eax
jns 0x454ea8
cmp byte [ebx + 0x4002c], 0
je 0x45494f
mov eax, dword [ebx + 0x40034]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__wremove]
mov dword [esp], esi
call fcn.004339c0
mov eax, dword [ebx + 0x40034]
cmp eax, dword [ebx + 0x40038]
je 0x454965
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x40040]
lea esi, [ebx + 0x4000c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x40038]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x40014]
mov dword [ebx + 0x4000c], 0x5f98f0
test eax, eax
jns 0x454d50
cmp byte [ebx + 0x40010], 0
je 0x4549c2
mov eax, dword [ebx + 0x4000c]
mov ecx, esi
call dword [eax + 0x14]
mov dword [esp], esi
call fcn.004339c0
mov byte [ebx + 0x40010], 0
mov dword [ebx + 0x4000c], 0x5f9914
mov eax, dword [ebx + 0x40014]
test eax, eax
jns 0x454de0
cmp byte [ebx + 0x40010], 0
je 0x4549fa
mov eax, dword [ebx + 0x40018]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__wremove]
mov dword [esp], esi
call fcn.004339c0
mov eax, dword [ebx + 0x40018]
cmp eax, dword [ebx + 0x4001c]
je 0x454a10
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x40024]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x4001c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp + 4], 0x4008c
mov dword [esp], ebx
call fcn.00570880
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
jmp 0x454bac
mov dword [esp], 0x400e0
call fcn.005708c0
mov dword [esp + 4], edi
mov esi, eax
mov eax, dword [ebp + 0x14]
mov dword [esp], ebx
mov ecx, esi
mov dword [esp + 0xc], eax
movzx eax, byte [ebp - 0x550]
mov dword [esp + 8], eax
call fcn.004539b0
mov eax, dword [esi + 0x400c0]
mov edx, dword [esi + 0x400c4]
sub esp, 0x10
mov dword [esi + 0x94], 0x5f9914
mov dword [ebp - 0x550], eax
lea eax, [esi + 0x94]
mov dword [ebp - 0x554], eax
mov eax, dword [esi + 0x9c]
mov dword [ebp - 0x54c], edx
test eax, eax
jns 0x454cc0
cmp byte [esi + 0x98], 0
je 0x454ae3
mov eax, dword [esi + 0xa0]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__wremove]
mov eax, dword [ebp - 0x554]
mov dword [esp], eax
call fcn.004339c0
mov eax, dword [esi + 0xa0]
cmp eax, dword [esi + 0xa4]
je 0x454af9
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esi + 0xac]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esi + 0xa4]
mov dword [esp], eax
call sub.msvcrt.dll_free
lea ecx, [esi + 0x78]
call fcn.004c9d20
cmp byte [esi + 0x48], 0
je 0x454b32
mov eax, dword [esi + 0x44]
test eax, eax
je 0x454b32
mov dword [esp], eax
call fcn.00570850
cmp byte [esi + 0x38], 0
je 0x454b47
mov eax, dword [esi + 0x34]
test eax, eax
je 0x454b47
mov dword [esp], eax
call fcn.00570850
lea ecx, [esi + 0x14]
call fcn.004c9d20
mov eax, dword [esi + 8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp + 4], 0x400e0
mov dword [esp], esi
call fcn.00570880
jmp 0x45488f
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x5a93c2
mov dword [esp + 4], str.UnarcMain:_snprintf_nInvalid_path.
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x550], 0
mov dword [ebp - 0x54c], 0
sub esp, 0x10
mov eax, dword [ebp - 0x550]
mov edx, dword [ebp - 0x54c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x454c70
mov edi, dword [0x678a20]
test edi, edi
jne 0x454e8e
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x455071
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x455071
mov eax, dword [ebx + 0x40054]
mov dword [esp + 4], str.ERROR:_cant_close_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea esi, [esi]
mov eax, dword [ebx + 0x40028]
mov ecx, esi
call dword [eax + 0x14]
mov dword [esp], esi
call fcn.004339c0
mov byte [ebx + 0x4002c], 0
jmp 0x454917
cmp byte [ebx + 0x40048], 0
mov dword [ebx + 0x4004c], 0xffffffff
je 0x4548ba
mov eax, dword [ebx + 0x40044]
mov eax, dword [eax + 0x14]
cmp eax, 0x4c9b50
jne 0x455068
lea esi, [esi]
nop
mov eax, dword [ebx + 0x40050]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__wremove]
mov dword [esp], esi
call fcn.004339c0
jmp 0x4548ba
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x454f78
mov eax, dword [0x678a20]
test eax, eax
jne 0x454e8e
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x45526a
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x45526a
mov eax, dword [esi + 0xa4]
mov dword [esp + 4], str.ERROR:_cant_close_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea esi, [esi]
nop
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x454fb0
mov edx, dword [0x678a20]
test edx, edx
jne 0x454e8e
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x45513b
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x45513b
mov eax, dword [ebx + 0x4001c]
mov dword [esp + 4], str.ERROR:_cant_close_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea esi, [esi]
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x455030
mov eax, dword [0x678a20]
test eax, eax
jne 0x454e8e
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x4550d6
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x4550d6
mov eax, dword [ebx + 0x4001c]
mov dword [esp + 4], str.ERROR:_cant_close_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea esi, [esi]
nop
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x454f30
mov esi, dword [0x678a20]
test esi, esi
je 0x454fc0
mov dword [esp + 4], 1
mov dword [esp], 0x6789e0
call dword [sym.imp.msvcrt.dll_longjmp]
lea esi, [esi]
nop
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x454f40
mov ecx, dword [0x678a20]
test ecx, ecx
jne 0x454e8e
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x4551a0
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x4551a0
mov eax, dword [ebx + 0x40038]
mov dword [esp + 4], str.ERROR:_cant_close_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx + 0x40030], 0xffffffff
jmp 0x45490a
cmp byte [ebx + 0x4002c], 0
mov dword [ebx + 0x40030], 0xffffffff
je 0x45494f
mov eax, dword [ebx + 0x40028]
mov eax, dword [eax + 0x14]
cmp eax, 0x4c9b50
je 0x454938
mov ecx, esi
call eax
jmp 0x454947
cmp byte [esi + 0x98], 0
mov dword [esi + 0x9c], 0xffffffff
je 0x454ae3
mov eax, dword [esi + 0x94]
mov eax, dword [eax + 0x14]
cmp eax, 0x4c9b50
je 0x454ac6
mov ecx, dword [ebp - 0x554]
call eax
jmp 0x454ad5
mov dword [ebx + 0x40014], 0xffffffff
jmp 0x45499f
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x455205
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x455205
mov eax, dword [ebx + 0x40038]
mov dword [esp + 4], str.ERROR:_cant_close_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
nop
cmp byte [ebx + 0x40010], 0
mov dword [ebx + 0x40014], 0xffffffff
je 0x4549fa
mov eax, dword [ebx + 0x4000c]
mov eax, dword [eax + 0x14]
cmp eax, 0x4c9b50
je 0x4549e3
mov ecx, esi
call eax
jmp 0x4549f2
mov ecx, esi
call eax
jmp 0x454caf
cmp dword [0x678a20], 0
jne 0x454e8e
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
cmp dword [0x678a20], 0
jne 0x454e8e
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
cmp dword [0x678a20], 0
jne 0x454e8e
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
cmp dword [0x678a20], 0
jne 0x454e8e
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
cmp dword [0x678a20], 0
jne 0x454e8e
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
cmp dword [0x678a20], 0
jne 0x454e8e
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
jmp 0x454d2a