Function at 0x52519c
Capabilities:
Check if file exists
Copy file
Delete file
Enumerate files on windows
Get file attributes
Move file
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x571ed9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xca8
push esi
mov dword [ebp - 0xcac], ecx
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x10], 0
push 0x104
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.0054bfb0
add esp, 0xc
mov ecx, dword [0x5be04c]
mov dword [ebp - 0x10], ecx
push 0x104
push 0
lea edx, [ebp - 0x31c]
push edx
call fcn.0054bfb0
add esp, 0xc
push 0x5be06c
lea eax, [ebp - 0x31c]
push eax
call fcn.0054bec0
add esp, 8
cmp dword [ebp - 0x10], 0
je 0x525af1
mov dword [ebp - 0x534], 0
mov dword [ebp - 0x784], 0
lea ecx, [ebp - 0x42c]
call fcn.004013e0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x114]
push ecx
call fcn.0053534c
add esp, 4
cmp dword [0x5be054], 0
je 0x52542e
push 0x104
push 0
lea edx, [ebp - 0x780]
push edx
call fcn.0054bfb0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x525298
mov dword [ebp - 0x324], 1
lea ecx, [ebp - 0x678]
push ecx
push 0x5b6c08
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x67c], eax
cmp dword [ebp - 0x67c], 0xffffffff
jne 0x5252bb
jmp 0x5252c5
mov dword [ebp - 0x324], 0
cmp dword [ebp - 0x324], 0
jne 0x52542e
cmp dword [ebp - 0x784], 0
jne 0x52542e
lea edx, [ebp - 0x114]
push edx
lea eax, [ebp - 0x888]
push eax
call fcn.0054bec0
add esp, 8
push 0x5b6c10
lea ecx, [ebp - 0x888]
push ecx
call fcn.0054bed0
add esp, 8
lea edx, [ebp - 0x64c]
push edx
lea eax, [ebp - 0x888]
push eax
call fcn.0054bed0
add esp, 8
lea ecx, [ebp - 0x888]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x538], eax
mov edx, dword [ebp - 0x538]
and edx, 0x10
test edx, edx
je 0x525344
jmp 0x5253fc
lea ecx, [ebp - 0x88c]
call fcn.004013e0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x780]
push ecx
call fcn.0054bec0
add esp, 8
push 0x5b6c14
lea edx, [ebp - 0x780]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x780]
push ecx
call fcn.0054bed0
add esp, 8
lea edx, [ebp - 0x64c]
push edx
lea eax, [ebp - 0x428]
push eax
call fcn.0054bec0
add esp, 8
lea ecx, [ebp - 0x428]
push ecx
lea ecx, [ebp - 0x88c]
call fcn.0056102a
lea ecx, [ebp - 0x88c]
call fcn.005613a3
push 0x5b6c18
lea edx, [ebp - 0x88c]
push edx
call fcn.00408960
and eax, 0xff
test eax, eax
je 0x5253ed
lea eax, [ebp - 0x780]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x88c]
call fcn.00560ea1
lea ecx, [ebp - 0x678]
push ecx
mov edx, dword [ebp - 0x67c]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x525429
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x525429
mov dword [ebp - 0x324], 1
jmp 0x5252c5
lea eax, [ebp - 0x31c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0x20
jne 0x52565a
lea ecx, [ebp - 0x994]
call fcn.004013e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x31c]
push ecx
push 0x5b6c28
lea edx, [ebp - 0x994]
push edx
call fcn.0055ea77
add esp, 0xc
push 0x5c
lea ecx, [ebp - 0x994]
call fcn.0055e6cf
mov dword [ebp - 0x998], eax
lea ecx, [ebp - 0x994]
call fcn.00401400
mov esi, eax
push 0x5c
lea ecx, [ebp - 0x994]
call fcn.0055e6cf
sub esi, eax
push esi
lea eax, [ebp - 0xca8]
push eax
lea ecx, [ebp - 0x994]
call fcn.0055e5db
mov dword [ebp - 0xcb0], eax
mov ecx, dword [ebp - 0xcb0]
mov dword [ebp - 0xcb4], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xcb4]
push edx
lea ecx, [ebp - 0x994]
call fcn.00560fda
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xca8]
call fcn.00560ea1
mov eax, dword [ebp - 0x994]
push eax
push 0x5b6c2c
lea ecx, [ebp - 0x990]
push ecx
call fcn.0054c45b
add esp, 0xc
push 0x104
push 0
mov edx, dword [ebp - 0xcac]
add edx, 0x150f4
push edx
call fcn.0054bfb0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call fcn.0053534c
add esp, 4
push 0x5b6c30
lea ecx, [ebp - 0x114]
push ecx
call fcn.0054bed0
add esp, 8
lea edx, [ebp - 0x990]
push edx
lea eax, [ebp - 0x114]
push eax
call fcn.0054bed0
add esp, 8
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x5255a0
push 0
lea edx, [ebp - 0x114]
push edx
lea eax, [ebp - 0x31c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x31c]
push ecx
mov edx, dword [ebp - 0xcac]
add edx, 0x151f8
push edx
call fcn.0054bec0
add esp, 8
jmp 0x52562b
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0xa9c]
push ecx
call fcn.0054bec0
add esp, 8
push 0x5b6c34
lea edx, [ebp - 0xa9c]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0xa9c]
push eax
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea edx, [ebp - 0xa9c]
push edx
mov eax, dword [ebp - 0xcac]
add eax, 0x150f4
push eax
call fcn.0054bec0
add esp, 8
push 0
lea ecx, [ebp - 0x114]
push ecx
lea edx, [ebp - 0x31c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x31c]
push eax
mov ecx, dword [ebp - 0xcac]
add ecx, 0x151f8
push ecx
call fcn.0054bec0
add esp, 8
lea edx, [ebp - 0x114]
push edx
mov eax, dword [ebp - 0xcac]
add eax, 0x14ff0
push eax
call fcn.0054bec0
add esp, 8
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x994]
call fcn.00560ea1
jmp 0x525adf
mov dword [ebp - 0x324], 0
push 0x104
push 0
lea ecx, [ebp - 0x780]
push ecx
call fcn.0054bfb0
add esp, 0xc
lea edx, [ebp - 0x31c]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x525695
mov dword [ebp - 0x324], 1
lea eax, [ebp - 0x678]
push eax
push str..ini
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x67c], eax
cmp dword [ebp - 0x67c], 0xffffffff
jne 0x5256db
push 0
lea ecx, [ebp - 0x31c]
push ecx
push str.Not_Find_any_INI_file
mov ecx, dword [ebp - 0xcac]
call fcn.00563067
mov dword [ebp - 0x324], 1
jmp 0x5256e5
mov dword [ebp - 0x324], 0
push 0x104
push 0
lea edx, [ebp - 0x530]
push edx
call fcn.0054bfb0
add esp, 0xc
cmp dword [ebp - 0x324], 0
jne 0x525864
cmp dword [ebp - 0x784], 0
jne 0x525864
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0xba0]
push ecx
call fcn.0054bec0
add esp, 8
push 0x5b6c5c
lea edx, [ebp - 0xba0]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0xba0]
push ecx
call fcn.0054bed0
add esp, 8
lea edx, [ebp - 0xba0]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x538], eax
mov eax, dword [ebp - 0x538]
and eax, 0x10
test eax, eax
je 0x52577a
jmp 0x52581d
cmp dword [ebp - 0x534], 0
jne 0x5257f9
lea ecx, [ebp - 0x31c]
push ecx
lea edx, [ebp - 0x780]
push edx
call fcn.0054bec0
add esp, 8
push 0x5b6c60
lea eax, [ebp - 0x780]
push eax
call fcn.0054bed0
add esp, 8
lea ecx, [ebp - 0x64c]
push ecx
lea edx, [ebp - 0x780]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x428]
push ecx
call fcn.0054bec0
add esp, 8
mov dword [ebp - 0x784], 1
lea edx, [ebp - 0xba0]
push edx
lea eax, [ebp - 0x530]
push eax
call fcn.0054bec0
add esp, 8
mov ecx, dword [ebp - 0x534]
add ecx, 1
mov dword [ebp - 0x534], ecx
cmp dword [0x5be058], 0
jne 0x525813
jmp 0x525864
mov dword [ebp - 0x784], 0
lea edx, [ebp - 0x678]
push edx
mov eax, dword [ebp - 0x67c]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x52584a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x52584a
mov dword [ebp - 0x324], 1
cmp dword [ebp - 0x324], 0
je 0x52585f
mov ecx, dword [ebp - 0x534]
mov dword [ebp - 0x784], ecx
jmp 0x5256fb
mov edx, dword [ebp - 0x67c]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [0x5be058], 0
je 0x5258cc
cmp dword [ebp - 0x534], 1
jle 0x5258a3
push 0
lea eax, [ebp - 0x31c]
push eax
push str.There_are_more_than_1_INI_exist__
mov ecx, dword [ebp - 0xcac]
call fcn.00563067
push 0
call fcn.0054e9bb
cmp dword [ebp - 0x534], 0
jne 0x5258cc
push 0
lea ecx, [ebp - 0x31c]
push ecx
push str.There_is_no_any_INI_exist__
mov ecx, dword [ebp - 0xcac]
call fcn.00563067
push 0
call fcn.0054e9bb
cmp dword [ebp - 0x784], 0
je 0x525aa7
push 0x104
push 0
mov edx, dword [ebp - 0xcac]
add edx, 0x150f4
push edx
call fcn.0054bfb0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call fcn.0053534c
add esp, 4
push 0x5b6ca4
lea ecx, [ebp - 0x114]
push ecx
call fcn.0054bed0
add esp, 8
lea edx, [ebp - 0x428]
push edx
lea eax, [ebp - 0x114]
push eax
call fcn.0054bed0
add esp, 8
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x52597a
push 0
lea edx, [ebp - 0x114]
push edx
lea eax, [ebp - 0x780]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x320], eax
lea ecx, [ebp - 0x780]
push ecx
mov edx, dword [ebp - 0xcac]
add edx, 0x151f8
push edx
call fcn.0054bec0
add esp, 8
jmp 0x5259e9
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0xca4]
push ecx
call fcn.0054bec0
add esp, 8
push str..bak
lea edx, [ebp - 0xca4]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0xca4]
push eax
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea edx, [ebp - 0xca4]
push edx
mov eax, dword [ebp - 0xcac]
add eax, 0x150f4
push eax
call fcn.0054bec0
add esp, 8
push 0
lea ecx, [ebp - 0x114]
push ecx
lea edx, [ebp - 0x780]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x114]
push eax
mov ecx, dword [ebp - 0xcac]
add ecx, 0x14ff0
push ecx
call fcn.0054bec0
add esp, 8
lea edx, [ebp - 0x114]
push edx
lea eax, [ebp - 0x31c]
push eax
call fcn.0054bec0
add esp, 8
lea ecx, [ebp - 0x780]
push ecx
mov edx, dword [ebp - 0xcac]
add edx, 0x151f8
push edx
call fcn.0054bec0
add esp, 8
mov eax, dword [ebp - 0xcac]
add eax, 0x151f8
push eax
mov ecx, dword [ebp - 0xcac]
add ecx, 0x3b0
push ecx
call fcn.0054bec0
add esp, 8
mov edx, dword [ebp - 0xcac]
add edx, 0x3b0
push edx
mov ecx, dword [ebp - 0xcac]
call fcn.00521f5d
push 0
mov eax, dword [ebp - 0xcac]
add eax, 0x3b0
push eax
push 1
call fcn.00426ee0
add esp, 0xc
push 1
mov ecx, dword [ebp - 0xcac]
call fcn.0051e0ca
call fcn.00428514
mov ecx, dword [ebp - 0xcac]
call fcn.0051e5b8
jmp 0x525adf
push 0x104
push 0
mov ecx, dword [ebp - 0xcac]
add ecx, 0x14ff0
push ecx
call fcn.0054bfb0
add esp, 0xc
push 0x104
push 0
mov edx, dword [ebp - 0xcac]
add edx, 0x150f4
push edx
call fcn.0054bfb0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x42c]
call fcn.00560ea1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret