Function at 0x404bf0
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file
Read .ini file
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10364
call fcn.00424210
mov eax, dword [0x43e004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x10000
lea ebx, [ebp - 0x10210]
mov esi, ecx
mov eax, ebx
push 0
push eax
call fcn.00407d30
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x404cbe
test al, 1
je 0x404cd1
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x404cd1
push 0x40
push str.SetFileAttributes
push 0x43fe18
mov dword [0x43fc0c], 0xcb
call fcn.0040bfa6
add esp, 0xc
xor eax, eax
mov word [0x43fe96], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x43fc08], eax
test esi, esi
je 0x404c97
push 0x104
push esi
push 0x43fc10
call fcn.0040bfa6
add esp, 0xc
push 0x104
xor eax, eax
push str.C:JenkinsAE_build_workHibun_AE_Current_src_sftlcmn_sftl_filesys.c
push 0x43fe98
mov word [0x43fe16], ax
call fcn.0040bfa6
add esp, 0xc
xor eax, eax
mov word [0x44009e], ax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406bb3
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x10358]
mov dword [ebp - 0x10358], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x10348], 1
jne 0x404fb9
push 0x104
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
test eax, eax
jne 0x404d12
push 0x40
push 0x43ae4c
jmp 0x404c56
push str.wininit.ini
push 0x7fff
lea eax, [ebp - 0x10210]
push eax
push str.rename
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
cmp eax, 0x7ffd
jne 0x404d77
push 0x40
push str.GetPrivateProfileSection
push 0x43fe18
mov dword [0x43fc0c], 0xcb
call fcn.0040bfa6
add esp, 0xc
xor eax, eax
mov word [0x43fe96], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x43fc08], eax
lea eax, [ebp - 0x10210]
push 0x104
push eax
jmp 0x404c8a
cmp word [ebp - 0x10210], 0
je 0x404d91
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x404d81
cmp word [ebx], ax
jne 0x404d81
mov dword [ebx], 0x55004e
lea edi, [ebx - 2]
mov dword [ebx + 4], 0x4c
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x404da1
mov eax, dword [0x43aecc]
mov edx, esi
mov dword [edi], eax
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x404db6
sub esi, edx
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x404dc6
mov ecx, esi
mov dword [ebp - 0x1035c], esi
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x1035c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
nop dword [eax]
movzx eax, word [ebx]
lea ebx, [ebx + 2]
test ax, ax
jne 0x404df0
xor eax, eax
mov word [ebx], ax
lea eax, [ebp - 0x10210]
push str.wininit.ini
push eax
push str.rename
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionW]
test eax, eax
je 0x404cbe
push 0x43b1d4
push str.wininit.ini
call fcn.0040f36d
mov esi, eax
mov dword [ebp - 0x1035c], 0xfeff
add esp, 8
test esi, esi
jne 0x404f0a
push eax
push 0x80
push 1
push eax
push eax
push 0x40000000
push str.wininit.ini
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x404e9a
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0x10360]
push eax
push 2
lea eax, [ebp - 0x1035c]
push eax
push edi
call esi
test eax, eax
jne 0x404eb0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406bb3
mov esp, ebp
pop ebp
ret
push 0
lea eax, [ebp - 0x210]
push 0x43b1d8
push eax
call fcn.00401d40
lea ecx, [ebp - 0x210]
add esp, 0xc
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404ed0
sub ecx, edx
lea eax, [ebp - 0x10360]
push 0
sar ecx, 1
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x210]
push eax
push edi
call esi
test eax, eax
je 0x404e84
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404fa3
lea eax, [ebp - 0x10240]
push eax
push str.wininit.ini
call fcn.0040bf9b
add esp, 8
cmp dword [ebp - 0x1022c], 0
jne 0x404f9a
push esi
call fcn.0040ae9a
add esp, 4
push 0x43b1e4
push str.wininit.ini
call fcn.0040f36d
mov esi, eax
lea eax, [ebp - 0x1035c]
push esi
push 1
push 2
push eax
call fcn.0040d029
push 0
lea eax, [ebp - 0x210]
push 0x43b1d8
push eax
call fcn.00401d40
lea ecx, [ebp - 0x210]
add esp, 0x24
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404f71
sub ecx, edx
sar ecx, 1
push esi
push 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.0040d029
add esp, 0x10
push esi
call fcn.0040ae9a
add esp, 4
push str.wininit.ini
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x404e9a
push 4
push 0
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 4]
neg eax
pop edi
sbb eax, eax
xor ecx, ebp
pop esi
and eax, 1
pop ebx
call fcn.00406bb3
mov esp, ebp
pop ebp
ret