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

Disassembly:
call fcn.004171b6
mov ecx, eax
jmp 0x418ef4
push ebp
lea ebp, [esp - 0x1a4]
sub esp, 0x224
mov eax, dword [0x4f04c0]
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.00447440
add esp, 0xc
push 8
pop ebx
cmp dword [esi + 0xb0], ebx
jb 0x418f3f
mov eax, dword [esi + 0x9c]
jmp 0x418f45
lea eax, [esi + 0x9c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x418fa5
cmp dword [esi + 0xcc], ebx
jb 0x418f62
mov eax, dword [esi + 0xb8]
jmp 0x418f68
lea eax, [esi + 0xb8]
push eax
call edi
test eax, eax
je 0x418fa5
cmp dword [esi + 0xb0], ebx
jb 0x418f7f
mov ecx, dword [esi + 0x9c]
jmp 0x418f85
lea ecx, [esi + 0x9c]
cmp dword [esi + 0xcc], ebx
jb 0x418f95
mov eax, dword [esi + 0xb8]
jmp 0x418f9b
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.00424706
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040b5af
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, 0x4bbde0
jmp 0x41906f
call fcn.0041dd3f
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.00446b43
test eax, eax
pop ecx
jle 0x41904c
cmp dword [esi + 0xb0], 8
jb 0x41900b
mov eax, dword [esi + 0x9c]
jmp 0x419011
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.004472c8
test eax, eax
pop ecx
pop ecx
je 0x41904c
lea eax, [ebp - 0x68]
push eax
call fcn.00447b49
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x80]
call fcn.00424609
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040b5af
test al, al
lea ecx, [ebp - 0x80]
je 0x418fe1
mov eax, dword [esi + 0x18]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.00424706
jmp 0x4190fd
call fcn.0041dd3f
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.00446b43
test eax, eax
pop ecx
jle 0x4190f5
cmp dword [esi + 0xb0], 8
jb 0x4190b4
mov eax, dword [esi + 0x9c]
jmp 0x4190ba
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.004472c8
test eax, eax
pop ecx
pop ecx
je 0x4190f5
lea eax, [ebp - 0x68]
push eax
call fcn.00447b49
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov byte [ecx], al
lea ecx, [ebp - 0x80]
call fcn.00424609
mov eax, dword [esi + 0x18]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040b5af
test al, al
lea ecx, [ebp - 0x80]
je 0x41908a
mov eax, dword [esi + 0x20]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.00424706
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040b5af
test al, al
jne 0x4191f1
mov edi, str.nothing
lea ecx, [ebp - 0x80]
call fcn.0041dd3f
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.00446b43
test eax, eax
pop ecx
jle 0x4191c6
cmp dword [esi + 0xb0], 8
jb 0x419186
mov eax, dword [esi + 0x9c]
jmp 0x41918c
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.004472c8
test eax, eax
pop ecx
pop ecx
je 0x4191c6
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax + 4]
call fcn.00447992
pop ecx
pop ecx
lea ecx, [ebp - 0x80]
call fcn.00424609
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040b5af
test al, al
je 0x419159
mov ecx, esi
call fcn.00417dde
lea eax, [esi + 0xd0]
cmp dword [eax + 0x18], 8
jb 0x419209
mov eax, dword [eax + 4]
jmp 0x41920c
add eax, 4
push eax
push 0x4ba094
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.00424706
jmp 0x419264
call fcn.0041dd3f
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.0041dd3f
push dword [eax]
mov ecx, esi
call fcn.0041861b
test eax, eax
je 0x41925c
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebp - 0x70]
call fcn.00424609
mov eax, dword [esi + 0x58]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.0040b5af
test al, al
lea ecx, [ebp - 0x70]
je 0x419235
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.00424706
jmp 0x4192c8
lea ecx, [ebp - 0x70]
call fcn.0041dd3f
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.0041dd3f
push dword [eax]
mov ecx, esi
call fcn.0041861b
test eax, eax
je 0x4192c0
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [ecx], al
lea ecx, [ebp - 0x70]
call fcn.00424609
mov eax, dword [esi + 0x54]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.00424706
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.0040b5af
test al, al
je 0x419296
mov edi, 0x8a
push edi
mov ecx, esi
call fcn.00418248
push eax
push edi
mov ecx, esi
call fcn.004187da
dec edi
push edi
mov ecx, esi
call fcn.00418248
push eax
push edi
mov ecx, esi
call fcn.004187da
mov edi, 0x87
push edi
mov ecx, esi
call fcn.00418248
push eax
push edi
mov ecx, esi
call fcn.004187da
inc edi
push edi
mov ecx, esi
call fcn.00418248
push eax
push edi
mov ecx, esi
call fcn.004187da
mov edi, 0x85
push edi
mov ecx, esi
call fcn.00418248
push eax
push edi
mov ecx, esi
call fcn.004187da
inc edi
push edi
mov ecx, esi
call fcn.00418248
push eax
push edi
mov ecx, esi
call fcn.004187da
mov ecx, dword [ebp + 0x1a0]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.004471af
add ebp, 0x1a4
leave
ret