Function at 0x43938a
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x910
push ebx
push esi
push edi
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x4c4], 0
lea edi, [ebp - 0x26e]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
mov edi, 0x9a3940
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov edx, edi
lea edi, [ebp - 0x26e]
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x9a3940
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x6d8], eax
mov eax, 0x47b3fc
mov ecx, 0x47b400
mov edx, dword [ebp - 0x6d8]
movsx edx, byte [edx + 0x9a3940]
xor ebx, ebx
cmp edx, 0x5c
setne bl
dec ebx
sub ecx, eax
and ebx, ecx
add ebx, eax
push ebx
push 0x9a3940
push str._s_sCPTLWA32.NEW
lea eax, [ebp - 0x6d4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x6d4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x439543
mov eax, 0x47b418
mov ecx, 0x47b41c
mov edx, dword [ebp - 0x6d8]
movsx edx, byte [edx + 0x9a3940]
xor ebx, ebx
cmp edx, 0x5c
setne bl
dec ebx
sub ecx, eax
and ebx, ecx
add ebx, eax
push ebx
push 0x9a3940
push str._s_sCPTLWA32.DLL
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp - 0x6d8], eax
cmp dword [0x45e03c], 0
je 0x4394f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x6d8]
push eax
lea eax, [ebp - 0x8d8]
push eax
push 0x47b434
call fcn.00452380
add esp, 0x10
push 3
lea eax, [ebp - 0x8d8]
push eax
lea eax, [ebp - 0x6d4]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov dword [ebp - 0x6d8], eax
cmp dword [0x45e03c], 0
je 0x439543
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x6d8]
push eax
lea eax, [ebp - 0x6d4]
push eax
push 0x47b44c
call fcn.00452380
add esp, 0x10
cmp dword [0x462284], 0
je 0x43968e
mov edi, 0x9a3940
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x6d8], eax
mov eax, 0x47b460
mov ecx, 0x47b464
mov edx, dword [ebp - 0x6d8]
movsx edx, byte [edx + 0x9a3940]
xor ebx, ebx
cmp edx, 0x5c
setne bl
dec ebx
sub ecx, eax
and ebx, ecx
add ebx, eax
push ebx
push 0x9a3940
push str._s_sCPTLWA64.NEW
lea eax, [ebp - 0x6d4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x6d4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x43968e
mov eax, 0x47b47c
mov ecx, 0x47b480
mov edx, dword [ebp - 0x6d8]
movsx edx, byte [edx + 0x9a3940]
xor ebx, ebx
cmp edx, 0x5c
setne bl
dec ebx
sub ecx, eax
and ebx, ecx
add ebx, eax
push ebx
push 0x9a3940
push str._s_sCPTLWA64.DLL
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp - 0x6d8], eax
cmp dword [0x45e03c], 0
je 0x439643
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x6d8]
push eax
lea eax, [ebp - 0x8d8]
push eax
push 0x47b498
call fcn.00452380
add esp, 0x10
push 3
lea eax, [ebp - 0x8d8]
push eax
lea eax, [ebp - 0x6d4]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov dword [ebp - 0x6d8], eax
cmp dword [0x45e03c], 0
je 0x43968e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x6d8]
push eax
lea eax, [ebp - 0x6d4]
push eax
push 0x47b4b0
call fcn.00452380
add esp, 0x10
lea edi, [ebp - 0x26e]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x26f]
cmp ecx, 0x5c
jne 0x4396ea
mov edx, 0x47b4c4
lea edi, [ebp - 0x26e]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov eax, dword [edx]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
mov al, byte [edx + 0xc]
mov byte [edi + 0xc], al
jmp 0x439717
mov edx, str.CPTLWA32.DLL
lea edi, [ebp - 0x26e]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov eax, dword [edx]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
mov ax, word [edx + 0xc]
mov word [edi + 0xc], ax
lea eax, [ebp - 0x26e]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x439753
cmp dword [0x45e03c], 0
je 0x43974e
lea eax, [ebp - 0x26e]
push eax
push str._n_rFAIL_x32_LF_D__nDOES_NOT_EXIST__n____s__n
call fcn.00452380
add esp, 8
jmp 0x43997d
push 0x3d090
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x8e0], eax
mov dword [ebp - 0x8e4], 0
mov dword [ebp - 0x8e8], 0
mov eax, str._5078.5078
lea ecx, [ebp - 0x908]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
lea edi, [ebp - 0x908]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x90c], eax
cmp dword [ebp - 0x8e0], 0
je 0x439915
lea edi, [ebp - 0x26e]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov edx, edi
mov edi, 0x984fc0
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
push 0
push 3
push 0
push 0
push bind
lea eax, [ebp - 0x26e]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x910], eax
cmp dword [ebp - 0x910], 0xffffffff
jne 0x439834
cmp dword [0x45e03c], 0
je 0x43982f
push str._r_n_X_VIEW_FAILED_5078_
call fcn.00452380
add esp, 4
jmp 0x4398d5
push 0
lea eax, [ebp - 0x8dc]
push eax
push 0x3d090
mov eax, dword [ebp - 0x8e0]
push eax
mov eax, dword [ebp - 0x910]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x8e8], 0
mov eax, dword [ebp - 0x8dc]
cmp dword [ebp - 0x8e8], eax
jge 0x4398c8
inc dword [ebp - 0x8e8]
lea esi, [ebp - 0x908]
mov eax, dword [ebp - 0x8e8]
add eax, dword [ebp - 0x8e0]
mov edx, dword [ebp - 0x90c]
mov ecx, edx
shr ecx, 2
mov edi, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x4398c3
mov ecx, edx
and ecx, 3
repe cmpsb byte [esi], byte es:[edi]
jne 0x4398c3
mov dword [ebp - 0x8e4], 1
mov eax, dword [ebp - 0x8dc]
inc eax
mov dword [ebp - 0x8e8], eax
jmp 0x439860
mov eax, dword [ebp - 0x910]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x8e0]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x8e4], 0
jne 0x439915
cmp dword [0x45e03c], 0
je 0x439910
lea eax, [ebp - 0x26e]
push eax
push str._n_rFAIL_x32_LF_too_old_version___s_
call fcn.00452380
add esp, 8
jmp 0x43997d
mov dword [0x4621fc], 1
lea edi, [ebp - 0x2a0]
xor eax, eax
mov ecx, 0xa2
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov byte [ebp - 0x2a0], 0xec
push 0
lea eax, [ebp - 0x4c0]
push eax
push 5
lea eax, [ebp - 0xc]
push eax
push 0x28a
lea eax, [ebp - 0x2a0]
push eax
push 0xab350200
mov eax, dword [0x4622c0]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [0x45e03c], 0
je 0x43997d
push str._back_2______proceeding_n
call fcn.00452380
add esp, 4
pop edi
pop esi
pop ebx
leave
ret