Function at 0x14001e960
Capabilities:
Get common file path
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x12550]
mov eax, 0x12650
call fcn.1400417b0
sub rsp, rax
mov rax, qword [0x1400681b8]
xor rax, rsp
mov qword [rbp + 0x12540], rax
mov rcx, qword [0x1400813c0]
lea rdx, [rbp + 0x2540]
mov edi, 0x7fff
mov r8d, edi
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rbp + 0x2540]
call fcn.140022f20
mov ecx, edi
lea rax, [rbp + 0x2540]
cmp word [rax], 0
je 0x14001e9d7
add rax, 2
sub rcx, 1
jne 0x14001e9c7
xor esi, esi
mov rax, rdi
sub rax, rcx
mov r8d, esi
test rcx, rcx
cmovne r8, rax
je 0x14001ea41
mov rdx, rdi
lea rcx, [rbp + 0x2540]
lea rcx, [rcx + r8*2]
sub rdx, r8
je 0x14001ea33
lea rax, [r8 + 0x7fff8000]
add rax, rdx
lea r9, str.options_unicode.bin
sub r9, rcx
test rax, rax
je 0x14001ea33
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14001ea33
mov word [rcx], r8w
dec rax
add rcx, 2
sub rdx, 1
jne 0x14001ea12
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
lea rcx, [rbp + 0x2540]
call fcn.1400215a0
test eax, eax
jne 0x14001eaef
lea r9d, [rax + 1]
xor ecx, ecx
lea r8d, [rax + 0x1a]
lea rdx, [rbp + 0x2540]
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov rcx, rdi
lea rax, [rbp + 0x2540]
cmp word [rax], si
je 0x14001ea85
add rax, 2
sub rcx, 1
jne 0x14001ea76
mov rax, rdi
mov r8, rsi
sub rax, rcx
test rcx, rcx
cmovne r8, rax
je 0x14001eaef
mov rdx, rdi
lea rcx, [rbp + 0x2540]
lea rcx, [rcx + r8*2]
sub rdx, r8
je 0x14001eae1
lea rax, [r8 + 0x7fff8000]
add rax, rdx
lea r9, str.RapidCRCoptions_unicode.bin
sub r9, rcx
nop
test rax, rax
je 0x14001eae1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14001eae1
mov word [rcx], r8w
dec rax
add rcx, 2
sub rdx, 1
jne 0x14001eac0
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x8000000
lea rcx, [rbp + 0x2540]
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
lea rcx, [rsp + 0x50]
mov rbx, rax
call fcn.14001eec0
cmp rbx, 0xffffffffffffffff
je 0x14001eb57
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rsi
mov r8d, 0x25e4
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x1400813c8], esi
mov eax, dword [rbp + 0x7c8]
cmove eax, esi
mov dword [rbp + 0x7c8], eax
mov eax, dword [rbp + 0x184]
cmp eax, 0xffffffff
je 0x14001eb87
mov dword [rbp + 0xc20], eax
mov dword [rbp + 0x184], 0xffffffff
mov eax, dword [rbp + 0x188]
cmp eax, 0xffffffff
je 0x14001eba2
mov dword [rbp + 0xc24], eax
mov dword [rbp + 0x188], 0xffffffff
mov eax, dword [rbp + 0x18c]
cmp eax, 0xffffffff
je 0x14001ebbd
mov dword [rbp + 0xc28], eax
mov dword [rbp + 0x18c], 0xffffffff
mov eax, dword [rbp + 0x7d0]
cmp eax, 0xffffffff
je 0x14001ebd8
mov dword [rbp + 0xc2c], eax
mov dword [rbp + 0x7d0], 0xffffffff
mov eax, dword [rbp + 0x15c]
cmp eax, 0xffffffff
je 0x14001ebf3
mov dword [rbp + 0xbf8], eax
mov dword [rbp + 0x15c], 0xffffffff
mov eax, dword [rbp + 0x174]
cmp eax, 0xffffffff
je 0x14001ec0e
mov dword [rbp + 0xbfc], eax
mov dword [rbp + 0x174], 0xffffffff
mov eax, dword [rbp + 0x160]
cmp eax, 0xffffffff
je 0x14001ec29
mov dword [rbp + 0xc00], eax
mov dword [rbp + 0x160], 0xffffffff
mov eax, dword [rbp + 0x7d4]
cmp eax, 0xffffffff
je 0x14001ec44
mov dword [rbp + 0xc04], eax
mov dword [rbp + 0x7d4], 0xffffffff
mov rcx, rdi
lea rax, [rsp + 0x54]
nop dword [rax]
cmp word [rax], si
je 0x14001ec5f
add rax, 2
sub rcx, 1
jne 0x14001ec50
mov rax, rdi
mov r8, rsi
sub rax, rcx
mov edx, 1
test rcx, rcx
movabs r9, 0x400000035002101
mov ecx, esi
cmovne r8, rax
cmove r8, rsi
test r8, r8
je 0x14001eccf
nop dword [rax]
test edx, edx
je 0x14001edbe
mov eax, ecx
movzx edx, word [rsp + rax*2 + 0x54]
lea eax, [rdx - 0x22]
cmp ax, 0x3a
ja 0x14001ecb1
movzx eax, ax
bt r9, rax
jb 0x14001ecbc
cmp dx, 0x7c
mov edx, 1
jne 0x14001ecbe
mov edx, esi
inc ecx
mov eax, ecx
cmp rax, r8
jb 0x14001ec90
test edx, edx
je 0x14001edbe
mov rcx, rdi
lea rax, [rbp + 0x3a0]
nop dword [rax]
cmp word [rax], si
je 0x14001ecef
add rax, 2
sub rcx, 1
jne 0x14001ece0
mov rax, rdi
mov r8, rsi
sub rax, rcx
mov edx, 1
test rcx, rcx
mov ecx, esi
cmovne r8, rax
cmove r8, rsi
test r8, r8
je 0x14001ed4e
nop
test edx, edx
je 0x14001edbe
mov eax, ecx
movzx edx, word [rbp + rax*2 + 0x3a0]
lea eax, [rdx - 0x22]
cmp ax, 0x3a
ja 0x14001ed34
movzx eax, ax
bt r9, rax
jb 0x14001ed3f
cmp dx, 0x7c
mov edx, 1
jne 0x14001ed41
mov edx, esi
inc ecx
mov eax, ecx
cmp rax, r8
jb 0x14001ed10
test edx, edx
je 0x14001edbe
mov rcx, rdi
lea rax, [rbp + 0x198]
cmp word [rax], si
je 0x14001ed67
add rax, 2
sub rcx, 1
jne 0x14001ed58
sub rdi, rcx
mov r8, rsi
test rcx, rcx
mov edx, 1
mov ecx, esi
cmovne r8, rdi
cmove r8, rsi
test r8, r8
je 0x14001edc8
test edx, edx
je 0x14001edbe
mov eax, ecx
movzx edx, word [rbp + rax*2 + 0x198]
lea eax, [rdx - 0x22]
cmp ax, 0x3a
ja 0x14001eda4
movzx eax, ax
bt r9, rax
jb 0x14001edaf
cmp dx, 0x7c
mov edx, 1
jne 0x14001edb1
mov edx, esi
inc ecx
mov eax, ecx
cmp rax, r8
jb 0x14001ed84
test edx, edx
jne 0x14001edc8
lea rcx, [rsp + 0x50]
call fcn.14001eec0
mov ecx, dword [rbp + 0x20f8]
mov edx, 0x2000
lea eax, [rcx - 1]
cmp eax, 0x4fff
cmova ecx, edx
lea rdx, [rsp + 0x50]
mov dword [rbp + 0x20f8], ecx
lea rcx, [0x1400813d0]
call fcn.14001d050
mov rcx, qword [rbp + 0x12540]
xor rcx, rsp
call fcn.140041820
lea r11, [rsp + 0x12650]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret