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

Disassembly:
call fcn.10005949
mov ecx, eax
jmp 0x10052ae1
push ebp
lea ebp, [esp - 0x1a4]
sub esp, 0x224
mov eax, dword [0x10139d20]
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.10077be0
add esp, 0xc
push 8
pop ebx
cmp dword [esi + 0xb0], ebx
jb 0x10052b2c
mov eax, dword [esi + 0x9c]
jmp 0x10052b32
lea eax, [esi + 0x9c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x10052b92
cmp dword [esi + 0xcc], ebx
jb 0x10052b4f
mov eax, dword [esi + 0xb8]
jmp 0x10052b55
lea eax, [esi + 0xb8]
push eax
call edi
test eax, eax
je 0x10052b92
cmp dword [esi + 0xb0], ebx
jb 0x10052b6c
mov ecx, dword [esi + 0x9c]
jmp 0x10052b72
lea ecx, [esi + 0x9c]
cmp dword [esi + 0xcc], ebx
jb 0x10052b82
mov eax, dword [esi + 0xb8]
jmp 0x10052b88
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.10051728
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003f8a6
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, 0x100fb4cc
jmp 0x10052c5c
call fcn.1003f8cd
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.10077b72
test eax, eax
pop ecx
jle 0x10052c39
cmp dword [esi + 0xb0], 8
jb 0x10052bf8
mov eax, dword [esi + 0x9c]
jmp 0x10052bfe
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.100782e7
test eax, eax
pop ecx
pop ecx
je 0x10052c39
lea eax, [ebp - 0x68]
push eax
call fcn.10077d2c
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x80]
call fcn.1005141a
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003f8a6
test al, al
lea ecx, [ebp - 0x80]
je 0x10052bce
mov eax, dword [esi + 0x18]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.10051728
jmp 0x10052cea
call fcn.1003f8cd
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.10077b72
test eax, eax
pop ecx
jle 0x10052ce2
cmp dword [esi + 0xb0], 8
jb 0x10052ca1
mov eax, dword [esi + 0x9c]
jmp 0x10052ca7
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.100782e7
test eax, eax
pop ecx
pop ecx
je 0x10052ce2
lea eax, [ebp - 0x68]
push eax
call fcn.10077d2c
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov byte [ecx], al
lea ecx, [ebp - 0x80]
call fcn.1005141a
mov eax, dword [esi + 0x18]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003f8a6
test al, al
lea ecx, [ebp - 0x80]
je 0x10052c77
mov eax, dword [esi + 0x20]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.10051728
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003f8a6
test al, al
jne 0x10052dde
mov edi, 0x100f4d04
lea ecx, [ebp - 0x80]
call fcn.1003f8cd
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.10077b72
test eax, eax
pop ecx
jle 0x10052db3
cmp dword [esi + 0xb0], 8
jb 0x10052d73
mov eax, dword [esi + 0x9c]
jmp 0x10052d79
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.100782e7
test eax, eax
pop ecx
pop ecx
je 0x10052db3
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax + 4]
call fcn.100780db
pop ecx
pop ecx
lea ecx, [ebp - 0x80]
call fcn.1005141a
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003f8a6
test al, al
je 0x10052d46
mov ecx, esi
call fcn.10051aa8
lea eax, [esi + 0xd0]
cmp dword [eax + 0x18], 8
jb 0x10052df6
mov eax, dword [eax + 4]
jmp 0x10052df9
add eax, 4
push eax
push 0x100f22d8
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.10051728
jmp 0x10052e51
call fcn.1003f8cd
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.1003f8cd
push dword [eax]
mov ecx, esi
call fcn.100522e5
test eax, eax
je 0x10052e49
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebp - 0x70]
call fcn.1005141a
mov eax, dword [esi + 0x58]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.1003f8a6
test al, al
lea ecx, [ebp - 0x70]
je 0x10052e22
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.10051728
jmp 0x10052eb5
lea ecx, [ebp - 0x70]
call fcn.1003f8cd
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.1003f8cd
push dword [eax]
mov ecx, esi
call fcn.100522e5
test eax, eax
je 0x10052ead
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [ecx], al
lea ecx, [ebp - 0x70]
call fcn.1005141a
mov eax, dword [esi + 0x54]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10051728
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.1003f8a6
test al, al
je 0x10052e83
mov edi, 0x8a
push edi
mov ecx, esi
call fcn.10051f12
push eax
push edi
mov ecx, esi
call fcn.100524a4
dec edi
push edi
mov ecx, esi
call fcn.10051f12
push eax
push edi
mov ecx, esi
call fcn.100524a4
mov edi, 0x87
push edi
mov ecx, esi
call fcn.10051f12
push eax
push edi
mov ecx, esi
call fcn.100524a4
inc edi
push edi
mov ecx, esi
call fcn.10051f12
push eax
push edi
mov ecx, esi
call fcn.100524a4
mov edi, 0x85
push edi
mov ecx, esi
call fcn.10051f12
push eax
push edi
mov ecx, esi
call fcn.100524a4
inc edi
push edi
mov ecx, esi
call fcn.10051f12
push eax
push edi
mov ecx, esi
call fcn.100524a4
mov ecx, dword [ebp + 0x1a0]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.100773e8
add ebp, 0x1a4
leave
ret