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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x661204]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
lea eax, [ebp - 0x20c]
mov esi, ecx
push 0
push eax
mov dword [ebp - 0x210], esi
call fcn.005b9c20
lea ebx, [esi + 0x90]
add esp, 0xc
cmp dword [ebx + 0x14], 8
jb 0x4b8ca4
mov eax, dword [ebx]
jmp 0x4b8ca6
mov eax, ebx
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x4b8cea
add esi, 0xa8
cmp dword [esi + 0x14], 8
jb 0x4b8cc3
mov eax, dword [esi]
jmp 0x4b8cc5
mov eax, esi
push eax
call edi
test eax, eax
je 0x4b8cea
cmp dword [ebx + 0x14], 8
jb 0x4b8cd6
mov eax, dword [ebx]
jmp 0x4b8cd8
mov eax, ebx
cmp dword [esi + 0x14], 8
jb 0x4b8ce0
mov esi, dword [esi]
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, dword [ebp - 0x210]
mov eax, dword [edi + 0x1c]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x4b8df5
nop
mov ebx, dword [esi + 0x14]
lea edx, [ebx + 8]
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b8d10
sub ecx, edi
mov edi, dword [ebp - 0x210]
sar ecx, 1
test ecx, ecx
jle 0x4b8daa
cmp dword [edi + 0xa4], 8
lea eax, [edi + 0x90]
jb 0x4b8d3e
mov eax, dword [eax]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x5ec13c
push edx
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x5ec13c
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4b8d8d
test dx, dx
je 0x4b8d89
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4b8d8d
add eax, 4
add ecx, 4
test dx, dx
jne 0x4b8d67
xor eax, eax
jmp 0x4b8d92
sbb eax, eax
or eax, 1
test eax, eax
je 0x4b8daa
lea eax, [ebp - 0x20c]
push eax
call fcn.005bdaa9
mov ecx, dword [ebx + 4]
add esp, 4
mov dword [ecx], eax
cmp byte [esi + 0xd], 0
jne 0x4b8dea
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x4b8dcf
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x4b8dea
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x4b8dc3
jmp 0x4b8dea
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4b8de8
cmp esi, dword [eax + 8]
jne 0x4b8de8
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4b8dd8
mov esi, eax
mov eax, dword [edi + 0x1c]
cmp esi, dword [eax]
jne 0x4b8d00
mov eax, dword [edi + 0x18]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x4b8ef8
mov ebx, dword [esi + 0x14]
lea edi, [ebx + 8]
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b8e10
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x4b8ea6
mov eax, dword [ebp - 0x210]
add eax, 0x90
cmp dword [eax + 0x14], 8
jb 0x4b8e3a
mov eax, dword [eax]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x5ec13c
push edi
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x5ec13c
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4b8e89
test dx, dx
je 0x4b8e85
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4b8e89
add eax, 4
add ecx, 4
test dx, dx
jne 0x4b8e63
xor eax, eax
jmp 0x4b8e8e
sbb eax, eax
or eax, 1
test eax, eax
je 0x4b8ea6
lea eax, [ebp - 0x20c]
push eax
call fcn.005bdaa9
mov ecx, dword [ebx + 4]
add esp, 4
mov byte [ecx], al
cmp byte [esi + 0xd], 0
jne 0x4b8ee7
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x4b8ecc
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x4b8ee7
nop
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x4b8ec0
jmp 0x4b8ee7
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4b8ee5
cmp esi, dword [eax + 8]
jne 0x4b8ee5
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4b8ed5
mov esi, eax
mov edi, dword [ebp - 0x210]
mov eax, dword [edi + 0x18]
cmp esi, dword [eax]
jne 0x4b8e04
mov eax, dword [edi + 0x20]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
je 0x4b9008
mov ebx, dword [esi + 0x14]
lea edi, [ebx + 8]
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b8f12
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x4b8fb1
mov eax, dword [ebp - 0x210]
add eax, 0x90
cmp dword [eax + 0x14], 8
jb 0x4b8f3c
mov eax, dword [eax]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push str.nothing
push edi
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, str.nothing
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4b8f8b
test dx, dx
je 0x4b8f87
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4b8f8b
add eax, 4
add ecx, 4
test dx, dx
jne 0x4b8f65
xor eax, eax
jmp 0x4b8f90
sbb eax, eax
or eax, 1
test eax, eax
je 0x4b8fb1
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x20c]
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x4b8fa0
cmp byte [esi + 0xd], 0
jne 0x4b8ff7
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x4b8fdc
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x4b8ff7
nop word [eax + eax]
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x4b8fd0
jmp 0x4b8ff7
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4b8ff5
cmp esi, dword [eax + 8]
jne 0x4b8ff5
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4b8fe5
mov esi, eax
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x20]
cmp esi, dword [eax]
jne 0x4b8f07
mov esi, dword [ebp - 0x210]
mov ecx, esi
call fcn.004b9250
cmp dword [esi + 0xd4], 8
lea eax, [esi + 0xc0]
jb 0x4b9026
mov eax, dword [eax]
push eax
push 0x650aa8
push str.ModifySetConfig
push str.SetModify
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
mov ecx, dword [eax]
cmp ecx, eax
je 0x4b9134
nop dword [eax + eax]
mov ebx, dword [esi + 0x1c]
mov edi, dword [ecx + 0x10]
test ebx, ebx
je 0x4b9090
mov edx, dword [ebx]
mov eax, edx
mov esi, dword [edx + 4]
cmp byte [esi + 0xd], 0
jne 0x4b907b
cmp dword [esi + 0x10], edi
jge 0x4b9071
mov esi, dword [esi + 8]
jmp 0x4b9075
mov eax, esi
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
je 0x4b9067
cmp eax, edx
je 0x4b9084
cmp edi, dword [eax + 0x10]
jge 0x4b9086
mov eax, edx
cmp eax, edx
jne 0x4b90c7
mov esi, dword [ebp - 0x210]
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x4b90e9
mov edx, dword [ebx]
mov eax, edx
mov esi, dword [edx + 4]
cmp byte [esi + 0xd], 0
jne 0x4b90b8
cmp dword [esi + 0x10], edi
jge 0x4b90ae
mov esi, dword [esi + 8]
jmp 0x4b90b2
mov eax, esi
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
je 0x4b90a4
cmp eax, edx
je 0x4b90c1
cmp edi, dword [eax + 0x10]
jge 0x4b90c3
mov eax, edx
cmp eax, edx
je 0x4b90e3
mov eax, dword [eax + 0x14]
mov esi, dword [ebp - 0x210]
test eax, eax
je 0x4b90e9
mov edx, dword [ecx + 0x14]
mov eax, dword [eax + 4]
mov edx, dword [edx + 4]
mov eax, dword [eax]
mov dword [edx], eax
jmp 0x4b90e9
mov esi, dword [ebp - 0x210]
cmp byte [ecx + 0xd], 0
jne 0x4b9129
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
jne 0x4b910e
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
jne 0x4b9129
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
je 0x4b9102
jmp 0x4b9129
mov eax, dword [ecx + 4]
cmp byte [eax + 0xd], 0
jne 0x4b9127
cmp ecx, dword [eax + 8]
jne 0x4b9127
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4b9117
mov ecx, eax
mov eax, dword [esi + 0x58]
cmp ecx, dword [eax]
jne 0x4b9050
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov ecx, dword [eax]
cmp ecx, eax
je 0x4b9232
mov ebx, dword [esi + 0x1c]
mov edi, dword [ecx + 0x10]
test ebx, ebx
je 0x4b9189
mov edx, dword [ebx]
mov eax, edx
mov esi, dword [edx + 4]
cmp byte [esi + 0xd], 0
jne 0x4b9174
nop word [eax + eax]
cmp dword [esi + 0x10], edi
jge 0x4b916a
mov esi, dword [esi + 8]
jmp 0x4b916e
mov eax, esi
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
je 0x4b9160
cmp eax, edx
je 0x4b917d
cmp edi, dword [eax + 0x10]
jge 0x4b917f
mov eax, edx
cmp eax, edx
jne 0x4b91c3
mov esi, dword [ebp - 0x210]
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x4b91e5
mov edx, dword [ebx]
mov eax, edx
mov esi, dword [edx + 4]
cmp byte [esi + 0xd], 0
jne 0x4b91b4
nop dword [eax]
cmp dword [esi + 0x10], edi
jge 0x4b91aa
mov esi, dword [esi + 8]
jmp 0x4b91ae
mov eax, esi
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
je 0x4b91a0
cmp eax, edx
je 0x4b91bd
cmp edi, dword [eax + 0x10]
jge 0x4b91bf
mov eax, edx
cmp eax, edx
je 0x4b91df
mov eax, dword [eax + 0x14]
mov esi, dword [ebp - 0x210]
test eax, eax
je 0x4b91e5
mov edx, dword [ecx + 0x14]
mov eax, dword [eax + 4]
mov edx, dword [edx + 4]
mov al, byte [eax]
mov byte [edx], al
jmp 0x4b91e5
mov esi, dword [ebp - 0x210]
cmp byte [ecx + 0xd], 0
jne 0x4b9227
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
jne 0x4b920c
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
jne 0x4b9227
nop
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
je 0x4b9200
jmp 0x4b9227
mov eax, dword [ecx + 4]
cmp byte [eax + 0xd], 0
jne 0x4b9225
cmp ecx, dword [eax + 8]
jne 0x4b9225
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4b9215
mov ecx, eax
mov eax, dword [esi + 0x54]
cmp ecx, dword [eax]
jne 0x4b9143
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0054c3c9
mov esp, ebp
pop ebp
ret