Function at 0x1089f48
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Set file attributes

Disassembly:
mov eax, 0x10947d5
call fcn.0109436e
sub esp, 0x5f0
mov eax, dword [0x1099a38]
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
mov dword [ebp - 0x57c], esi
mov ebx, dword [ebp + 0xc]
and dword [ebp - 0x560], 0
and dword [ebp - 0x564], 0
test ebx, ebx
je 0x1089fdc
test esi, esi
je 0x108a79c
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x108a79c
test al, 0x50
jne 0x108a79c
push 0x5c
push esi
call sub.msvcrt.dll_strrchr
pop ecx
pop ecx
test eax, eax
je 0x1089fdc
inc eax
lea edx, [ebp - 0x32c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1089fbb
push 0x102b510
lea eax, [ebp - 0x32c]
push eax
call sub.msvcrt.dll_strstr
pop ecx
pop ecx
test eax, eax
jne 0x1089feb
mov dword [ebp - 0x540], 0x57
jmp 0x108a7a6
mov esi, 0x102b518
mov edi, eax
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
and dword [ebp - 4], 0
push dword [ebp - 0x57c]
lea ecx, [ebp - 0x590]
call fcn.01089dc7
mov byte [ebp - 4], 1
lea eax, [ebp - 0x224]
push eax
call fcn.010886d9
mov dword [ebp - 0x540], eax
test eax, eax
jne 0x108a568
and dword [ebp - 0x550], eax
mov esi, dword [ebx + 0x1c]
mov dword [ebp - 0x558], esi
mov ebx, 0x102bd34
xor edi, edi
cmp esi, edi
je 0x108a0c0
mov dword [ebp - 0x54c], edi
mov dword [ebp - 0x568], edi
mov dword [ebp - 0x548], edi
or dword [ebp - 0x544], 0xffffffff
mov dword [ebp - 0x56c], edi
mov dword [ebp - 0x554], edi
mov dword [ebp - 0x55c], edi
mov dword [ebp - 0x578], edi
mov dword [ebp - 0x574], edi
mov dword [ebp - 0x570], edi
push dword [esi + 0x70]
push ebx
push 0x102bd14
call fcn.01071b29
add esp, 0xc
lea eax, [ebp - 0x568]
push eax
lea eax, [ebp - 0x54c]
push eax
push esi
call fcn.01088fb3
mov dword [ebp - 0x540], eax
cmp eax, edi
je 0x108a138
push eax
push ebx
push 0x102bd00
call fcn.01071aea
add esp, 0xc
mov esi, dword [ebp - 0x550]
cmp esi, edi
je 0x108a722
mov eax, dword [ebp - 0x564]
push eax
mov ecx, dword [ebp - 0x560]
push ecx
add eax, ecx
push eax
push ebx
push 0x102bc88
call fcn.01071b14
add esp, 0x14
cmp dword [ebp - 0x540], edi
jne 0x108a102
mov ecx, esi
call fcn.01089258
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x5d0], esi
mov dword [ebp - 0x5f0], esi
push 1
mov ecx, esi
call fcn.01089f27
mov dword [ebp - 0x550], edi
cmp dword [ebp - 0x540], edi
jne 0x108a715
mov dword [ebp - 0x540], 0xf200
jmp 0x108a722
lea edi, [esi + 0x17c]
lea eax, [ebp - 0x544]
push eax
lea eax, [ebp - 0x548]
push eax
mov esi, dword [ebp - 0x54c]
push esi
push dword [ebp - 0x568]
push edi
lea ecx, [ebp - 0x590]
call fcn.0108c4a0
mov dword [ebp - 0x540], eax
test eax, eax
je 0x108a1a4
push edi
push eax
push ebx
push 0x102bc40
call fcn.01071aea
add esp, 0x10
mov dword [ebp - 0x5dc], esi
mov dword [ebp - 0x5bc], esi
test esi, esi
je 0x108a198
push 3
mov ecx, esi
call fcn.01088e90
and dword [ebp - 0x54c], 0
jmp 0x108a40a
cmp dword [ebp - 0x544], 0xffffffff
je 0x108a348
mov dword [ebp - 0x56c], 0x105
push edi
push 0x102bc38
push 0x1020a90
lea eax, [ebp - 0x434]
push eax
call sub.msvcrt.dll_sprintf
add esp, 0x10
lea eax, [ebp - 0x56c]
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x434]
push eax
call fcn.01088635
mov dword [ebp - 0x540], eax
xor edi, edi
cmp eax, edi
je 0x108a251
push eax
push ebx
push 0x102bc08
call fcn.01071aea
add esp, 0xc
mov dword [ebp - 0x5c4], esi
mov dword [ebp - 0x5cc], esi
cmp esi, edi
je 0x108a223
push 3
mov ecx, esi
call fcn.01088e90
mov dword [ebp - 0x54c], edi
mov ecx, dword [ebp - 0x548]
mov dword [ebp - 0x5d4], ecx
mov dword [ebp - 0x5b8], ecx
cmp ecx, edi
je 0x108a246
push 1
call fcn.01088ede
mov dword [ebp - 0x548], edi
jmp 0x108a40a
lea eax, [ebp - 0x11c]
push eax
mov eax, dword [ebp - 0x544]
shl eax, 4
push dword [eax + esi + 4]
push ebx
push 0x102bbe0
call fcn.01071b29
add esp, 0x10
lea eax, [ebp - 0x11c]
push eax
call fcn.010300d2
mov eax, dword [ebp - 0x544]
shl eax, 4
add eax, esi
lea ecx, [ebp - 0x11c]
test byte [eax + 8], 0x18
je 0x108a39f
push dword [eax + 0xc]
push ecx
push dword [eax + 4]
call fcn.0104961c
test eax, eax
jne 0x108a374
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x540], eax
cmp eax, 0x70
mov eax, dword [ebp - 0x544]
jne 0x108a2de
shl eax, 4
push dword [eax + esi + 4]
lea eax, [ebp - 0x11c]
push eax
push ebx
push 0x102bb80
jmp 0x108a402
shl eax, 4
add eax, esi
push dword [ebp - 0x540]
push dword [eax + 0xc]
push dword [eax + 4]
lea eax, [ebp - 0x11c]
push eax
push ebx
push 0x102bb20
call fcn.01071aff
add esp, 0x18
cmp dword [ebp - 0x540], edi
jne 0x108a348
mov dword [ebp - 0x554], 1
push 0x80
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x108a348
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x11c]
push eax
push ebx
push 0x102bad8
call fcn.01071aff
add esp, 0x10
and dword [ebp - 0x540], 0
cmp dword [ebp - 0x554], 1
jne 0x108a411
mov dword [ebp - 0x55c], 0x80
mov esi, dword [ebp - 0x548]
add esi, 8
jmp 0x108a44c
mov eax, dword [ebp - 0x544]
shl eax, 4
add eax, esi
push dword [eax + 0xc]
push dword [eax + 4]
lea eax, [ebp - 0x11c]
push eax
push ebx
push 0x102ba94
call fcn.01071b29
add esp, 0x14
jmp 0x108a304
push edi
push ecx
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x108a30c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x540], eax
cmp eax, 0x70
jne 0x108a3df
mov eax, dword [ebp - 0x544]
shl eax, 4
push dword [eax + esi + 4]
lea eax, [ebp - 0x11c]
push eax
push ebx
push 0x102ba40
jmp 0x108a402
cmp eax, 3
jne 0x108a304
lea eax, [ebp - 0x11c]
push eax
mov eax, dword [ebp - 0x544]
shl eax, 4
push dword [eax + esi + 4]
push ebx
push 0x102b9d0
call fcn.01071aea
add esp, 0x10
xor edi, edi
jmp 0x108a0c0
mov eax, dword [ebp - 0x548]
mov ecx, dword [eax + 4]
cmp ecx, 0xff
je 0x108a443
cmp ecx, 3
je 0x108a443
push dword [eax]
push ebx
push 0x102b998
call fcn.01071aea
mov dword [ebp - 0x540], 0xf202
jmp 0x108a521
mov dword [ebp - 0x55c], ecx
lea esi, [eax + 0x14]
lea edi, [ebp - 0x578]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x550], 0
jne 0x108a5a9
mov byte [ebp - 4], 2
push 0x11c
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x5e4], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x108a48f
lea ecx, [ebp - 0x224]
push ecx
mov ecx, eax
call fcn.01089eac
jmp 0x108a491
xor eax, eax
mov esi, eax
mov dword [ebp - 0x5ec], esi
mov byte [ebp - 4], 2
mov dword [ebp - 0x550], esi
test esi, esi
jne 0x108a4c5
lea eax, [ebp - 0x224]
push eax
push ebx
push 0x102b964
call fcn.01071aea
mov dword [ebp - 0x540], 0xe
jmp 0x108a521
mov dword [ebp - 4], 1
lea eax, [ebp - 0x32c]
push eax
push 0x10224e8
push 0x102b958
lea eax, [ebp - 0x53c]
push eax
call sub.msvcrt.dll_sprintf
add esp, 0x10
lea eax, [ebp - 0x53c]
push eax
lea eax, [ebp - 0x32c]
push eax
mov ecx, esi
call fcn.01088bb8
mov dword [ebp - 0x540], eax
test eax, eax
je 0x108a5a9
lea eax, [ebp - 0x224]
push eax
push ebx
push 0x102b92c
call fcn.01071aea
add esp, 0xc
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x590]
call fcn.01089e42
or dword [ebp - 4], 0xffffffff
jmp 0x108a7ab
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x590]
call fcn.01089e42
or dword [ebp - 4], 0xffffffff
jmp 0x108a7a6
lea ecx, [ebp - 0x5b4]
call fcn.01088a8a
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x548]
mov eax, dword [eax]
mov dword [ebp - 0x5b4], eax
mov eax, dword [ebp - 0x55c]
mov dword [ebp - 0x5b0], eax
mov eax, dword [ebp - 0x570]
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp - 0x574]
mov dword [ebp - 0x5a8], eax
mov esi, dword [ebp - 0x558]
add esi, 0x38
lea edi, [ebp - 0x5a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x554]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x434]
and ecx, edx
mov dword [ebp - 0x5a4], ecx
xor edi, edi
cmp dword [ebp - 0x554], edi
je 0x108a655
mov ecx, dword [ebp - 0x544]
shl ecx, 4
mov esi, dword [ebp - 0x54c]
push dword [ecx + esi + 4]
push eax
push dword [ebp - 0x5b4]
push ebx
push 0x102b8bc
call fcn.01071b3e
add esp, 0x14
mov eax, dword [ebp - 0x574]
add dword [ebp - 0x560], eax
jmp 0x108a67c
push eax
push dword [ebp - 0x5b4]
push ebx
push 0x102b888
call fcn.01071b3e
add esp, 0x10
mov eax, dword [ebp - 0x574]
add dword [ebp - 0x564], eax
mov esi, dword [ebp - 0x54c]
lea eax, [ebp - 0x5b4]
push eax
mov ecx, dword [ebp - 0x550]
call fcn.01089cea
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x5b4], edi
mov dword [ebp - 0x5a4], edi
cmp eax, edi
je 0x108a6ba
mov eax, dword [ebp - 0x548]
push dword [eax]
push ebx
push 0x102b858
call fcn.01071aea
add esp, 0xc
cmp esi, edi
je 0x108a6d3
mov dword [ebp - 0x5c0], esi
mov dword [ebp - 0x5e8], esi
push 3
mov ecx, esi
call fcn.01088e90
mov ecx, dword [ebp - 0x548]
cmp ecx, edi
je 0x108a6f0
mov dword [ebp - 0x5c8], ecx
mov dword [ebp - 0x5e0], ecx
push 1
call fcn.01088ede
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5b4]
call fcn.01088b5e
mov eax, dword [ebp - 0x558]
mov eax, dword [eax + 4]
mov dword [ebp - 0x558], eax
mov esi, eax
jmp 0x108a03b
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x590]
call fcn.01089e42
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x540], edi
jne 0x108a7ab
push ebx
push 0x102b7f8
call fcn.01071b14
pop ecx
pop ecx
mov dword [ebp - 0x540], 0xf201
jmp 0x108a7ab
mov dword [ebp - 0x540], 0xf20a
mov ebx, 0x102bd34
push dword [ebp - 0x540]
call fcn.010885dc
mov esi, eax
push esi
push ebx
push 0x102b788
call fcn.01071b29
add esp, 0xc
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.0106bc50
pop edi
pop esi
pop ebx
leave
ret 8