Function at 0x100418a
Capabilities:
Copy file
Delete file
Read file on windows
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x688
mov eax, dword [0x1014b48]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 4], eax
mov esi, 0x200
push esi
lea eax, [ebp - 0x308]
push eax
push 0x41e
mov dword [ebp - 0x65c], ebx
mov dword [ebp - 0x660], 0x45d
call fcn.01002c92
lea eax, [ebp - 0x308]
push eax
push 0x856
push ebx
call fcn.0100321c
push 0x1017700
push esi
lea eax, [ebp - 0x308]
push eax
mov edi, 0x10015b8
push edi
push 0x10015a8
push 0x1001454
call fcn.01003b12
test eax, eax
jne 0x1004210
push edi
lea eax, [ebp - 0x308]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x104
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0100366f
test eax, eax
push 0
lea eax, [ebp - 0x108]
jne 0x1004249
push 0x10
push 0
push eax
push 0x46d
push ebx
call fcn.0100373a
jmp 0x10048cc
mov edi, 0x1015b9c
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x100428c
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
push ecx
push esi
lea edx, [ebp - 0x508]
push edx
push ecx
push eax
push ecx
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0
push 0x10
lea eax, [ebp - 0x508]
push eax
push edi
push 0x45b
jmp 0x100423e
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
xor esi, esi
push esi
push edi
call fcn.01009582
cmp eax, esi
mov dword [ebp - 0x64c], eax
jne 0x10042b7
push esi
push 0x10
push esi
push edi
push 0x45c
jmp 0x100423e
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, 0x1015818
push esi
call edi
inc eax
push eax
push esi
mov esi, 0x409
push esi
push 0x10015a0
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
cmp dword [0x1015704], 0
je 0x100431e
mov ebx, 0x1015898
push ebx
call edi
inc eax
push eax
push ebx
push esi
push 0x1001598
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
mov ebx, 0x1001590
jmp 0x1004344
mov ebx, 0x1001590
push ebx
call edi
inc eax
push eax
push ebx
push esi
push 0x1001598
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
cmp dword [0x1015708], 0
je 0x100444d
lea eax, [ebp - 0x648]
push eax
push 0x1015a98
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, dword [ebp - 0x628]
sub ebx, dword [ebp - 0x62c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
push eax
push eax
push 3
push eax
push eax
push 0x80000000
push 0x1015a98
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x654], eax
jne 0x10043ae
push 0
push 0x10
push 0
push 0x1015a98
push 0x468
jmp 0x10048b6
lea eax, [ebx + 1]
push eax
push 0x40
mov dword [ebp - 0x658], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x650], eax
push ecx
jne 0x10043db
push 0x10
push ecx
push ecx
push 0x44c
jmp 0x10048b6
lea ecx, [ebp - 0x664]
push ecx
push ebx
push eax
push dword [ebp - 0x654]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1004407
push eax
push 0x10
push eax
push 0x1015a98
push 0x469
jmp 0x10048b6
push dword [ebp - 0x654]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x658]
push dword [ebp - 0x650]
push esi
push 0x1001588
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
push dword [ebp - 0x650]
je 0x100467b
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ebx, 0x1001590
jmp 0x100446e
push ebx
call edi
inc eax
push eax
push ebx
push esi
push 0x1001588
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
cmp dword [0x1017124], 0x865
je 0x100453f
push 0x10166b8
call edi
inc eax
push eax
push 0x10166b8
push esi
push 0x100157c
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
push 0x10164b8
call edi
inc eax
push eax
push 0x10164b8
push esi
push 0x100156c
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
cmp byte [0x1016d04], 0
je 0x10044e0
push 0x1016d04
jmp 0x10044e1
push ebx
call edi
inc eax
cmp byte [0x1016d04], 0
mov ecx, 0x1016d04
jne 0x10044f4
mov ecx, ebx
push eax
push ecx
push esi
push 0x1001564
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
cmp byte [0x1016f0c], 0
je 0x1004521
push 0x1016f0c
jmp 0x1004522
push ebx
call edi
inc eax
cmp byte [0x1016f0c], 0
mov ecx, 0x1016f0c
jne 0x1004535
mov ecx, ebx
push eax
push ecx
push esi
push 0x100155c
jmp 0x100454b
push ebx
call edi
inc eax
push eax
push ebx
push esi
push 0x100157c
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
push 4
push 0x1017128
push esi
push 0x1001550
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
cmp dword [0x101570c], 0
je 0x1004590
mov ebx, 0x1015ca0
push ebx
call edi
inc eax
push eax
push ebx
push esi
push 0x1001544
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
je 0x10048a9
lea eax, [ebp - 0x648]
push eax
mov ebx, 0x10161ac
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, dword [ebp - 0x628]
sub edi, dword [ebp - 0x62c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
push eax
push eax
push 3
push eax
push eax
push 0x80000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x654], eax
jne 0x1004607
push 0
push 0x10
push 0
push ebx
push 0x46a
jmp 0x10048b6
lea eax, [edi + 1]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
test eax, eax
mov dword [ebp - 0x650], eax
je 0x100486a
push 0
lea ecx, [ebp - 0x664]
push ecx
push edi
push eax
push dword [ebp - 0x654]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x100464b
push eax
push 0x10
push eax
push ebx
push 0x46b
jmp 0x10048b6
push dword [ebp - 0x654]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push dword [ebp - 0x650]
push esi
push 0x100153c
push 0xa
push dword [ebp - 0x64c]
call fcn.01008f01
test eax, eax
push dword [ebp - 0x650]
jne 0x1004686
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x10048a9
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ebx, dword [0x1017144]
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x688]
rep stosd dword es:[edi], eax
jmp 0x1004783
mov eax, dword [ebx]
push dword [ebx + 4]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x658], eax
call edi
push dword [ebp - 0x658]
mov dword [ebp - 0x658], eax
call edi
mov ecx, dword [ebp - 0x658]
lea eax, [ecx + eax + 1]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
mov dword [ebp - 0x658], edi
je 0x100486a
push dword [ebx + 4]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebx]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x648]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, dword [ebp - 0x628]
sub edi, dword [ebp - 0x62c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 0x658]
call dword [sym.imp.KERNEL32.dll_LocalFree]
and dword [ebp - 0x650], 0
mov dword [ebp - 0x654], 0x200
xor edx, edx
mov eax, edi
div dword [ebp - 0x654]
mov ecx, dword [ebp - 0x650]
lea ecx, [ebp + ecx*4 - 0x688]
neg edx
sbb edx, edx
imul eax, dword [ebp - 0x654]
and edx, dword [ebp - 0x654]
shl dword [ebp - 0x654], 1
add edx, eax
add dword [ecx], edx
inc dword [ebp - 0x650]
cmp dword [ebp - 0x650], 8
jl 0x1004739
add dword [ebp - 0x668], edi
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x10046a4
xor ecx, ecx
lea eax, [ebp + ecx*4 - 0x688]
mov edx, dword [eax]
add edx, 0x3ff
shr edx, 0xa
inc ecx
cmp ecx, 8
mov dword [eax], edx
jl 0x100478d
mov edi, dword [ebp - 0x64c]
push 0x24
lea eax, [ebp - 0x688]
push eax
push esi
push 0x1001530
push 0xa
pop ebx
push ebx
push edi
call fcn.01008f01
test eax, eax
je 0x10048a9
push 4
push 0x1017134
push esi
push 0x1001528
push ebx
push edi
call fcn.01008f01
test eax, eax
je 0x10048a9
push 4
push 0x101712c
push esi
push 0x100151c
push ebx
push edi
call fcn.01008f01
test eax, eax
je 0x10048a9
mov eax, dword [0x1017114]
test eax, eax
je 0x100482f
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x1017114]
push esi
push 0x100150c
push ebx
push edi
call fcn.01008f01
test eax, eax
je 0x10048a9
push 4
push 0x101713c
push esi
push 0x10014fc
push ebx
push edi
call fcn.01008f01
test eax, eax
je 0x10048a9
push edi
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x65c]
call fcn.0100c5f0
test eax, eax
jne 0x1004876
mov dword [ebp - 0x660], 0x471
jmp 0x10048a9
mov dword [ebp - 0x660], 0x44c
jmp 0x10048a9
mov eax, dword [0x1017140]
test eax, eax
je 0x1004893
push dword [eax]
push eax
push esi
push 0x10014f0
push ebx
push edi
call fcn.01008f01
test eax, eax
je 0x10048a9
push 0
push edi
call fcn.0100910a
test eax, eax
jne 0x10048d0
mov dword [ebp - 0x660], 0x45e
xor eax, eax
push eax
push 0x10
push eax
push eax
push dword [ebp - 0x660]
push dword [ebp - 0x65c]
call fcn.0100373a
push 0x1015b9c
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x10048d3
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100c759
leave
ret 4