Function at 0x4234e0
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.0044b3e0
cmp eax, 2
jne 0x423512
mov edi, dword [esp + 0x24]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x423512
test al, 2
je 0x423512
xor eax, 2
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
xor ebp, ebp
mov dword [esi + 0x14], ebp
mov eax, dword [ecx]
cmp edx, ebp
mov dword [esp + 0x18], ebp
mov dword [esi + 0x18], eax
je 0x423549
cmp eax, ebp
jne 0x423549
mov eax, dword [esi + 8]
lea edx, [eax - 1]
mov eax, dword [esi + 0x14]
cmp eax, edx
jge 0x423549
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [ecx + eax*4]
cmp eax, ebp
mov dword [esi + 0x18], eax
je 0x423534
mov eax, dword [esi + 0x18]
cmp eax, ebp
je 0x4235f4
mov eax, dword [eax + 8]
push str.descript.ion
push eax
call fcn.004cab10
add esp, 8
test eax, eax
je 0x4235b3
mov edx, dword [esi + 0x18]
cmp dword [edx + 8], ebp
je 0x4235b3
mov ecx, dword [edx + 0xc]
mov ebx, 1
cmp ecx, ebp
je 0x42358c
mov al, byte [ecx]
test al, al
je 0x42358c
cmp al, 0x20
je 0x423589
xor ebx, ebx
inc ecx
jne 0x42357d
mov ecx, dword [edx + 0x10]
mov edi, 1
cmp ecx, ebp
je 0x4235a7
mov al, byte [ecx]
test al, al
je 0x4235a7
cmp al, 0x20
je 0x4235a4
xor edi, edi
inc ecx
jne 0x423598
cmp ebx, ebp
je 0x4235af
cmp edi, ebp
jne 0x4235b3
inc dword [esp + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, ebp
je 0x4235c0
mov ecx, dword [eax + 4]
mov dword [esi + 0x18], ecx
cmp dword [esi + 0x18], ebp
jne 0x4235e3
mov eax, dword [esi + 8]
lea ecx, [eax - 1]
mov eax, dword [esi + 0x14]
cmp eax, ecx
jge 0x4235e3
mov edx, dword [esi + 4]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [edx + eax*4]
cmp eax, ebp
mov dword [esi + 0x18], eax
je 0x4235cb
mov eax, dword [esi + 0x18]
cmp eax, ebp
jne 0x423554
cmp dword [esp + 0x18], ebp
jne 0x42360e
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0xc
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
neg ecx
sbb ecx, ecx
and ecx, 2
push ecx
push edx
call dword [sym.imp.KERNEL32.dll__lcreat]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x42363a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0xc
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov dword [esi + 0x14], ebp
cmp edx, ebp
mov eax, dword [ecx]
mov dword [esi + 0x18], eax
je 0x42366b
cmp eax, ebp
jne 0x42366b
mov eax, dword [esi + 8]
lea edx, [eax - 1]
mov eax, dword [esi + 0x14]
cmp eax, edx
jge 0x42366b
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [ecx + eax*4]
cmp eax, ebp
mov dword [esi + 0x18], eax
je 0x423656
mov ebp, dword [esi + 0x18]
test ebp, ebp
je 0x423847
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x42380a
mov ecx, dword [ebp + 0xc]
mov edi, 1
test ecx, ecx
je 0x42369c
mov al, byte [ecx]
test al, al
je 0x42369c
cmp al, 0x20
je 0x423699
xor edi, edi
inc ecx
jne 0x42368d
mov ecx, dword [ebp + 0x10]
mov edx, 1
test ecx, ecx
je 0x4236b7
mov al, byte [ecx]
test al, al
je 0x4236b7
cmp al, 0x20
je 0x4236b4
xor edx, edx
inc ecx
jne 0x4236a8
test edi, edi
je 0x4236c3
test edx, edx
jne 0x42380a
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
push 0x20
push eax
call fcn.004bea70
mov edi, eax
add esp, 8
neg edi
sbb edi, edi
mov byte [esp + 0x12], 0x22
neg edi
je 0x423701
mov edx, dword [esp + 0x18]
mov ebx, dword [sym.imp.KERNEL32.dll__lwrite]
lea ecx, [esp + 0x12]
push 1
push ecx
push edx
call ebx
jmp 0x423707
mov ebx, dword [sym.imp.KERNEL32.dll__lwrite]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
call ebx
cmp eax, dword [esp + 0x1c]
jl 0x423847
test edi, edi
je 0x423733
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x12]
push 1
push eax
push ecx
call ebx
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x13]
push 1
push edx
push eax
mov byte [esp + 0x1f], 0x20
call ebx
cmp eax, 1
jl 0x423847
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4237c2
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4237ae
lea ecx, [edi + 1]
push ecx
call fcn.004be967
mov edx, dword [ebp + 0xc]
add esp, 4
mov ebx, eax
push ebx
push edx
call dword [sym.imp.USER32.dll_CharToOemA]
mov eax, dword [esp + 0x18]
push edi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll__lwrite]
push ebx
mov dword [esp + 0x20], eax
call fcn.004be975
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, edi
jl 0x423847
mov ebx, dword [sym.imp.KERNEL32.dll__lwrite]
jmp 0x4237c2
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
push edi
push ecx
push edx
call ebx
cmp eax, edi
jl 0x423847
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4237e2
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [ebp + 0x10]
push edi
push eax
push ecx
call ebx
cmp eax, edi
jl 0x423847
mov dx, word [0x4e08a8]
mov al, byte [0x4e08aa]
mov word [esp + 0x14], dx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push 2
push ecx
push edx
mov byte [esp + 0x22], al
call ebx
cmp eax, 2
jl 0x423847
mov eax, dword [esi + 0x18]
test eax, eax
je 0x423817
mov eax, dword [eax + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x42383c
mov eax, dword [esi + 8]
lea ecx, [eax - 1]
mov eax, dword [esi + 0x14]
cmp eax, ecx
jge 0x42383c
mov edx, dword [esi + 4]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [edx + eax*4]
test eax, eax
mov dword [esi + 0x18], eax
je 0x423824
mov ebp, dword [esi + 0x18]
test ebp, ebp
jne 0x423676
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
cmp eax, 0xffffffff
jne 0x423863
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0xc
mov esi, dword [esp + 0x24]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x42387e
test al, 2
jne 0x42388d
or al, 2
jmp 0x423885
test al, 2
je 0x42388d
xor eax, 2
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0xc