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

Disassembly:
sub esp, 0x238
push ebp
mov ebp, dword [esp + 0x248]
push esi
push edi
cmp ebp, 1
je 0x452d8f
mov byte [esp + 0xf], 0
cmp ebp, 2
jne 0x452d94
mov byte [esp + 0xf], 1
mov edx, dword [esp + 0x248]
mov esi, dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x38]
push ecx
push 0x104
push edx
call esi
lea eax, [esp + 0x34]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x452dc0
sub eax, edx
je 0x452dd8
cmp byte [esp + eax + 0x33], 0x5c
lea eax, [esp + eax + 0x33]
jne 0x452dd8
mov byte [eax], cl
mov edx, dword [esp + 0x24c]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x140]
push ecx
push 0x104
push edx
call esi
lea eax, [esp + 0x13c]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x452e00
sub eax, edx
je 0x452e1e
cmp byte [esp + eax + 0x13b], 0x5c
lea eax, [esp + eax + 0x13b]
jne 0x452e1e
mov byte [eax], cl
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [esp + 0x34]
push eax
call edi
cmp eax, 0xffffffff
je 0x452e34
test al, 0x10
jne 0x452e40
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
push ebx
mov bl, byte [esp + 0x258]
test bl, bl
je 0x452ee1
movzx esi, byte [esp + 0x38]
test esi, 0xffffff80
jne 0x452e6f
push 1
push esi
call fcn.004885fe
add esp, 8
test eax, eax
je 0x452e6f
or esi, 0x20
mov ebx, esi
movzx esi, byte [esp + 0x140]
test esi, 0xffffff80
jne 0x452e93
push 1
push esi
call fcn.004885fe
add esp, 8
test eax, eax
je 0x452e93
or esi, 0x20
mov eax, esi
cmp bl, al
jne 0x452ea0
cmp byte [esp + 0x39], 0x3a
je 0x452eda
movzx ecx, byte [esp + 0x13]
push 0
push ecx
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00452d70
add esp, 0x10
test al, al
je 0x452f20
push 1
lea eax, [esp + 0x3c]
call fcn.00453000
add esp, 4
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x238
ret
mov bl, byte [esp + 0x258]
lea ecx, [esp + 0x140]
push ecx
call edi
cmp eax, 0xffffffff
je 0x452f08
test al, 0x10
je 0x452f20
cmp byte [esp + 0x13], 0
jne 0x452f2d
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x452f4f
lea edx, [esp + 0x140]
push edx
call fcn.00453590
add esp, 4
test al, al
jne 0x452f31
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x452f4f
lea eax, [esp + 0x38]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x452f36
mov ecx, dword [str..]
mov dl, byte [0x4a07b4]
mov dword [eax], ecx
mov byte [eax + 4], dl
lea eax, [esp + 0x38]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x452f56
sub eax, edx
mov byte [esp + eax + 0x39], cl
lea eax, [esp + 0x140]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x452f70
sub eax, edx
mov byte [esp + eax + 0x141], cl
xor eax, eax
xor edx, edx
test bl, bl
sete dl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov word [esp + 0x34], ax
lea eax, [esp + 0x38]
mov dword [esp + 0x20], eax
inc edx
lea ecx, [esp + 0x140]
mov eax, 0x614
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
mov word [esp + 0x28], ax
cmp ebp, 2
jne 0x452fdb
mov ecx, 0x615
mov word [esp + 0x28], cx
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
pop ebx
neg eax
pop edi
sbb eax, eax
pop esi
inc eax
pop ebp
add esp, 0x238
ret