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

Disassembly:
call fcn.004196fd
mov ecx, eax
jmp 0x41afe0
push ebp
lea ebp, [esp - 0x1a4]
sub esp, 0x224
mov eax, dword [0x4f2b64]
xor eax, ebp
mov dword [ebp + 0x1a0], eax
and word [ebp - 0x68], 0
push ebx
push esi
push edi
push 0x206
lea eax, [ebp - 0x66]
push 0
push eax
mov esi, ecx
call fcn.00456900
add esp, 0xc
push 8
pop ebx
cmp dword [esi + 0xb0], ebx
jb 0x41b02b
mov eax, dword [esi + 0x9c]
jmp 0x41b031
lea eax, [esi + 0x9c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x41b091
cmp dword [esi + 0xcc], ebx
jb 0x41b04e
mov eax, dword [esi + 0xb8]
jmp 0x41b054
lea eax, [esi + 0xb8]
push eax
call edi
test eax, eax
je 0x41b091
cmp dword [esi + 0xb0], ebx
jb 0x41b06b
mov ecx, dword [esi + 0x9c]
jmp 0x41b071
lea ecx, [esi + 0x9c]
cmp dword [esi + 0xcc], ebx
jb 0x41b081
mov eax, dword [esi + 0xb8]
jmp 0x41b087
lea eax, [esi + 0xb8]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [esi + 0x1c]
push eax
mov eax, dword [eax + 4]
push dword [eax]
lea ecx, [ebp - 0x80]
call fcn.0041131b
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.00410ab3
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, 0x4bc0c4
jmp 0x41b15b
call fcn.0040acc1
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.0045697a
test eax, eax
pop ecx
jle 0x41b138
cmp dword [esi + 0xb0], 8
jb 0x41b0f7
mov eax, dword [esi + 0x9c]
jmp 0x41b0fd
lea eax, [esi + 0x9c]
push eax
push 0x104
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push edi
add eax, 8
push eax
push str.Setting
call ebx
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.00458410
test eax, eax
pop ecx
pop ecx
je 0x41b138
lea eax, [ebp - 0x68]
push eax
call fcn.004597e4
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x80]
call fcn.004166d1
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.00410ab3
test al, al
lea ecx, [ebp - 0x80]
je 0x41b0cd
mov eax, dword [esi + 0x18]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0041131b
jmp 0x41b1e9
call fcn.0040acc1
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.0045697a
test eax, eax
pop ecx
jle 0x41b1e1
cmp dword [esi + 0xb0], 8
jb 0x41b1a0
mov eax, dword [esi + 0x9c]
jmp 0x41b1a6
lea eax, [esi + 0x9c]
push eax
push 0x104
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push edi
add eax, 8
push eax
push str.Setting
call ebx
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.00458410
test eax, eax
pop ecx
pop ecx
je 0x41b1e1
lea eax, [ebp - 0x68]
push eax
call fcn.004597e4
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov byte [ecx], al
lea ecx, [ebp - 0x80]
call fcn.004166d1
mov eax, dword [esi + 0x18]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.00410ab3
test al, al
lea ecx, [ebp - 0x80]
je 0x41b176
mov eax, dword [esi + 0x20]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0041131b
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.00410ab3
test al, al
jne 0x41b2dd
mov edi, str.nothing
lea ecx, [ebp - 0x80]
call fcn.0040acc1
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.0045697a
test eax, eax
pop ecx
jle 0x41b2b2
cmp dword [esi + 0xb0], 8
jb 0x41b272
mov eax, dword [esi + 0x9c]
jmp 0x41b278
lea eax, [esi + 0x9c]
push eax
push 0x104
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push edi
add eax, 8
push eax
push str.Setting
call ebx
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.00458410
test eax, eax
pop ecx
pop ecx
je 0x41b2b2
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax + 4]
call fcn.004568d5
pop ecx
pop ecx
lea ecx, [ebp - 0x80]
call fcn.004166d1
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.00410ab3
test al, al
je 0x41b245
mov ecx, esi
call fcn.00419f5b
lea eax, [esi + 0xd0]
cmp dword [eax + 0x18], 8
jb 0x41b2f5
mov eax, dword [eax + 4]
jmp 0x41b2f8
add eax, 4
push eax
push 0x4bbae8
push str.ModifySetConfig
push str.SetModify
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [esi + 0x58]
push eax
mov eax, dword [eax + 4]
push dword [eax]
lea ecx, [ebp - 0x70]
call fcn.0041131b
jmp 0x41b350
call fcn.0040acc1
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.0040acc1
push dword [eax]
mov ecx, esi
call fcn.0041a798
test eax, eax
je 0x41b348
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebp - 0x70]
call fcn.004166d1
mov eax, dword [esi + 0x58]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.00410ab3
test al, al
lea ecx, [ebp - 0x70]
je 0x41b321
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0041131b
jmp 0x41b3b4
lea ecx, [ebp - 0x70]
call fcn.0040acc1
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.0040acc1
push dword [eax]
mov ecx, esi
call fcn.0041a798
test eax, eax
je 0x41b3ac
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [ecx], al
lea ecx, [ebp - 0x70]
call fcn.004166d1
mov eax, dword [esi + 0x54]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.0041131b
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.00410ab3
test al, al
je 0x41b382
mov edi, 0x93
push edi
mov ecx, esi
call fcn.0041a3c5
push eax
push edi
mov ecx, esi
call fcn.0041a9a3
dec edi
push edi
mov ecx, esi
call fcn.0041a3c5
push eax
push edi
mov ecx, esi
call fcn.0041a9a3
mov edi, 0x90
push edi
mov ecx, esi
call fcn.0041a3c5
push eax
push edi
mov ecx, esi
call fcn.0041a9a3
inc edi
push edi
mov ecx, esi
call fcn.0041a3c5
push eax
push edi
mov ecx, esi
call fcn.0041a9a3
mov edi, 0x8e
push edi
mov ecx, esi
call fcn.0041a3c5
push eax
push edi
mov ecx, esi
call fcn.0041a9a3
inc edi
push edi
mov ecx, esi
call fcn.0041a3c5
push eax
push edi
mov ecx, esi
call fcn.0041a9a3
mov ecx, dword [ebp + 0x1a0]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.004562c9
add ebp, 0x1a4
leave
ret