Function at 0x452be0
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 0x452bff
mov byte [esp + 0xf], 0
cmp ebp, 2
jne 0x452c04
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 0x452c30
sub eax, edx
je 0x452c48
cmp byte [esp + eax + 0x33], 0x5c
lea eax, [esp + eax + 0x33]
jne 0x452c48
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 0x452c70
sub eax, edx
je 0x452c8e
cmp byte [esp + eax + 0x13b], 0x5c
lea eax, [esp + eax + 0x13b]
jne 0x452c8e
mov byte [eax], cl
mov edi, dword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
lea eax, [esp + 0x34]
push eax
call edi
cmp eax, 0xffffffff
je 0x452ca4
test al, 0x10
jne 0x452cb0
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
push ebx
mov bl, byte [esp + 0x258]
test bl, bl
je 0x452d51
movzx esi, byte [esp + 0x38]
test esi, 0xffffff80
jne 0x452cdf
push 1
push esi
call fcn.004883de
add esp, 8
test eax, eax
je 0x452cdf
or esi, 0x20
mov ebx, esi
movzx esi, byte [esp + 0x140]
test esi, 0xffffff80
jne 0x452d03
push 1
push esi
call fcn.004883de
add esp, 8
test eax, eax
je 0x452d03
or esi, 0x20
mov eax, esi
cmp bl, al
jne 0x452d10
cmp byte [esp + 0x39], 0x3a
je 0x452d4a
movzx ecx, byte [esp + 0x13]
push 0
push ecx
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00452be0
add esp, 0x10
test al, al
je 0x452d92
push 1
lea eax, [esp + 0x3c]
call fcn.00452e70
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 0x452d78
test al, 0x10
je 0x452d92
cmp byte [esp + 0x13], 0
jne 0x452d9f
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x452dc1
lea edx, [esp + 0x140]
push 0
push edx
call fcn.00440950
add esp, 8
test al, al
jne 0x452da3
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x238
ret
test bl, bl
jne 0x452dc1
lea eax, [esp + 0x38]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x452da8
mov ecx, dword [0x4a0754]
mov dl, byte [0x4a0758]
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 0x452dc8
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 0x452de0
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 0x452e4b
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