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

Disassembly:
call fcn.100052b8
mov ecx, eax
jmp 0x10043a29
push ebp
lea ebp, [esp - 0x1a4]
sub esp, 0x224
mov eax, dword [0x10207390]
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.10085bc0
add esp, 0xc
push 8
pop ebx
cmp dword [esi + 0xb0], ebx
jb 0x10043a74
mov eax, dword [esi + 0x9c]
jmp 0x10043a7a
lea eax, [esi + 0x9c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x10043ada
cmp dword [esi + 0xcc], ebx
jb 0x10043a97
mov eax, dword [esi + 0xb8]
jmp 0x10043a9d
lea eax, [esi + 0xb8]
push eax
call edi
test eax, eax
je 0x10043ada
cmp dword [esi + 0xb0], ebx
jb 0x10043ab4
mov ecx, dword [esi + 0x9c]
jmp 0x10043aba
lea ecx, [esi + 0x9c]
cmp dword [esi + 0xcc], ebx
jb 0x10043aca
mov eax, dword [esi + 0xb8]
jmp 0x10043ad0
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.1001d93c
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.10054d99
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, 0x1018fe5c
jmp 0x10043ba4
call fcn.10054ee4
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.10085b54
test eax, eax
pop ecx
jle 0x10043b81
cmp dword [esi + 0xb0], 8
jb 0x10043b40
mov eax, dword [esi + 0x9c]
jmp 0x10043b46
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.100862d7
test eax, eax
pop ecx
pop ecx
je 0x10043b81
lea eax, [ebp - 0x68]
push eax
call fcn.100865c9
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x80]
call fcn.100423b5
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.10054d99
test al, al
lea ecx, [ebp - 0x80]
je 0x10043b16
mov eax, dword [esi + 0x18]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.1001d93c
jmp 0x10043c32
call fcn.10054ee4
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.10085b54
test eax, eax
pop ecx
jle 0x10043c2a
cmp dword [esi + 0xb0], 8
jb 0x10043be9
mov eax, dword [esi + 0x9c]
jmp 0x10043bef
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.100862d7
test eax, eax
pop ecx
pop ecx
je 0x10043c2a
lea eax, [ebp - 0x68]
push eax
call fcn.100865c9
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov byte [ecx], al
lea ecx, [ebp - 0x80]
call fcn.100423b5
mov eax, dword [esi + 0x18]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.10054d99
test al, al
lea ecx, [ebp - 0x80]
je 0x10043bbf
mov eax, dword [esi + 0x20]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.1001d93c
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.10054d99
test al, al
jne 0x10043d26
mov edi, str.nothing
lea ecx, [ebp - 0x80]
call fcn.10054ee4
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.10085b54
test eax, eax
pop ecx
jle 0x10043cfb
cmp dword [esi + 0xb0], 8
jb 0x10043cbb
mov eax, dword [esi + 0x9c]
jmp 0x10043cc1
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.100862d7
test eax, eax
pop ecx
pop ecx
je 0x10043cfb
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax + 4]
call fcn.100860cd
pop ecx
pop ecx
lea ecx, [ebp - 0x80]
call fcn.100423b5
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.10054d99
test al, al
je 0x10043c8e
mov ecx, esi
call fcn.10042913
lea eax, [esi + 0xd0]
cmp dword [eax + 0x18], 8
jb 0x10043d3e
mov eax, dword [eax + 4]
jmp 0x10043d41
add eax, 4
push eax
push 0x10186140
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.1001d93c
jmp 0x10043d99
call fcn.10054ee4
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.10054ee4
push dword [eax]
mov ecx, esi
call fcn.10043150
test eax, eax
je 0x10043d91
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebp - 0x70]
call fcn.100423b5
mov eax, dword [esi + 0x58]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.10054d99
test al, al
lea ecx, [ebp - 0x70]
je 0x10043d6a
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.1001d93c
jmp 0x10043dfd
lea ecx, [ebp - 0x70]
call fcn.10054ee4
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.10054ee4
push dword [eax]
mov ecx, esi
call fcn.10043150
test eax, eax
je 0x10043df5
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [ecx], al
lea ecx, [ebp - 0x70]
call fcn.100423b5
mov eax, dword [esi + 0x54]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.1001d93c
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.10054d99
test al, al
je 0x10043dcb
mov edi, 0x96
push edi
mov ecx, esi
call fcn.10042d7d
push eax
push edi
mov ecx, esi
call fcn.1004330f
dec edi
push edi
mov ecx, esi
call fcn.10042d7d
push eax
push edi
mov ecx, esi
call fcn.1004330f
mov edi, 0x93
push edi
mov ecx, esi
call fcn.10042d7d
push eax
push edi
mov ecx, esi
call fcn.1004330f
inc edi
push edi
mov ecx, esi
call fcn.10042d7d
push eax
push edi
mov ecx, esi
call fcn.1004330f
mov edi, 0x91
push edi
mov ecx, esi
call fcn.10042d7d
push eax
push edi
mov ecx, esi
call fcn.1004330f
inc edi
push edi
mov ecx, esi
call fcn.10042d7d
push eax
push edi
mov ecx, esi
call fcn.1004330f
mov ecx, dword [ebp + 0x1a0]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.1008545e
add ebp, 0x1a4
leave
ret