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

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x413609a8]
test rax, rax
jne 0x41097300
mov ecx, 0x1a8
call fcn.41211580
mov qword [rsp + 0x48], rax
test rax, rax
je 0x410972f7
mov rcx, rax
call fcn.4109bc80
jmp 0x410972f9
xor eax, eax
mov qword [0x413609a8], rax
mov rcx, rax
add rsp, 0x38
jmp 0x4109b040
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x250
mov rax, qword [0x41359af8]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rbp, rcx
lea rcx, [rsp + 0x32]
xor edx, edx
mov r8d, 0x206
mov qword [rsp + 0x280], r13
mov word [rsp + 0x30], 0
call fcn.412121c0
cmp qword [rbp + 0x128], 8
jb 0x4109b098
mov rcx, qword [rbp + 0x110]
jmp 0x4109b09f
lea rcx, [rbp + 0x110]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4109b10a
cmp qword [rbp + 0x150], 8
jb 0x4109b0bc
mov rcx, qword [rbp + 0x138]
jmp 0x4109b0c3
lea rcx, [rbp + 0x138]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4109b10a
cmp qword [rbp + 0x128], 8
jb 0x4109b0e0
mov rdx, qword [rbp + 0x110]
jmp 0x4109b0e7
lea rdx, [rbp + 0x110]
cmp qword [rbp + 0x150], 8
jb 0x4109b0fa
mov rcx, qword [rbp + 0x138]
jmp 0x4109b101
lea rcx, [rbp + 0x138]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov r13, qword [rbp + 0x30]
mov qword [rsp + 0x278], r12
mov rax, qword [r13 + 8]
mov rbx, qword [rax]
nop
mov rax, qword [rbp + 0x30]
cmp r13, rax
mov rdi, qword [rax + 8]
je 0x4109b132
call fcn.41211d60
cmp rbx, rdi
je 0x4109b23b
cmp rbx, qword [r13 + 8]
jne 0x4109b146
call fcn.41211d60
mov r12, qword [rbx + 0x20]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdx, [r12 + 0x10]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
jle 0x4109b1cd
cmp qword [rbp + 0x128], 8
jb 0x4109b179
mov rax, qword [rbp + 0x110]
jmp 0x4109b180
lea rax, [rbp + 0x110]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
lea r8, [0x4129a828]
lea rcx, str.Setting
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rsi, [rsp + 0x30]
lea rdi, [0x4129a828]
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x4109b1cd
lea rcx, [rsp + 0x30]
call fcn.41214380
mov rcx, qword [r12 + 8]
mov dword [rcx], eax
cmp byte [rbx + 0x29], 0
je 0x4109b1dd
call fcn.41211d60
jmp 0x4109b120
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x29], 0
jne 0x4109b211
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
jne 0x4109b120
nop
nop
nop
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
je 0x4109b200
jmp 0x4109b120
mov rax, qword [rbx + 8]
cmp byte [rax + 0x29], 0
jne 0x4109b233
nop
nop
cmp rbx, qword [rax + 0x10]
jne 0x4109b233
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x29], 0
je 0x4109b220
mov rbx, rax
jmp 0x4109b120
mov r13, qword [rbp + 0x28]
mov rax, qword [r13 + 8]
mov rbx, qword [rax]
nop
nop
nop
mov rax, qword [rbp + 0x28]
cmp r13, rax
mov rdi, qword [rax + 8]
je 0x4109b262
call fcn.41211d60
cmp rbx, rdi
je 0x4109b36b
cmp rbx, qword [r13 + 8]
jne 0x4109b276
call fcn.41211d60
mov r12, qword [rbx + 0x20]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdx, [r12 + 0x10]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
jle 0x4109b2fd
cmp qword [rbp + 0x128], 8
jb 0x4109b2a9
mov rax, qword [rbp + 0x110]
jmp 0x4109b2b0
lea rax, [rbp + 0x110]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
lea r8, [0x4129a828]
lea rcx, str.Setting
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rsi, [rsp + 0x30]
lea rdi, [0x4129a828]
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x4109b2fd
lea rcx, [rsp + 0x30]
call fcn.41214380
mov rcx, qword [r12 + 8]
mov byte [rcx], al
cmp byte [rbx + 0x29], 0
je 0x4109b30d
call fcn.41211d60
jmp 0x4109b250
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x29], 0
jne 0x4109b341
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
jne 0x4109b250
nop
nop
nop
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
je 0x4109b330
jmp 0x4109b250
mov rax, qword [rbx + 8]
cmp byte [rax + 0x29], 0
jne 0x4109b363
nop
nop
cmp rbx, qword [rax + 0x10]
jne 0x4109b363
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x29], 0
je 0x4109b350
mov rbx, rax
jmp 0x4109b250
mov r13, qword [rbp + 0x38]
mov rax, qword [r13 + 8]
mov rbx, qword [rax]
nop
nop
nop
mov rax, qword [rbp + 0x38]
cmp r13, rax
mov rdi, qword [rax + 8]
je 0x4109b392
call fcn.41211d60
cmp rbx, rdi
je 0x4109b4ab
cmp rbx, qword [r13 + 8]
jne 0x4109b3a6
call fcn.41211d60
mov r12, qword [rbx + 0x20]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdx, [r12 + 0x10]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
jle 0x4109b444
cmp qword [rbp + 0x128], 8
jb 0x4109b3d9
mov rax, qword [rbp + 0x110]
jmp 0x4109b3e0
lea rax, [rbp + 0x110]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
lea r8, str.nothing
lea rcx, str.Setting
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rsi, [rsp + 0x30]
lea rdi, str.nothing
mov ecx, 8
repe cmpsw word [rsi], word [rdi]
je 0x4109b444
mov rdx, qword [r12 + 8]
lea rcx, [rsp + 0x30]
nop
nop
nop
movzx eax, word [rcx]
add rdx, 2
add rcx, 2
test ax, ax
mov word [rdx - 2], ax
jne 0x4109b430
cmp byte [rbx + 0x29], 0
je 0x4109b454
call fcn.41211d60
jmp 0x4109b380
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x29], 0
jne 0x4109b481
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
jne 0x4109b380
nop
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
je 0x4109b470
jmp 0x4109b380
mov rax, qword [rbx + 8]
cmp byte [rax + 0x29], 0
jne 0x4109b4a3
nop
nop
cmp rbx, qword [rax + 0x10]
jne 0x4109b4a3
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x29], 0
je 0x4109b490
mov rbx, rax
jmp 0x4109b380
mov rcx, rbp
call fcn.4109a450
cmp qword [rbp + 0x178], 8
mov r13, qword [rsp + 0x280]
mov r12, qword [rsp + 0x278]
jb 0x4109b4d6
mov r9, qword [rbp + 0x160]
jmp 0x4109b4dd
lea r9, [rbp + 0x160]
lea r8, [0x4129afd4]
lea rdx, str.ModifySetConfig64
lea rcx, str.SetModify
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rsi, qword [rbp + 0xa8]
mov rax, qword [rsi + 8]
mov rdi, qword [rax]
nop
nop
nop
mov rax, qword [rbp + 0xa8]
cmp rsi, rax
mov rbx, qword [rax + 8]
je 0x4109b525
call fcn.41211d60
cmp rdi, rbx
je 0x4109b5cb
cmp rdi, qword [rsi + 8]
jne 0x4109b539
call fcn.41211d60
cmp rdi, qword [rsi + 8]
mov rbx, qword [rdi + 0x20]
jne 0x4109b548
call fcn.41211d60
mov edx, dword [rdi + 0x18]
mov rcx, rbp
call fcn.41098d00
test rax, rax
je 0x4109b564
mov rax, qword [rax + 8]
mov rcx, qword [rbx + 8]
mov eax, dword [rax]
mov dword [rcx], eax
cmp byte [rdi + 0x29], 0
je 0x4109b571
call fcn.41211d60
jmp 0x4109b510
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x29], 0
jne 0x4109b5a1
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
jne 0x4109b510
nop
nop
nop
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
je 0x4109b590
jmp 0x4109b510
mov rax, qword [rdi + 8]
cmp byte [rax + 0x29], 0
jne 0x4109b5c3
nop
nop
cmp rdi, qword [rax + 0x10]
jne 0x4109b5c3
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x29], 0
je 0x4109b5b0
mov rdi, rax
jmp 0x4109b510
mov rsi, qword [rbp + 0xa0]
mov rax, qword [rsi + 8]
mov rdi, qword [rax]
nop
nop
mov rax, qword [rbp + 0xa0]
cmp rsi, rax
mov rbx, qword [rax + 8]
je 0x4109b5f5
call fcn.41211d60
cmp rdi, rbx
je 0x4109b69b
cmp rdi, qword [rsi + 8]
jne 0x4109b609
call fcn.41211d60
cmp rdi, qword [rsi + 8]
mov rbx, qword [rdi + 0x20]
jne 0x4109b618
call fcn.41211d60
mov edx, dword [rdi + 0x18]
mov rcx, rbp
call fcn.41098d00
test rax, rax
je 0x4109b635
mov rax, qword [rax + 8]
mov rcx, qword [rbx + 8]
movzx eax, byte [rax]
mov byte [rcx], al
cmp byte [rdi + 0x29], 0
je 0x4109b642
call fcn.41211d60
jmp 0x4109b5e0
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x29], 0
jne 0x4109b671
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
jne 0x4109b5e0
nop
nop
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
je 0x4109b660
jmp 0x4109b5e0
mov rax, qword [rdi + 8]
cmp byte [rax + 0x29], 0
jne 0x4109b693
nop
nop
cmp rdi, qword [rax + 0x10]
jne 0x4109b693
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x29], 0
je 0x4109b680
mov rdi, rax
jmp 0x4109b5e0
mov edx, 0x76
mov rcx, rbp
call fcn.41098360
mov edx, 0x76
mov rcx, rbp
mov r8d, eax
call fcn.41099200
mov edx, 0x75
mov rcx, rbp
call fcn.41098360
mov edx, 0x75
mov rcx, rbp
mov r8d, eax
call fcn.41099200
mov edx, 0x73
mov rcx, rbp
call fcn.41098360
mov edx, 0x73
mov rcx, rbp
mov r8d, eax
call fcn.41099200
mov edx, 0x74
mov rcx, rbp
call fcn.41098360
mov edx, 0x74
mov rcx, rbp
mov r8d, eax
call fcn.41099200
mov edx, 0x71
mov rcx, rbp
call fcn.41098360
mov edx, 0x71
mov rcx, rbp
mov r8d, eax
call fcn.41099200
mov edx, 0x72
mov rcx, rbp
call fcn.41098360
mov edx, 0x72
mov rcx, rbp
mov r8d, eax
call fcn.41099200
mov eax, 1
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.41211b80
mov rbx, qword [rsp + 0x288]
add rsp, 0x250
pop rdi
pop rsi
pop rbp
ret