Function at 0x42ba73
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
push ebx
push esi
push edi
cmp dword [0x45e03c], 0
je 0x42ba9e
push str._r_nDEBUG_MODE_OVERRIDE_TO_SCREEN
call fcn.00452380
add esp, 4
jmp 0x42bcdd
mov dword [ebp - 0x438], 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x408]
push eax
push 0x13880
push 0x5dfac0
call fcn.004381a6
add esp, 0x14
mov eax, dword [ebp - 0x438]
push eax
call fcn.0043a0f4
add esp, 4
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 - 0x404]
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]
lea edi, [ebp - 0x404]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x410], eax
cmp dword [ebp - 0x410], 0
je 0x42bb67
dec dword [ebp - 0x410]
mov eax, dword [ebp - 0x410]
movsx eax, byte [ebp + eax - 0x404]
cmp eax, 0x5c
je 0x42bb62
lea edi, [ebp - 0x404]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
mov ax, word [0x4781a4]
mov word [edi - 1], ax
jmp 0x42bb6c
jmp 0x42bcdd
lea edi, [ebp - 0x404]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x410], eax
mov edx, str.STLWA_NT.DBG
lea edi, [ebp - 0x404]
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
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x42bcdd
mov dword [0x45e03c], 1
mov eax, str.STLWA_NT.OUT
mov ecx, dword [ebp - 0x410]
lea ecx, [ebp + ecx - 0x404]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov al, byte [eax + 0xc]
mov byte [ecx + 0xc], al
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x404]
push eax
call fcn.00452b10
add esp, 8
mov dword [ebp - 0x40c], eax
cmp dword [ebp - 0x40c], 0
jne 0x42bca8
cmp dword [ebp - 0x420], 0x6400000
jle 0x42bca8
lea edi, [ebp - 0x404]
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 - 0x204]
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 eax, str.STLWA_NT.OUTOLD
mov ecx, dword [ebp - 0x410]
lea ecx, [ebp + ecx - 0x204]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 3
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov eax, 0x47f950
add eax, 0x20
push eax
push 0x4781d8
lea eax, [ebp - 0x404]
push eax
call fcn.00453760
add esp, 0xc
push 0
call fcn.00452990
add esp, 4
push eax
push str._r_n_________r_nLWA_START___X__r_n
call fcn.00452380
add esp, 8
pop edi
pop esi
pop ebx
leave
ret