Function at 0x452c80
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0xe74
lea eax, [esp]
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov esi, edx
push eax
lea eax, [esp + 0x44]
push eax
push 0x104
push ecx
call edi
lea ecx, [esp + 0x40]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452cb0
sub ecx, edx
sar ecx, 1
je 0x452cd0
cmp word [esp + ecx*2 + 0x3e], 0x5c
jne 0x452cd0
xor eax, eax
mov word [esp + ecx*2 + 0x3e], ax
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x250]
push eax
push 0x104
push esi
call edi
lea ecx, [esp + 0x24c]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452cf0
sub ecx, edx
sar ecx, 1
je 0x452d16
cmp word [esp + ecx*2 + 0x24a], 0x5c
jne 0x452d16
xor eax, eax
mov word [esp + ecx*2 + 0x24a], ax
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [esp + 0x40]
push eax
call esi
cmp eax, 0xffffffff
je 0x452f54
test al, 0x10
je 0x452f54
lea eax, [esp + 0x24c]
push eax
call esi
mov esi, dword [esp + 0xe80]
cmp eax, 0xffffffff
je 0x452d60
test al, 0x10
je 0x452f54
cmp esi, 1
je 0x452d60
cmp esi, 2
jne 0x452f54
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x45c]
push eax
push 0x104
lea eax, [esp + 0x4c]
push eax
call edi
lea ecx, [esp + 0x458]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452d83
sub ecx, edx
sar ecx, 1
je 0x452da9
cmp word [esp + ecx*2 + 0x456], 0x5c
jne 0x452da9
xor eax, eax
mov word [esp + ecx*2 + 0x456], ax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x668]
push eax
push 0x104
lea eax, [esp + 0x258]
push eax
call edi
lea ecx, [esp + 0x664]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452dd0
sub ecx, edx
sar ecx, 1
je 0x452df6
cmp word [esp + ecx*2 + 0x662], 0x5c
jne 0x452df6
xor eax, eax
mov word [esp + ecx*2 + 0x662], ax
lea eax, [esp + 0x870]
push eax
lea eax, [esp + 0xa78]
push eax
lea eax, [esp + 0xc80]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x468]
push eax
call fcn.00497c52
lea eax, [esp + 0x884]
push eax
lea eax, [esp + 0xa8c]
push eax
lea eax, [esp + 0xc94]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x688]
push eax
call fcn.00497c52
add esp, 0x28
cmp word [esp + 0x14], 0
je 0x452f27
cmp word [esp + 0xc], 0
je 0x452f27
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0048f253
add esp, 8
test eax, eax
setne al
test al, al
jne 0x452f27
lea ecx, [esp + 0x40]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452e90
sub ecx, edx
sar ecx, 1
xor eax, eax
mov word [esp + ecx*2 + 0x42], ax
lea ecx, [esp + 0x24c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452eb0
sub ecx, edx
mov dword [esp + 0x20], 1
xor eax, eax
sar ecx, 1
mov dword [esp + 0x1c], eax
xorps xmm0, xmm0
mov dword [esp + 0x36], eax
movlpd qword [esp + 0x2e], xmm0
mov word [esp + ecx*2 + 0x24e], ax
lea eax, [esp + 0x40]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24c]
mov dword [esp + 0x28], eax
mov eax, 0x614
mov word [esp + 0x2c], ax
cmp esi, 2
jne 0x452f0e
mov eax, 0x615
mov word [esp + 0x2c], ax
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
pop edi
sete al
pop esi
add esp, 0xe74
ret
push 1
lea edx, [esp + 0x250]
lea ecx, [esp + 0x44]
call fcn.00452ad0
add esp, 4
test al, al
je 0x452f54
mov dl, 1
lea ecx, [esp + 0x40]
call fcn.00452f60
pop edi
pop esi
add esp, 0xe74
ret
pop edi
xor al, al
pop esi
add esp, 0xe74
ret