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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x21c
mov eax, dword [0x651788]
xor eax, esp
mov dword [esp + 0x218], eax
push ebx
push esi
push edi
push 0x206
lea eax, [esp + 0x1e]
mov esi, ecx
push 0
push eax
mov dword [esp + 0x18], esi
mov word [esp + 0x24], 0
call fcn.004afb50
mov ebx, 8
add esp, 0xc
cmp dword [esi + 0xb0], ebx
jb 0x484e03
mov eax, dword [esi + 0x9c]
jmp 0x484e09
lea eax, [esi + 0x9c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x484e69
cmp dword [esi + 0xcc], ebx
jb 0x484e26
mov eax, dword [esi + 0xb8]
jmp 0x484e2c
lea eax, [esi + 0xb8]
push eax
call edi
test eax, eax
je 0x484e69
cmp dword [esi + 0xb0], ebx
jb 0x484e43
mov ecx, dword [esi + 0x9c]
jmp 0x484e49
lea ecx, [esi + 0x9c]
cmp dword [esi + 0xcc], ebx
jb 0x484e59
mov eax, dword [esi + 0xb8]
jmp 0x484e5f
lea eax, [esi + 0xb8]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov esi, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
mov ebx, dword [ecx]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
lea esp, [esp]
test esi, esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x1c]
mov edi, dword [eax + 4]
je 0x484e92
cmp esi, eax
je 0x484e97
call fcn.004afdfe
cmp ebx, edi
je 0x484f6d
test esi, esi
jne 0x484ea8
call fcn.004afdfe
cmp ebx, dword [esi + 4]
jne 0x484eb2
call fcn.004afdfe
mov ebx, dword [ebx + 0x10]
lea edx, [ebx + 8]
mov eax, edx
lea esi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x484ec0
sub eax, esi
sar eax, 1
test eax, eax
jle 0x484f57
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xb0], 8
jb 0x484eec
mov eax, dword [eax + 0x9c]
jmp 0x484ef1
add eax, 0x9c
push eax
push 0x104
lea eax, [esp + 0x20]
push eax
push 0x57413c
push edx
push 0x573194
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x57413c
lea eax, [esp + 0x18]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x484f3c
test dx, dx
je 0x484f38
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x484f3c
add eax, 4
add ecx, 4
test dx, dx
jne 0x484f16
xor eax, eax
jmp 0x484f41
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x484f57
lea ecx, [esp + 0x18]
push ecx
call fcn.004b0f27
mov edx, dword [ebx + 4]
add esp, 4
mov dword [edx], eax
lea ecx, [esp + 0x10]
call fcn.00419a70
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x484e80
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 4]
mov edi, dword [ecx]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
test esi, esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x18]
mov ebx, dword [eax + 4]
je 0x484f93
cmp esi, eax
je 0x484f98
call fcn.004afdfe
cmp edi, ebx
je 0x48506d
test esi, esi
jne 0x484fa9
call fcn.004afdfe
cmp edi, dword [esi + 4]
jne 0x484fb3
call fcn.004afdfe
mov edi, dword [edi + 0x10]
lea edx, [edi + 8]
mov eax, edx
lea esi, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x484fc0
sub eax, esi
sar eax, 1
test eax, eax
jle 0x485057
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xb0], 8
jb 0x484fec
mov eax, dword [eax + 0x9c]
jmp 0x484ff1
add eax, 0x9c
push eax
push 0x104
lea eax, [esp + 0x20]
push eax
push 0x57413c
push edx
push 0x573194
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x57413c
lea eax, [esp + 0x18]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x48503c
test dx, dx
je 0x485038
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x48503c
add eax, 4
add ecx, 4
test dx, dx
jne 0x485016
xor eax, eax
jmp 0x485041
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x485057
lea ecx, [esp + 0x18]
push ecx
call fcn.004b0f27
mov edx, dword [edi + 4]
add esp, 4
mov byte [edx], al
lea ecx, [esp + 0x10]
call fcn.00419a70
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x484f81
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x20]
mov ecx, dword [esi + 4]
mov edi, dword [ecx]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
test esi, esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x20]
mov ebx, dword [eax + 4]
je 0x485093
cmp esi, eax
je 0x485098
call fcn.004afdfe
cmp edi, ebx
je 0x485177
test esi, esi
jne 0x4850a9
call fcn.004afdfe
cmp edi, dword [esi + 4]
jne 0x4850b3
call fcn.004afdfe
mov edi, dword [edi + 0x10]
lea edx, [edi + 8]
mov eax, edx
lea esi, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4850c0
sub eax, esi
sar eax, 1
test eax, eax
jle 0x485161
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xb0], 8
jb 0x4850ec
mov eax, dword [eax + 0x9c]
jmp 0x4850f1
add eax, 0x9c
push eax
push 0x104
lea eax, [esp + 0x20]
push eax
push str.nothing
push edx
push 0x573194
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, str.nothing
lea eax, [esp + 0x18]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x48513c
test dx, dx
je 0x485138
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x48513c
add eax, 4
add ecx, 4
test dx, dx
jne 0x485116
xor eax, eax
jmp 0x485141
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x485161
mov edx, dword [edi + 4]
lea ecx, [esp + 0x18]
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x485150
lea ecx, [esp + 0x10]
call fcn.00419a70
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x485081
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.00484380
cmp dword [esi + 0xe8], 8
jb 0x485193
mov eax, dword [esi + 0xd4]
jmp 0x485199
lea eax, [esi + 0xd4]
push eax
push 0x5731a4
push str.ModifySetConfig
push str.SetModify
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov esi, dword [esi + 0x58]
mov ecx, dword [esi + 4]
mov edi, dword [ecx]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
nop
test esi, esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x58]
mov ebx, dword [eax + 4]
je 0x4851d2
cmp esi, eax
je 0x4851d7
call fcn.004afdfe
cmp edi, ebx
je 0x485229
test esi, esi
jne 0x4851e4
call fcn.004afdfe
cmp edi, dword [esi + 4]
jne 0x4851ee
call fcn.004afdfe
cmp edi, dword [esi + 4]
mov ebx, dword [edi + 0x10]
jne 0x4851fb
call fcn.004afdfe
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0xc]
push eax
call fcn.00484970
test eax, eax
je 0x485216
mov ecx, dword [eax + 4]
mov edx, dword [ebx + 4]
mov eax, dword [ecx]
mov dword [edx], eax
lea ecx, [esp + 0x10]
call fcn.00419a70
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x4851c0
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x54]
mov edx, dword [esi + 4]
mov edi, dword [edx]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
lea ecx, [ecx]
test esi, esi
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x54]
mov ebx, dword [eax + 4]
je 0x485252
cmp esi, eax
je 0x485257
call fcn.004afdfe
cmp edi, ebx
je 0x4852a9
test esi, esi
jne 0x485264
call fcn.004afdfe
cmp edi, dword [esi + 4]
jne 0x48526e
call fcn.004afdfe
cmp edi, dword [esi + 4]
mov ebx, dword [edi + 0x10]
jne 0x48527b
call fcn.004afdfe
mov ecx, dword [edi + 0xc]
push ecx
mov ecx, dword [esp + 0x10]
call fcn.00484970
test eax, eax
je 0x485296
mov edx, dword [eax + 4]
mov eax, dword [ebx + 4]
mov cl, byte [edx]
mov byte [eax], cl
lea ecx, [esp + 0x10]
call fcn.00419a70
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x485240
mov ecx, dword [esp + 0x224]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.004aeca3
mov esp, ebp
pop ebp
ret