Function at 0x1400b7e50
Capabilities:
Check if file exists
Get common file path

Disassembly:
push r14
sub rsp, 0x280
mov rax, qword [0x1403b8c08]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rax, qword gs:[0x58]
mov r14, rcx
mov qword [rsp + 0x40], rcx
mov ecx, dword [0x1403da410]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x1403d7d60], ecx
jg 0x1400b816d
mov rax, qword [0x1403d7d58]
mov qword [rsp + 0x298], rbx
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x2a8], rsi
cmp dword [rax - 0x10], 0
mov qword [rsp + 0x278], rdi
mov qword [rsp + 0x270], r15
jne 0x1400b7fec
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x208
call fcn.140289490
xor r9d, r9d
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 0x1a]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea rdx, str.HaloDesktopData
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1400b7f2f
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectory]
lea rdx, str.Config.ini
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor r15d, r15d
test eax, eax
jne 0x1400b7f8d
mov qword [rsp + 0x30], r15
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 2
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x1400b7f8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, 0xffffffffffffffff
lea rax, [rsp + 0x50]
mov rbx, rcx
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], r15w
jne 0x1400b7fa0
mov rax, qword [0x1403d7d58]
test ebx, ebx
jne 0x1400b806a
lea rdx, [rax - 0x18]
mov rbx, qword [rdx]
cmp dword [rdx + 8], r15d
je 0x1400b7fec
cmp dword [rdx + 0x10], r15d
jge 0x1400b8041
cmp dword [rax - 0xc], r15d
jl 0x1400b8162
mov dword [rax - 0x10], r15d
mov rax, qword [0x1403d7d58]
mov word [rax], r15w
mov rax, qword [0x1403d7d58]
lea rcx, [rax - 0x18]
call fcn.14000ae30
mov rdi, qword [rsp + 0x278]
add rax, 0x18
mov rsi, qword [rsp + 0x2a8]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x298]
mov r15, qword [rsp + 0x270]
mov qword [r14], rax
mov rax, r14
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140172190
add rsp, 0x280
pop r14
ret
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x1400b8054
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [0x1403d7d58], rax
jmp 0x1400b7fec
mov ebp, dword [rax - 0x10]
lea rdi, [rsp + 0x50]
sub rdi, rax
sar rdi, 1
test ebx, ebx
js 0x1400b8162
mov ecx, dword [rax - 0xc]
mov edx, 1
sub edx, dword [rax - 8]
sub ecx, ebx
or edx, ecx
jge 0x1400b80a6
mov edx, ebx
lea rcx, [0x1403d7d58]
call fcn.14000bdf0
mov rax, qword [0x1403d7d58]
movsxd rcx, ebx
lea rsi, [rcx + rcx]
cmp rdi, rbp
ja 0x1400b80fd
lea rdx, [rax + rdi*2]
test rsi, rsi
je 0x1400b811b
test rdx, rdx
jne 0x1400b80d2
call fcn.14028c79c
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.14028c64c
jmp 0x1400b8114
movsxd rcx, dword [rax - 0xc]
add rcx, rcx
cmp rcx, rsi
jae 0x1400b80f0
call fcn.14028c79c
mov dword [rax], 0x22
call fcn.14028c64c
jmp 0x1400b8114
mov r8, rsi
mov rcx, rax
call fcn.140289020
jmp 0x1400b8114
movsxd rdx, dword [rax - 0xc]
lea r8, [rsp + 0x50]
add rdx, rdx
mov r9, rsi
mov rcx, rax
call fcn.140015050
mov rax, qword [0x1403d7d58]
cmp ebx, dword [rax - 0xc]
jg 0x1400b8162
mov dword [rax - 0x10], ebx
mov rax, qword [0x1403d7d58]
mov word [rsi + rax], r15w
jmp 0x1400b7fe5
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
lea rcx, [0x1402e93d0]
mov qword [0x1403d7d58], rax
call fcn.140171d94
lea rcx, [0x1403d7d60]
call fcn.140171f64
jmp 0x1400b7e9a
mov ecx, 0x80070057
call fcn.14000adf0
int3
lea rcx, [0x1403d7d60]
call fcn.140171fc4
cmp dword [0x1403d7d60], 0xffffffff
jne 0x1400b7e9a
call fcn.14000b190
mov rcx, rax
test rax, rax
jne 0x1400b8134
mov ecx, 0x80004005
call fcn.14000adf0
int3