Function at 0x102ae63
Capabilities:
Check if file exists
Delete file
Move file
Read file on windows
Write file on windows

Disassembly:
push 0x108
mov eax, 0x1105d98
call fcn.0106f85e
mov eax, dword [ebp + 0x18]
lea esi, [ebp + 8]
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3c], eax
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102aeb9
test byte [edx + 0x1c], 1
je 0x102aeb9
cmp byte [edx + 0x19], 4
jb 0x102aeb9
push 0x10023f8
push 0xe9
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.0101894a
mov edx, dword [0x111024c]
or dword [ebp - 0x4c], 0xffffffff
or dword [ebp - 0x44], 0xffffffff
and dword [ebp - 0x40], 0
and dword [ebp - 0x48], 0
mov eax, 0x1007124
mov esi, eax
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 4
mov edi, eax
pop ecx
lea esi, [ebp - 0x20]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
mov byte [ebp - 0x35], 0
jne 0x102af24
cmp edx, 0x111024c
je 0x102af18
test byte [edx + 0x1c], 1
je 0x102af18
cmp byte [edx + 0x19], 2
jb 0x102af18
push 0x10023f8
push 0xea
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.0101894a
mov edx, dword [0x111024c]
mov dword [ebp - 0x34], 0x80070057
jmp 0x102b3ee
test byte [ebx + 0xec], 1
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x40]
je 0x102afc9
push 0
push eax
push dword [ebp - 0x3c]
call fcn.0107c9fc
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x102b3e8
cmp dword [ebx + 0xe8], 4
lea eax, [ebp - 0x44]
push eax
setne al
movzx eax, al
push eax
push 0
push 0x80
push 2
push 0
push 0xc0000000
push dword [ebp - 0x40]
call fcn.0107e47a
mov dword [ebp - 0x34], eax
test eax, eax
jge 0x102b054
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b3ee
test byte [edx + 0x1c], 1
je 0x102b3ee
cmp byte [edx + 0x19], 2
jb 0x102b3ee
push eax
push dword [ebp - 0x40]
push 0x10023f8
push 0xec
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01048c37
jmp 0x102b3e8
push eax
push 0x1003184
push dword [ebx + 0x178]
call fcn.0107ca99
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x102b3e8
push dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x102af50
call esi
mov edi, eax
cmp edi, 2
je 0x102af50
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b03c
test byte [edx + 0x1c], 1
je 0x102b03c
cmp byte [edx + 0x19], 2
jb 0x102b03c
push edi
push dword [ebp - 0x40]
push 0x10023f8
push 0xeb
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01048c37
mov edx, dword [0x111024c]
test edi, edi
jle 0x102b04c
and edi, 0xffff
or edi, 0x80070000
mov dword [ebp - 0x34], edi
jmp 0x102b3ee
test byte [ebx + 0xec], 1
je 0x102b061
mov byte [ebp - 0x35], 1
push 0
lea eax, [ebp - 0x48]
push eax
push 0x10
pop edi
push edi
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x102b0d8
call esi
mov esi, eax
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b17c
test byte [edx + 0x1c], 1
je 0x102b17c
cmp byte [edx + 0x19], 2
jb 0x102b17c
push esi
push dword [ebp - 0x40]
push 0x10023f8
push 0xed
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01048c37
jmp 0x102b176
and esi, 0xffff
or esi, 0x80070000
mov dword [ebp - 0x34], esi
jmp 0x102b3ee
cmp dword [ebp - 0x48], edi
je 0x102b129
mov dword [ebp - 0x34], 0x8007045d
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b3ee
test byte [edx + 0x1c], 1
je 0x102b3ee
cmp byte [edx + 0x19], 2
jb 0x102b3ee
push 0x10
push dword [ebp - 0x48]
push 0x10023f8
push 0xee
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01083f04
jmp 0x102b3e8
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
jne 0x102b189
call dword [sym.imp.ntdll.dll_RtlGetLastNtStatus]
mov ebx, eax
call esi
mov esi, eax
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b17c
test byte [edx + 0x1c], 1
je 0x102b17c
cmp byte [edx + 0x19], 2
jb 0x102b17c
push ebx
push esi
push dword [ebp - 0x40]
push 0x10023f8
push 0xef
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01019c0f
mov edx, dword [0x111024c]
test esi, esi
jg 0x102b0c4
jmp 0x102b0d0
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 0x44], 0xffffffff
test byte [ebx + 0xec], 1
jne 0x102b1f1
push 1
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x102b1ed
call esi
mov esi, eax
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b17c
test byte [edx + 0x1c], 1
je 0x102b17c
cmp byte [edx + 0x19], 2
jb 0x102b17c
push esi
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push 0x10023f8
push 0xf0
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010198ad
jmp 0x102b176
mov byte [ebp - 0x35], 1
lea eax, [ebp - 0x4c]
push eax
push 0
push 0
push 0x2000000
push 3
push 1
push 0x80000000
push dword [ebp - 0x3c]
call fcn.0107e47a
mov dword [ebp - 0x34], eax
test eax, eax
jge 0x102b24f
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b3ee
test byte [edx + 0x1c], 1
je 0x102b3ee
cmp byte [edx + 0x19], 2
jb 0x102b3ee
push eax
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf1
jmp 0x102afb9
and dword [ebp - 0x48], 0
push 0
lea eax, [ebp - 0x48]
push eax
push edi
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x102b2b7
call esi
test eax, eax
jle 0x102b27b
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x34], eax
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b3ee
test byte [edx + 0x1c], 1
je 0x102b3ee
cmp byte [edx + 0x19], 2
jb 0x102b3ee
push eax
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf2
jmp 0x102afb9
cmp dword [ebp - 0x48], edi
jne 0x102b387
push 4
pop ecx
lea edi, [ebp - 0x20]
lea esi, [ebp - 0x30]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x102b387
test byte [ebx + 0xec], 0x80
je 0x102b3e8
cmp byte [ebx + 0xbc], al
je 0x102b3e8
push 0x28
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x34], eax
and dword [ebp - 4], 0
test eax, eax
je 0x102b30a
mov ecx, eax
call fcn.0101fc50
mov esi, eax
jmp 0x102b30c
xor esi, esi
push dword [ebp - 0x3c]
or dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.0101a04a
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x102b3e8
push 0
push 0x10
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.01020d5f
mov dword [ebp - 0x34], eax
test eax, eax
jge 0x102b379
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b3ee
test byte [edx + 0x1c], 1
je 0x102b3ee
cmp byte [edx + 0x19], 2
jb 0x102b3ee
push eax
push 0x10023f8
push 0xf4
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01019fa8
jmp 0x102b3e8
push esi
lea ecx, [ebx + 0x1e0]
call fcn.01029ca7
jmp 0x102b3e8
mov dword [ebp - 0x34], 0x8007045d
mov edx, dword [0x111024c]
cmp edx, 0x111024c
je 0x102b3ee
test byte [edx + 0x1c], 1
je 0x102b3ee
cmp byte [edx + 0x19], 2
jb 0x102b3ee
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xb0]
call fcn.0107c998
mov esi, eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x114]
call fcn.0107c998
push 0x10
push esi
push 0x10
push eax
mov eax, dword [0x111024c]
push 0x10023f8
push 0xf3
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01050870
mov edx, dword [0x111024c]
cmp dword [ebp - 0x4c], 0xffffffff
je 0x102b403
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x111024c]
cmp dword [ebp - 0x44], 0xffffffff
je 0x102b418
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x111024c]
xor edi, edi
cmp dword [ebp - 0x34], edi
jge 0x102b49a
cmp byte [ebp - 0x35], 0
je 0x102b49a
mov esi, 0x111024c
cmp edx, esi
je 0x102b455
test byte [edx + 0x1c], 1
je 0x102b455
cmp byte [edx + 0x19], 4
jb 0x102b455
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf5
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01048c37
push edi
push edi
push dword [ebp - 0x3c]
call fcn.0107f40d
cmp eax, edi
jge 0x102b492
mov edx, dword [0x111024c]
cmp edx, esi
je 0x102b4c4
test byte [edx + 0x1c], 1
je 0x102b49f
cmp byte [edx + 0x19], 2
jb 0x102b49f
push eax
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf6
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01048c37
mov edx, dword [0x111024c]
jmp 0x102b49f
mov esi, 0x111024c
cmp edx, esi
je 0x102b4c4
test byte [edx + 0x1c], 1
je 0x102b4c4
cmp byte [edx + 0x19], 4
jb 0x102b4c4
push 0x10023f8
push 0xf7
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.0101894a
mov eax, dword [ebp - 0x34]
call fcn.0106f8f0
ret 0x14