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

Disassembly:
push 0x108
mov eax, 0x1105ff8
call fcn.0106f6be
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 [0x111124c]
cmp edx, 0x111124c
je 0x102ade0
test byte [edx + 0x1c], 1
je 0x102ade0
cmp byte [edx + 0x19], 4
jb 0x102ade0
push 0x10023f8
push 0xea
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010189d0
mov edx, dword [0x111124c]
or dword [ebp - 0x4c], 0xffffffff
or dword [ebp - 0x44], 0xffffffff
and dword [ebp - 0x40], 0
and dword [ebp - 0x48], 0
mov eax, 0x100cbcc
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 0x102ae4b
cmp edx, 0x111124c
je 0x102ae3f
test byte [edx + 0x1c], 1
je 0x102ae3f
cmp byte [edx + 0x19], 2
jb 0x102ae3f
push 0x10023f8
push 0xeb
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010189d0
mov edx, dword [0x111124c]
mov dword [ebp - 0x34], 0x80070057
jmp 0x102b315
test byte [ebx + 0xec], 1
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x40]
je 0x102aef0
push 0
push eax
push dword [ebp - 0x3c]
call fcn.0107c871
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x102b30f
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.0107e3c8
mov dword [ebp - 0x34], eax
test eax, eax
jge 0x102af7b
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b315
test byte [edx + 0x1c], 1
je 0x102b315
cmp byte [edx + 0x19], 2
jb 0x102b315
push eax
push dword [ebp - 0x40]
push 0x10023f8
push 0xed
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010196ed
jmp 0x102b30f
push eax
push 0x100317c
push dword [ebx + 0x178]
call fcn.0107c90e
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x102b30f
push dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x102ae77
call esi
mov edi, eax
cmp edi, 2
je 0x102ae77
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102af63
test byte [edx + 0x1c], 1
je 0x102af63
cmp byte [edx + 0x19], 2
jb 0x102af63
push edi
push dword [ebp - 0x40]
push 0x10023f8
push 0xec
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010196ed
mov edx, dword [0x111124c]
test edi, edi
jle 0x102af73
and edi, 0xffff
or edi, 0x80070000
mov dword [ebp - 0x34], edi
jmp 0x102b315
test byte [ebx + 0xec], 1
je 0x102af88
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 0x102afff
call esi
mov esi, eax
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b0a3
test byte [edx + 0x1c], 1
je 0x102b0a3
cmp byte [edx + 0x19], 2
jb 0x102b0a3
push esi
push dword [ebp - 0x40]
push 0x10023f8
push 0xee
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010196ed
jmp 0x102b09d
and esi, 0xffff
or esi, 0x80070000
mov dword [ebp - 0x34], esi
jmp 0x102b315
cmp dword [ebp - 0x48], edi
je 0x102b050
mov dword [ebp - 0x34], 0x8007045d
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b315
test byte [edx + 0x1c], 1
je 0x102b315
cmp byte [edx + 0x19], 2
jb 0x102b315
push 0x10
push dword [ebp - 0x48]
push 0x10023f8
push 0xef
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.0109ba57
jmp 0x102b30f
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
jne 0x102b0b0
call dword [sym.imp.ntdll.dll_RtlGetLastNtStatus]
mov ebx, eax
call esi
mov esi, eax
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b0a3
test byte [edx + 0x1c], 1
je 0x102b0a3
cmp byte [edx + 0x19], 2
jb 0x102b0a3
push ebx
push esi
push dword [ebp - 0x40]
push 0x10023f8
push 0xf0
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.0109b90b
mov edx, dword [0x111124c]
test esi, esi
jg 0x102afeb
jmp 0x102aff7
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 0x44], 0xffffffff
test byte [ebx + 0xec], 1
jne 0x102b118
push 1
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x102b114
call esi
mov esi, eax
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b0a3
test byte [edx + 0x1c], 1
je 0x102b0a3
cmp byte [edx + 0x19], 2
jb 0x102b0a3
push esi
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push 0x10023f8
push 0xf1
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.01019a40
jmp 0x102b09d
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.0107e3c8
mov dword [ebp - 0x34], eax
test eax, eax
jge 0x102b176
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b315
test byte [edx + 0x1c], 1
je 0x102b315
cmp byte [edx + 0x19], 2
jb 0x102b315
push eax
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf2
jmp 0x102aee0
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 0x102b1de
call esi
test eax, eax
jle 0x102b1a2
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x34], eax
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b315
test byte [edx + 0x1c], 1
je 0x102b315
cmp byte [edx + 0x19], 2
jb 0x102b315
push eax
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf3
jmp 0x102aee0
cmp dword [ebp - 0x48], edi
jne 0x102b2ae
push 4
pop ecx
lea edi, [ebp - 0x20]
lea esi, [ebp - 0x30]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x102b2ae
test byte [ebx + 0xec], 0x80
je 0x102b30f
cmp byte [ebx + 0xbc], al
je 0x102b30f
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 0x102b231
mov ecx, eax
call fcn.0101fd13
mov esi, eax
jmp 0x102b233
xor esi, esi
push dword [ebp - 0x3c]
or dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.0101a13c
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x102b30f
push 0
push 0x10
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.01020da4
mov dword [ebp - 0x34], eax
test eax, eax
jge 0x102b2a0
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b315
test byte [edx + 0x1c], 1
je 0x102b315
cmp byte [edx + 0x19], 2
jb 0x102b315
push eax
push 0x10023f8
push 0xf5
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010189f6
jmp 0x102b30f
push esi
lea ecx, [ebx + 0x1e0]
call fcn.01029c6b
jmp 0x102b30f
mov dword [ebp - 0x34], 0x8007045d
mov edx, dword [0x111124c]
cmp edx, 0x111124c
je 0x102b315
test byte [edx + 0x1c], 1
je 0x102b315
cmp byte [edx + 0x19], 2
jb 0x102b315
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xb0]
call fcn.0107c80d
mov esi, eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x114]
call fcn.0107c80d
push 0x10
push esi
push 0x10
push eax
mov eax, dword [0x111124c]
push 0x10023f8
push 0xf4
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010198a6
mov edx, dword [0x111124c]
cmp dword [ebp - 0x4c], 0xffffffff
je 0x102b32a
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x111124c]
cmp dword [ebp - 0x44], 0xffffffff
je 0x102b33f
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x111124c]
xor edi, edi
cmp dword [ebp - 0x34], edi
jge 0x102b3c1
cmp byte [ebp - 0x35], 0
je 0x102b3c1
mov esi, 0x111124c
cmp edx, esi
je 0x102b37c
test byte [edx + 0x1c], 1
je 0x102b37c
cmp byte [edx + 0x19], 4
jb 0x102b37c
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf6
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010196ed
push edi
push edi
push dword [ebp - 0x3c]
call fcn.0107f35a
cmp eax, edi
jge 0x102b3b9
mov edx, dword [0x111124c]
cmp edx, esi
je 0x102b3eb
test byte [edx + 0x1c], 1
je 0x102b3c6
cmp byte [edx + 0x19], 2
jb 0x102b3c6
push eax
push dword [ebp - 0x3c]
push 0x10023f8
push 0xf7
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010196ed
mov edx, dword [0x111124c]
jmp 0x102b3c6
mov esi, 0x111124c
cmp edx, esi
je 0x102b3eb
test byte [edx + 0x1c], 1
je 0x102b3eb
cmp byte [edx + 0x19], 4
jb 0x102b3eb
push 0x10023f8
push 0xf8
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.010189d0
mov eax, dword [ebp - 0x34]
call fcn.0106f750
ret 0x14