Function at 0x42a4d3
Capabilities:
Get file size
Move file
Read file on windows
Write file on windows

Disassembly:
push 0x12c
mov eax, 0x44bc3f
call fcn.00448385
xor edi, edi
mov dword [ebp - 4], edi
mov eax, dword [ebp + 8]
push ecx
mov esi, esp
add eax, 0xfffffff0
mov dword [ebp - 0x12c], esp
mov dword [ebp - 0x130], esi
call fcn.0040167a
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 2
mov byte [ebp - 4], 0
call fcn.00429e29
pop ecx
test al, al
je 0x42a887
mov esi, 0x114
push esi
lea eax, [ebp - 0x124]
push edi
push eax
call fcn.00435b70
add esp, 0xc
lea eax, [ebp - 0x124]
push eax
mov dword [ebp - 0x124], esi
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
cmp dword [ebp - 0x114], 1
jne 0x42a87b
lea esi, [ebp + 8]
call fcn.0042de02
push str._r_nNUL
lea eax, [ebp - 0x130]
push eax
call fcn.00401415
mov ecx, esi
push ecx
lea ecx, [ebp - 0x128]
push ecx
mov edi, eax
mov byte [ebp - 4], 3
call fcn.00404b13
mov ebx, 0x456d0c
lea ecx, [ebp - 0x134]
push ebx
push ecx
mov edi, eax
mov byte [ebp - 4], 4
call fcn.00404b62
add esp, 0x10
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x128]
add eax, 0xfffffff0
call fcn.0040114e
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x130]
add eax, 0xfffffff0
call fcn.0040114e
push 0x45570c
xor ecx, ecx
call fcn.00404a45
test eax, eax
jns 0x42a654
push str._r_nDIRNUL
lea eax, [ebp - 0x12c]
push eax
call fcn.00401415
mov ecx, esi
push ecx
lea ecx, [ebp - 0x128]
push ecx
mov edi, eax
mov byte [ebp - 4], 8
call fcn.00404b13
lea ecx, [ebp - 0x130]
push ebx
push ecx
mov edi, eax
mov byte [ebp - 4], 9
call fcn.00404b62
add esp, 0x10
lea edi, [ebp - 0x134]
mov byte [ebp - 4], 0xa
call fcn.0040488e
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x130]
add eax, 0xfffffff0
call fcn.0040114e
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x128]
add eax, 0xfffffff0
call fcn.0040114e
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
call fcn.0040114e
lea eax, [ebp - 0x12c]
push eax
call fcn.0042a484
pop ecx
mov byte [ebp - 4], 0xb
push dword [eax]
lea eax, [ebp - 0x138]
push eax
call fcn.00401415
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
call fcn.0040114e
push str.WININIT.INI
lea eax, [ebp - 0x138]
call fcn.0040fc8d
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x128], eax
xor esi, esi
push esi
push esi
push 3
push esi
push 1
mov byte [ebp - 4], 0xf
mov ebx, dword [sym.imp.KERNEL32.DLL_CreateFileW]
push SysReAllocString
push dword [ebp - 0x138]
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x42a711
lea eax, [ebp - 0x12c]
push str._Rename_
push eax
lea ecx, [ebp - 0x134]
call fcn.00404bbd
pop ecx
pop ecx
lea edi, [ebp - 0x128]
mov byte [ebp - 4], 0x10
call fcn.0040488e
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
call fcn.0040114e
jmp 0x42a803
push esi
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov dword [ebp - 0x12c], eax
cmp eax, esi
jbe 0x42a76a
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004362c8
pop ecx
push 0
mov esi, eax
lea eax, [ebp - 0x130]
push eax
push dword [ebp - 0x12c]
push esi
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push dword [ebp - 0x130]
lea eax, [ebp - 0x128]
push esi
call fcn.00404fd9
push esi
call fcn.004356f7
pop ecx
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push str._Rename_
xor ecx, ecx
lea esi, [ebp - 0x128]
call fcn.00404a45
mov edi, eax
test edi, edi
jns 0x42a7d9
push str._rename_
xor ecx, ecx
call fcn.00404a45
mov edi, eax
test edi, edi
jns 0x42a7d9
lea eax, [ebp - 0x12c]
push str._r_n_Rename_
push eax
lea ecx, [ebp - 0x134]
call fcn.00404bbd
pop ecx
pop ecx
mov byte [ebp - 4], 0x11
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
mov eax, esi
call fcn.00404fd9
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
call fcn.0040114e
jmp 0x42a801
push dword [ebp - 0x134]
xor ecx, ecx
lea esi, [ebp - 0x128]
call fcn.00404a45
test eax, eax
jns 0x42a843
push dword [ebp - 0x134]
mov ecx, esi
lea eax, [edi + 8]
push ecx
call fcn.0042d8ac
xor esi, esi
push esi
push 0x80
push 2
push esi
push 2
push 0x40000000
push dword [ebp - 0x138]
call ebx
mov edi, eax
cmp edi, 0xffffffff
je 0x42a843
mov ecx, dword [ebp - 0x128]
mov eax, dword [ecx - 0xc]
push esi
lea edx, [ebp - 0x12c]
push edx
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x128]
add eax, 0xfffffff0
call fcn.0040114e
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x138]
add eax, 0xfffffff0
call fcn.0040114e
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x134]
add eax, 0xfffffff0
call fcn.0040114e
jmp 0x42a887
push 4
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_MoveFileExW]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.0040114e
call fcn.00448408
ret