Function at 0x453420
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 0x45343f
mov byte [esp + 0xf], 0
cmp ebp, 2
jne 0x453444
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 0x453470
sub eax, edx
je 0x453488
cmp byte [esp + eax + 0x33], 0x5c
lea eax, [esp + eax + 0x33]
jne 0x453488
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 0x4534b0
sub eax, edx
je 0x4534ce
cmp byte [esp + eax + 0x13b], 0x5c
lea eax, [esp + eax + 0x13b]
jne 0x4534ce
mov byte [eax], cl
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [esp + 0x34]
push eax
call edi
cmp eax, 0xffffffff
je 0x4534e4
test al, 0x10
jne 0x4534f0
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
push ebx
mov bl, byte [esp + 0x258]
test bl, bl
je 0x453591
movzx esi, byte [esp + 0x38]
test esi, 0xffffff80
jne 0x45351f
push 1
push esi
call fcn.00488cce
add esp, 8
test eax, eax
je 0x45351f
or esi, 0x20
mov ebx, esi
movzx esi, byte [esp + 0x140]
test esi, 0xffffff80
jne 0x453543
push 1
push esi
call fcn.00488cce
add esp, 8
test eax, eax
je 0x453543
or esi, 0x20
mov eax, esi
cmp bl, al
jne 0x453550
cmp byte [esp + 0x39], 0x3a
je 0x45358a
movzx ecx, byte [esp + 0x13]
push 0
push ecx
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00453420
add esp, 0x10
test al, al
je 0x4535d2
push 1
lea eax, [esp + 0x3c]
call fcn.004536b0
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 0x4535b8
test al, 0x10
je 0x4535d2
cmp byte [esp + 0x13], 0
jne 0x4535df
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x453601
lea edx, [esp + 0x140]
push 0
push edx
call fcn.004410f0
add esp, 8
test al, al
jne 0x4535e3
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x453601
lea eax, [esp + 0x38]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4535e8
mov ecx, dword [str..]
mov dl, byte [0x4a1810]
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 0x453608
sub eax, edx
mov byte [esp + eax + 0x39], cl
lea eax, [esp + 0x140]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x453620
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 0x45368b
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