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

Disassembly:
call fcn.10004c42
mov ecx, eax
jmp 0x100385d9
push ebp
lea ebp, [esp - 0x1a4]
sub esp, 0x224
mov eax, dword [0x1011ac70]
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.10072750
add esp, 0xc
push 8
pop ebx
cmp dword [esi + 0xb0], ebx
jb 0x10038624
mov eax, dword [esi + 0x9c]
jmp 0x1003862a
lea eax, [esi + 0x9c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x1003868a
cmp dword [esi + 0xcc], ebx
jb 0x10038647
mov eax, dword [esi + 0xb8]
jmp 0x1003864d
lea eax, [esi + 0xb8]
push eax
call edi
test eax, eax
je 0x1003868a
cmp dword [esi + 0xb0], ebx
jb 0x10038664
mov ecx, dword [esi + 0x9c]
jmp 0x1003866a
lea ecx, [esi + 0x9c]
cmp dword [esi + 0xcc], ebx
jb 0x1003867a
mov eax, dword [esi + 0xb8]
jmp 0x10038680
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.10044942
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003fd71
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, 0x100de4f8
jmp 0x10038754
call fcn.1004491e
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.100726e4
test eax, eax
pop ecx
jle 0x10038731
cmp dword [esi + 0xb0], 8
jb 0x100386f0
mov eax, dword [esi + 0x9c]
jmp 0x100386f6
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.10072e67
test eax, eax
pop ecx
pop ecx
je 0x10038731
lea eax, [ebp - 0x68]
push eax
call fcn.10073159
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x80]
call fcn.10036f36
mov eax, dword [esi + 0x1c]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003fd71
test al, al
lea ecx, [ebp - 0x80]
je 0x100386c6
mov eax, dword [esi + 0x18]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.10044942
jmp 0x100387e2
call fcn.1004491e
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.100726e4
test eax, eax
pop ecx
jle 0x100387da
cmp dword [esi + 0xb0], 8
jb 0x10038799
mov eax, dword [esi + 0x9c]
jmp 0x1003879f
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.10072e67
test eax, eax
pop ecx
pop ecx
je 0x100387da
lea eax, [ebp - 0x68]
push eax
call fcn.10073159
pop ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 4]
mov byte [ecx], al
lea ecx, [ebp - 0x80]
call fcn.10036f36
mov eax, dword [esi + 0x18]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003fd71
test al, al
lea ecx, [ebp - 0x80]
je 0x1003876f
mov eax, dword [esi + 0x20]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.10044942
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003fd71
test al, al
jne 0x100388d6
mov edi, str.nothing
lea ecx, [ebp - 0x80]
call fcn.1004491e
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
add eax, 8
push eax
call fcn.100726e4
test eax, eax
pop ecx
jle 0x100388ab
cmp dword [esi + 0xb0], 8
jb 0x1003886b
mov eax, dword [esi + 0x9c]
jmp 0x10038871
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.10072e67
test eax, eax
pop ecx
pop ecx
je 0x100388ab
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax + 4]
call fcn.10072c5d
pop ecx
pop ecx
lea ecx, [ebp - 0x80]
call fcn.10036f36
mov eax, dword [esi + 0x20]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
call fcn.1003fd71
test al, al
je 0x1003883e
mov ecx, esi
call fcn.100375a0
lea eax, [esi + 0xd0]
cmp dword [eax + 0x18], 8
jb 0x100388ee
mov eax, dword [eax + 4]
jmp 0x100388f1
add eax, 4
push eax
push 0x100d50cc
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.10044942
jmp 0x10038949
call fcn.1004491e
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.1004491e
push dword [eax]
mov ecx, esi
call fcn.10037ddd
test eax, eax
je 0x10038941
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebp - 0x70]
call fcn.10036f36
mov eax, dword [esi + 0x58]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.1003fd71
test al, al
lea ecx, [ebp - 0x70]
je 0x1003891a
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [eax + 4]
push dword [eax]
call fcn.10044942
jmp 0x100389ad
lea ecx, [ebp - 0x70]
call fcn.1004491e
mov edi, dword [eax + 4]
lea ecx, [ebp - 0x70]
call fcn.1004491e
push dword [eax]
mov ecx, esi
call fcn.10037ddd
test eax, eax
je 0x100389a5
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [ecx], al
lea ecx, [ebp - 0x70]
call fcn.10036f36
mov eax, dword [esi + 0x54]
push eax
push dword [eax + 4]
lea ecx, [ebp - 0x78]
call fcn.10044942
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call fcn.1003fd71
test al, al
je 0x1003897b
mov edi, 0x94
push edi
mov ecx, esi
call fcn.10037a0a
push eax
push edi
mov ecx, esi
call fcn.10037f9c
dec edi
push edi
mov ecx, esi
call fcn.10037a0a
push eax
push edi
mov ecx, esi
call fcn.10037f9c
mov edi, 0x91
push edi
mov ecx, esi
call fcn.10037a0a
push eax
push edi
mov ecx, esi
call fcn.10037f9c
inc edi
push edi
mov ecx, esi
call fcn.10037a0a
push eax
push edi
mov ecx, esi
call fcn.10037f9c
mov edi, 0x8f
push edi
mov ecx, esi
call fcn.10037a0a
push eax
push edi
mov ecx, esi
call fcn.10037f9c
inc edi
push edi
mov ecx, esi
call fcn.10037a0a
push eax
push edi
mov ecx, esi
call fcn.10037f9c
mov ecx, dword [ebp + 0x1a0]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.10071fee
add ebp, 0x1a4
leave
ret