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

Disassembly:
mov r11, rsp
push rbp
sub rsp, 0x260
mov rax, qword [0x1800a4830]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rbp, rcx
mov qword [r11 + 0x10], rbx
lea rcx, [rsp + 0x30]
mov qword [r11 + 0x18], rsi
xor edx, edx
mov r8d, 0x208
call fcn.18004fb10
lea rsi, [rbp + 0xf8]
cmp qword [rsi + 0x18], 8
jb 0x18002c65d
mov rcx, qword [rsi]
jmp 0x18002c660
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x18002c6af
lea rbx, [rbp + 0x118]
cmp qword [rbx + 0x18], 8
jb 0x18002c67d
mov rcx, qword [rbx]
jmp 0x18002c680
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18002c6af
cmp qword [rsi + 0x18], 8
jb 0x18002c696
mov rdx, qword [rsi]
jmp 0x18002c699
mov rdx, rsi
cmp qword [rbx + 0x18], 8
jb 0x18002c6a3
mov rbx, qword [rbx]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x258], rdi
mov rax, qword [rax]
mov rbx, qword [rax]
cmp rbx, rax
je 0x18002c7bb
nop word [rax + rax]
mov rdi, qword [rbx + 0x28]
or rax, 0xffffffffffffffff
lea rdx, [rdi + 0x10]
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x18002c6e0
test eax, eax
jle 0x18002c75d
cmp qword [rsi + 0x18], 8
jb 0x18002c6fa
mov rax, qword [rsi]
jmp 0x18002c6fd
mov rax, rsi
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
lea r8, [0x1800747b8]
mov dword [rsp + 0x20], 0x104
lea rcx, str.GDftSet
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
movzx eax, word [rsp + 0x30]
cmp ax, word [0x1800747b8]
jne 0x18002c74d
movzx eax, word [rsp + 0x32]
cmp ax, word [0x1800747ba]
jne 0x18002c74d
movzx eax, word [rsp + 0x34]
cmp ax, word [0x1800747bc]
je 0x18002c75d
lea rcx, [rsp + 0x30]
call fcn.180056ab0
mov rcx, qword [rdi + 8]
mov dword [rcx], eax
cmp byte [rbx + 0x19], 0
jne 0x18002c7ae
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
jne 0x18002c78e
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x18002c7ae
nop dword [rax]
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18002c780
jmp 0x18002c7ae
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x18002c7ab
cmp rbx, qword [rax + 0x10]
jne 0x18002c7ab
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18002c798
mov rbx, rax
mov rax, qword [rbp + 0x38]
cmp rbx, qword [rax]
jne 0x18002c6d0
mov rax, qword [rbp + 0x30]
mov rax, qword [rax]
mov rbx, qword [rax]
cmp rbx, rax
je 0x18002c8bb
nop
mov rdi, qword [rbx + 0x28]
or rax, 0xffffffffffffffff
lea rdx, [rdi + 0x10]
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x18002c7e0
test eax, eax
jle 0x18002c85d
cmp qword [rsi + 0x18], 8
jb 0x18002c7fa
mov rax, qword [rsi]
jmp 0x18002c7fd
mov rax, rsi
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
lea r8, [0x1800747b8]
mov dword [rsp + 0x20], 0x104
lea rcx, str.GDftSet
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
movzx eax, word [rsp + 0x30]
cmp ax, word [0x1800747b8]
jne 0x18002c84d
movzx eax, word [rsp + 0x32]
cmp ax, word [0x1800747ba]
jne 0x18002c84d
movzx eax, word [rsp + 0x34]
cmp ax, word [0x1800747bc]
je 0x18002c85d
lea rcx, [rsp + 0x30]
call fcn.180056ab0
mov rcx, qword [rdi + 8]
mov byte [rcx], al
cmp byte [rbx + 0x19], 0
jne 0x18002c8ae
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
jne 0x18002c88e
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x18002c8ae
nop dword [rax]
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18002c880
jmp 0x18002c8ae
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x18002c8ab
cmp rbx, qword [rax + 0x10]
jne 0x18002c8ab
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18002c898
mov rbx, rax
mov rax, qword [rbp + 0x30]
cmp rbx, qword [rax]
jne 0x18002c7d0
mov rax, qword [rbp + 0x40]
mov rax, qword [rax]
mov rbx, qword [rax]
cmp rbx, rax
je 0x18002c9d3
mov qword [rsp + 0x250], r14
lea r14, str.nothing
nop dword [rax]
mov rdi, qword [rbx + 0x28]
or rax, 0xffffffffffffffff
lea rdx, [rdi + 0x10]
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x18002c8f0
test eax, eax
jle 0x18002c973
cmp qword [rsi + 0x18], 8
jb 0x18002c90a
mov rax, qword [rsi]
jmp 0x18002c90d
mov rax, rsi
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
mov r8, r14
mov dword [rsp + 0x20], 0x104
lea rcx, str.GDftSet
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor ecx, ecx
lea rdx, [rsp + 0x30]
nop word [rax + rax]
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r14 + rcx*2 - 2]
jne 0x18002c957
cmp rcx, 8
jne 0x18002c940
jmp 0x18002c973
mov rdx, qword [rdi + 8]
lea rcx, [rsp + 0x30]
movzx eax, word [rcx]
lea rcx, [rcx + 2]
mov word [rdx], ax
lea rdx, [rdx + 2]
test ax, ax
jne 0x18002c960
cmp byte [rbx + 0x19], 0
jne 0x18002c9be
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
jne 0x18002c99e
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x18002c9be
nop
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18002c990
jmp 0x18002c9be
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x18002c9bb
cmp rbx, qword [rax + 0x10]
jne 0x18002c9bb
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18002c9a8
mov rbx, rax
mov rax, qword [rbp + 0x40]
cmp rbx, qword [rax]
jne 0x18002c8e0
mov r14, qword [rsp + 0x250]
mov rcx, rbp
call fcn.18002cc50
mov rax, qword [rbp + 0xb0]
mov rdi, qword [rsp + 0x258]
mov rsi, qword [rsp + 0x280]
mov rbx, qword [rsp + 0x278]
mov rax, qword [rax]
mov rcx, qword [rax]
cmp rcx, rax
je 0x18002cb0e
nop dword [rax]
mov r10, qword [rbp + 0x38]
mov r11, qword [rcx + 0x28]
mov r9d, dword [rcx + 0x20]
mov rdx, qword [r10]
mov rax, rdx
mov r8, qword [rdx + 8]
cmp byte [r8 + 0x19], 0
jne 0x18002ca49
nop dword [rax]
cmp dword [r8 + 0x20], r9d
jge 0x18002ca3c
mov r8, qword [r8 + 0x10]
jmp 0x18002ca42
mov rax, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x18002ca30
cmp rax, rdx
je 0x18002ca54
cmp r9d, dword [rax + 0x20]
jge 0x18002ca57
mov rax, rdx
cmp rax, rdx
jne 0x18002ca9d
mov r10, qword [rbp + 0x30]
mov rdx, qword [r10]
mov rax, rdx
mov r8, qword [rdx + 8]
cmp byte [r8 + 0x19], 0
jne 0x18002ca8a
cmp dword [r8 + 0x20], r9d
jge 0x18002ca7d
mov r8, qword [r8 + 0x10]
jmp 0x18002ca83
mov rax, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x18002ca71
cmp rax, rdx
je 0x18002ca95
cmp r9d, dword [rax + 0x20]
jge 0x18002ca98
mov rax, rdx
cmp rax, rdx
je 0x18002cab2
mov rax, qword [rax + 0x28]
test rax, rax
je 0x18002cab2
mov rax, qword [rax + 8]
mov rdx, qword [r11 + 8]
mov eax, dword [rax]
mov dword [rdx], eax
cmp byte [rcx + 0x19], 0
jne 0x18002cafe
mov rax, qword [rcx + 0x10]
cmp byte [rax + 0x19], 0
jne 0x18002cade
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x18002cafe
nop
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18002cad0
jmp 0x18002cafe
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x18002cafb
cmp rcx, qword [rax + 0x10]
jne 0x18002cafb
mov rcx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18002cae8
mov rcx, rax
mov rax, qword [rbp + 0xb0]
cmp rcx, qword [rax]
jne 0x18002ca10
mov rax, qword [rbp + 0xa8]
mov rax, qword [rax]
mov rcx, qword [rax]
cmp rcx, rax
je 0x18002cc2e
nop dword [rax]
nop dword [rax + rax]
mov r10, qword [rbp + 0x38]
mov r11, qword [rcx + 0x28]
mov r9d, dword [rcx + 0x20]
mov rdx, qword [r10]
mov rax, rdx
mov r8, qword [rdx + 8]
cmp byte [r8 + 0x19], 0
jne 0x18002cb69
nop dword [rax]
cmp dword [r8 + 0x20], r9d
jge 0x18002cb5c
mov r8, qword [r8 + 0x10]
jmp 0x18002cb62
mov rax, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x18002cb50
cmp rax, rdx
je 0x18002cb74
cmp r9d, dword [rax + 0x20]
jge 0x18002cb77
mov rax, rdx
cmp rax, rdx
jne 0x18002cbbd
mov r10, qword [rbp + 0x30]
mov rdx, qword [r10]
mov rax, rdx
mov r8, qword [rdx + 8]
cmp byte [r8 + 0x19], 0
jne 0x18002cbaa
cmp dword [r8 + 0x20], r9d
jge 0x18002cb9d
mov r8, qword [r8 + 0x10]
jmp 0x18002cba3
mov rax, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x18002cb91
cmp rax, rdx
je 0x18002cbb5
cmp r9d, dword [rax + 0x20]
jge 0x18002cbb8
mov rax, rdx
cmp rax, rdx
je 0x18002cbd3
mov rax, qword [rax + 0x28]
test rax, rax
je 0x18002cbd3
mov rax, qword [rax + 8]
mov rdx, qword [r11 + 8]
movzx eax, byte [rax]
mov byte [rdx], al
cmp byte [rcx + 0x19], 0
jne 0x18002cc1e
mov rax, qword [rcx + 0x10]
cmp byte [rax + 0x19], 0
jne 0x18002cbfe
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x18002cc1e
nop
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18002cbf0
jmp 0x18002cc1e
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x18002cc1b
cmp rcx, qword [rax + 0x10]
jne 0x18002cc1b
mov rcx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18002cc08
mov rcx, rax
mov rax, qword [rbp + 0xa8]
cmp rcx, qword [rax]
jne 0x18002cb30
mov eax, 1
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.18002fe60
add rsp, 0x260
pop rbp
ret