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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x630f50]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
mov edi, ecx
call fcn.005534a0
lea esi, [edi + 0x90]
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x41f28b
mov eax, dword [esi]
jmp 0x41f28d
mov eax, esi
push ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f2d4
lea ebx, [edi + 0xa8]
cmp dword [ebx + 0x14], 8
jb 0x41f2a9
mov eax, dword [ebx]
jmp 0x41f2ab
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41f2d4
cmp dword [esi + 0x14], 8
jb 0x41f2c0
mov eax, dword [esi]
jmp 0x41f2c2
mov eax, esi
cmp dword [ebx + 0x14], 8
jb 0x41f2ca
mov ebx, dword [ebx]
push 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [edi + 0x1c]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [ebp - 0x210], eax
cmp eax, ecx
je 0x41f375
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x214], eax
lea ebx, [eax + 8]
push ebx
call fcn.00553cf3
pop ecx
test eax, eax
jle 0x41f359
cmp dword [esi + 0x14], 8
jb 0x41f30a
mov eax, dword [esi]
jmp 0x41f30c
mov eax, esi
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x5c1c1c
push ebx
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x20c]
push 0x5c1c1c
push eax
call fcn.00553cb5
pop ecx
pop ecx
test eax, eax
je 0x41f359
lea eax, [ebp - 0x20c]
push eax
call fcn.00554e95
pop ecx
mov ecx, dword [ebp - 0x214]
mov ecx, dword [ecx + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x210]
call fcn.00411cdf
mov ecx, dword [edi + 0x1c]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ecx]
jne 0x41f2e9
mov eax, dword [edi + 0x18]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [ebp - 0x210], eax
cmp eax, ecx
je 0x41f416
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x214], eax
lea ebx, [eax + 8]
push ebx
call fcn.00553cf3
pop ecx
test eax, eax
jle 0x41f3fa
cmp dword [esi + 0x14], 8
jb 0x41f3ab
mov eax, dword [esi]
jmp 0x41f3ad
mov eax, esi
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x5c1c1c
push ebx
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x20c]
push 0x5c1c1c
push eax
call fcn.00553cb5
pop ecx
pop ecx
test eax, eax
je 0x41f3fa
lea eax, [ebp - 0x20c]
push eax
call fcn.00554e95
pop ecx
mov ecx, dword [ebp - 0x214]
mov ecx, dword [ecx + 4]
mov byte [ecx], al
lea ecx, [ebp - 0x210]
call fcn.00411cdf
mov ecx, dword [edi + 0x18]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ecx]
jne 0x41f38a
mov eax, dword [edi + 0x20]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [ebp - 0x210], eax
cmp eax, ecx
je 0x41f4a5
mov ebx, dword [eax + 0x14]
lea eax, [ebx + 8]
push eax
call fcn.00553cf3
pop ecx
test eax, eax
jle 0x41f48d
cmp dword [esi + 0x14], 8
jb 0x41f442
mov eax, dword [esi]
jmp 0x41f444
mov eax, esi
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push str.nothing
lea eax, [ebx + 8]
push eax
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x20c]
push str.nothing
push eax
call fcn.00553cb5
pop ecx
pop ecx
test eax, eax
je 0x41f48d
lea eax, [ebp - 0x20c]
push eax
push dword [ebx + 4]
call fcn.00554537
pop ecx
pop ecx
lea ecx, [ebp - 0x210]
call fcn.00411cdf
mov ecx, dword [edi + 0x20]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ecx]
jne 0x41f427
mov ecx, edi
call fcn.0041f5e2
lea eax, [edi + 0xc0]
pop ebx
cmp dword [eax + 0x14], 8
jb 0x41f4bb
mov eax, dword [eax]
push eax
push 0x5bfc74
push str.ModifySetConfig
push str.SetModify
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [edi + 0x58]
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [ebp - 0x210], esi
cmp esi, eax
je 0x41f515
push dword [esi + 0x10]
mov ecx, edi
call fcn.0041d5af
test eax, eax
je 0x41f4fd
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [edx]
mov dword [ecx], eax
lea ecx, [ebp - 0x210]
call fcn.00411cdf
mov eax, dword [edi + 0x58]
mov esi, dword [ebp - 0x210]
cmp esi, dword [eax]
jne 0x41f4e2
mov eax, dword [edi + 0x54]
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [ebp - 0x210], esi
cmp esi, eax
je 0x41f559
push dword [esi + 0x10]
mov ecx, edi
call fcn.0041d5af
test eax, eax
je 0x41f541
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
mov al, byte [edx]
mov byte [ecx], al
lea ecx, [ebp - 0x210]
call fcn.00411cdf
mov eax, dword [edi + 0x54]
mov esi, dword [ebp - 0x210]
cmp esi, dword [eax]
jne 0x41f526
mov esi, 0x93
push esi
mov ecx, edi
call fcn.0041d623
push eax
push esi
mov ecx, edi
call fcn.004200e8
dec esi
push esi
mov ecx, edi
call fcn.0041d623
push eax
push esi
mov ecx, edi
call fcn.004200e8
mov esi, 0x90
push esi
mov ecx, edi
call fcn.0041d623
push eax
push esi
mov ecx, edi
call fcn.004200e8
inc esi
push esi
mov ecx, edi
call fcn.0041d623
push eax
push esi
mov ecx, edi
call fcn.004200e8
mov esi, 0x8e
push esi
mov ecx, edi
call fcn.0041d623
push eax
push esi
mov ecx, edi
call fcn.004200e8
inc esi
push esi
mov ecx, edi
call fcn.0041d623
push eax
push esi
mov ecx, edi
call fcn.004200e8
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
inc eax
pop esi
call fcn.00553d0c
leave
ret