Function at 0x4530d0
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 0x4530ef
mov byte [esp + 0xf], 0
cmp ebp, 2
jne 0x4530f4
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 0x453120
sub eax, edx
je 0x453138
cmp byte [esp + eax + 0x33], 0x5c
lea eax, [esp + eax + 0x33]
jne 0x453138
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 0x453160
sub eax, edx
je 0x45317e
cmp byte [esp + eax + 0x13b], 0x5c
lea eax, [esp + eax + 0x13b]
jne 0x45317e
mov byte [eax], cl
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [esp + 0x34]
push eax
call edi
cmp eax, 0xffffffff
je 0x453194
test al, 0x10
jne 0x4531a0
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
push ebx
mov bl, byte [esp + 0x258]
test bl, bl
je 0x453241
movzx esi, byte [esp + 0x38]
test esi, 0xffffff80
jne 0x4531cf
push 1
push esi
call fcn.004888fe
add esp, 8
test eax, eax
je 0x4531cf
or esi, 0x20
mov ebx, esi
movzx esi, byte [esp + 0x140]
test esi, 0xffffff80
jne 0x4531f3
push 1
push esi
call fcn.004888fe
add esp, 8
test eax, eax
je 0x4531f3
or esi, 0x20
mov eax, esi
cmp bl, al
jne 0x453200
cmp byte [esp + 0x39], 0x3a
je 0x45323a
movzx ecx, byte [esp + 0x13]
push 0
push ecx
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.004530d0
add esp, 0x10
test al, al
je 0x453282
push 1
lea eax, [esp + 0x3c]
call fcn.00453360
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 0x453268
test al, 0x10
je 0x453282
cmp byte [esp + 0x13], 0
jne 0x45328f
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x4532b1
lea edx, [esp + 0x140]
push 0
push edx
call fcn.00440d90
add esp, 8
test al, al
jne 0x453293
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x4532b1
lea eax, [esp + 0x38]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x453298
mov ecx, dword [str..]
mov dl, byte [0x4a0814]
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 0x4532b8
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 0x4532d0
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 0x45333b
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