Function at 0x407cd0
Capabilities:
Check if file exists
Copy file
Move file
Read .ini file

Disassembly:
sub esp, 0xa9c
push ebx
push ebp
mov ebp, ecx
push edi
xor ebx, ebx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x91]
mov byte [esp + 0x90], bl
mov word [esp + 0x4a0], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x4a2]
mov byte [esp + 0x298], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x299]
mov byte [esp + 0x194], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x195]
mov byte [esp + 0x6a8], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x6a9]
mov byte [esp + 0x50], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x51]
mov byte [esp + 0x10], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x11]
mov byte [esp + 0x39c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x39d]
mov dword [esp + 0xc], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0xaac]
cmp eax, ebx
je 0x407db2
mov dword [eax], ebx
push esi
lea esi, [ebp + 0x118]
push esi
lea eax, [esp + 0x58]
push 0x40
push eax
push ebx
push str.version
mov ecx, 0x418b48
call fcn.00402170
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
call edi
test eax, eax
je 0x40800d
push esi
lea ecx, [esp + 0x6b0]
push 0x400
push ecx
push ebx
push 0x414664
mov ecx, 0x418b48
call fcn.00402170
push eax
call edi
test eax, eax
je 0x40800d
lea edx, [esp + 0x94]
push 0x104
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x407e74
lea eax, [esp + 0x14]
push 0x40
lea ecx, [esp + 0x98]
push eax
push ecx
call fcn.00409b30
add esp, 0xc
test eax, eax
je 0x407e74
lea edx, [esp + 0x14]
push 1
lea eax, [esp + 0x58]
push edx
push eax
mov byte [esp + 0xa0], bl
call fcn.0040a070
add esp, 0xc
test eax, eax
jg 0x407e67
mov ebx, 1
jmp 0x408011
mov ecx, dword [esp + 0xab0]
mov dword [ecx], 1
lea edx, [ebp + 0x21c]
push 0x104
lea eax, [esp + 0x98]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea ecx, [esp + 0x94]
push 0x414270
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
push esi
lea edx, [esp + 0x3a4]
push 0x104
push edx
push ebx
push str.general
mov ecx, 0x418b48
call fcn.00402170
push eax
call edi
test eax, eax
je 0x40800d
lea eax, [esp + 0x3a0]
lea ecx, [esp + 0x94]
push eax
lea edx, [esp + 0x6b0]
push ecx
push edx
mov ecx, ebp
call fcn.004086d0
test eax, eax
je 0x40800d
lea eax, [esp + 0x4a4]
push 0x104
push eax
lea ecx, [esp + 0x9c]
push 0xffffffffffffffff
push ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x408011
lea edx, [esp + 0x4a4]
push edx
call fcn.004066a0
test eax, eax
je 0x408011
cmp dword [ebp + 4], ebx
jne 0x40800d
lea eax, [esp + 0x29c]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x408011
lea ecx, [esp + 0x29c]
push 0x104
lea edx, [esp + 0x19c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [esp + 0x198]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea ecx, [esp + 0x198]
push 0x414260
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
lea edx, [esp + 0x198]
push 1
lea eax, [esp + 0x2a0]
push edx
push eax
call esi
test eax, eax
je 0x408011
lea ecx, [esp + 0x29c]
push ebx
lea edx, [esp + 0x98]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
lea eax, [esp + 0x94]
push 1
push eax
jne 0x407fef
call fcn.004022e0
add esp, 8
lea ecx, [esp + 0x29c]
lea edx, [esp + 0x198]
push 2
push ecx
push edx
call esi
jmp 0x408011
call fcn.004022e0
lea ecx, [esp + 0x1a0]
push 1
push ecx
call fcn.004022e0
add esp, 0x10
mov ebx, 1
jmp 0x408011
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x94]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
pop esi
je 0x408036
lea eax, [esp + 0x90]
push 1
push eax
call fcn.004022e0
add esp, 8
pop edi
mov eax, ebx
pop ebp
pop ebx
add esp, 0xa9c
ret 4