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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x6c0]
sub rsp, 0x7c0
mov rax, qword [0x180106b38]
xor rax, rsp
mov qword [rbp + 0x6b0], rax
mov r10, qword [rsp + 0x58]
lea r14d, [rdx - 0xf]
xor ebx, ebx
mov qword [rbp - 0x68], r9
mov qword [rsp + 0x60], r8
mov r11, r9
mov dword [rsp + 0x4c], edx
mov r15, rcx
mov dword [rsp + 0x68], r14d
mov r9d, edx
mov qword [rsp + 0x70], r10
mov r13d, edx
lea rcx, [0x180000000]
cmp edx, r14d
jbe 0x1800164dd
mov rsi, qword [rsp + 0x58]
lea r12d, [rdx - 0x51]
mov r9d, 0x51
lea edx, [r9 - 1]
cmp r12d, 0x3f
ja case.default.0x180016215
movzx eax, byte [rcx + r12 + 0x16c00]
mov ecx, dword [rcx + rax*4 + 0x16bc0]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov word [rbp + 0x68], dx
jmp case.0x180016215.15
mov dword [rbp + 0x48], 0x310032
jmp case.0x180016215.15
cmp qword [r11 + 0x178], rbx
je case.0x180016215.15
nop dword [rax]
mov edi, 0xc7
mov eax, edi
sub eax, 0xc7
je 0x180016296
cmp eax, 0x36
jne 0x1800162a8
mov rax, qword [rsi + 8]
lea rcx, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x58], rax
xor edx, edx
mov r8d, 0xa2
call fcn.1800adab0
mov rax, qword [0x1800fb9d8]
lea rdx, [rsp + 0x58]
mov r8d, 0x6d
mov qword [rsp + 0x58], rax
mov rcx, rsi
call fcn.1800809f0
mov r11, qword [rbp - 0x68]
jmp 0x1800162a8
mov rsi, qword [r11 + 0x178]
mov rax, qword [rsi + 0x10]
mov qword [r11 + 0x178], rax
add edi, 0x36
cmp edi, 0x133
jb 0x180016245
cmp qword [r11 + 0x178], rbx
jne 0x180016240
mov r8, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
jmp case.0x180016215.15
mov r10, qword [r11 + 0x40]
mov qword [rsp + 0x70], r10
jmp case.0x180016215.15
mov rdx, qword [r11 + 0x40]
xor r8d, r8d
mov ecx, 0xe2
call fcn.1800a4750
mov r8, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
mov qword [rbp - 0x80], rax
jmp case.0x180016215.15
mov word [rbp + 0x4c], r9w
jmp case.0x180016215.15
mov r10d, 0x36
nop dword [rax]
mov eax, r10d
sub eax, 0x36
je 0x180016323
cmp eax, 1
je case.0x18001653b.0
jmp 0x18001636d
mov r9, qword [r11 + 0x10]
test r9, r9
je 0x180016369
nop dword [rax]
mov rax, qword [r9 + 8]
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x180016353
inc rax
test ecx, ecx
jne 0x180016340
test edx, edx
je 0x18001653d
mov r9, qword [r9 + 0x28]
mov r8, qword [rsp + 0x60]
test r9, r9
jne 0x180016330
mov qword [rbp - 0x78], rbx
inc r10d
cmp r10d, 0x38
jb 0x180016310
mov r14d, 0x56
nop dword [rax]
mov eax, r14d
sub eax, 0x56
je 0x180016395
cmp eax, 0x6a
jne 0x1800163de
mov rax, r8
jmp 0x18001697d
cmp byte [r15], bl
je 0x1800163de
mov edi, 0x43
nop
cmp edi, 0x43
je 0x1800163b5
cmp edi, 0xfa
jne 0x1800163cb
mov rax, rbx
jmp 0x18001697d
mov r9, r8
xor edx, edx
mov r8, r11
mov ecx, 0xdf
call fcn.1800a0950
mov r11, qword [rbp - 0x68]
mov r8, qword [rsp + 0x60]
add edi, 0xb7
cmp edi, 0x1b1
jb 0x1800163a0
mov r8, qword [rsp + 0x60]
add r14d, 0x6a
cmp r14d, 0x12a
jb 0x180016380
mov r14d, dword [rsp + 0x68]
mov r10, qword [rsp + 0x70]
test r8, r8
je 0x1800163ad
cmp qword [r8], rbx
je case.0x180016215.15
mov r9, r8
mov qword [rsp + 0x28], rbx
xor r8d, r8d
mov byte [rsp + 0x40], bl
mov edx, 0xab
mov qword [rsp + 0x20], r11
lea rcx, [rsp + 0x40]
call fcn.18002c0c0
mov r8, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
jmp case.0x180016215.15
mov r8, qword [r11 + 0x40]
mov r9d, 0x92
mov rdx, qword [rbp - 0x80]
xor ecx, ecx
call fcn.180010c30
mov r8, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
jmp case.0x180016215.15
mov dword [rbp + 0x5c], 0x740078
jmp case.0x180016215.15
mov eax, 0x61
mov dword [rbp + 0x4e], 0x6c0050
mov word [rbp + 0x52], ax
jmp case.0x180016215.15
mov dword [rbp + 0x54], 0x6e0069
mov dword [rbp + 0x58], 0x650054
jmp case.0x180016215.15
mov rdi, qword [rbp - 0x80]
mov r9, r10
mov rdx, rdi
mov r8d, 0xbd
xor ecx, ecx
call fcn.1800b8310
mov r10, qword [rsp + 0x70]
mov rax, qword [rdi]
mov r8, qword [rsp + 0x60]
mov qword [r10 + 8], rax
jmp case.0x180016215.15
mov dword [rbp + 0x60], 0x640045
mov dword [rbp + 0x64], 0x740069
lea rcx, [0x180000000]
mov r11, qword [rbp - 0x68]
dec r13d
dec r12d
cmp r13d, r14d
ja 0x1800161e7
mov r9d, dword [rsp + 0x4c]
lea edx, [r9 - 0xe]
mov dword [rsp + 0x48], edx
cmp r9d, edx
jbe case.0x18001653b.0
mov r14, qword [rsp + 0x58]
lea edx, [r9 - 0x53]
mov rsi, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x78]
mov r12, qword [rsp + 0x58]
mov r13d, dword [rsp + 0x78]
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x50], edx
mov r8d, 0x73
cmp edx, 0x3d
ja case.default.0x18001653b
movzx eax, byte [rcx + rdx + 0x16c74]
mov ecx, dword [rcx + rax*4 + 0x16c40]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov rax, r9
jmp 0x18001697d
cmp qword [rbp - 0x80], 0xffffffffffffffff
mov byte [rsp + 0x40], 1
jne case.0x18001653b.12
mov edi, 0xcb
nop word [rax + rax]
cmp edi, 0x58d
ja 0x1800165e3
je 0x1800165d5
cmp edi, 0xcb
je 0x1800165cd
cmp edi, 0x261
je 0x1800165bf
cmp edi, 0x3f7
jne 0x1800165fc
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp - 0x20], rax
mov r9d, r15d
mov dword [rbp - 0x18], eax
mov r8, r12
lea rax, [rbp + 0x80]
mov edx, r13d
mov qword [rsp + 0x28], rax
mov rcx, r14
mov qword [rsp + 0x20], rbx
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
call qword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirW]
jmp 0x1800165fc
mov r13d, 0x36
mov r12, rbx
mov r15d, ebx
jmp 0x1800165fc
mov r14, rbx
mov rsi, rbx
jmp 0x1800165fc
lea rdx, [rbp - 0x50]
mov rcx, rsi
call sub.IMM32.dll_ImmGetCompositionFontA
jmp 0x1800165fc
cmp edi, 0x723
je 0x1800165f9
cmp edi, 0x8b9
je case.0x18001653b.0
jmp 0x1800165fc
mov byte [rbp - 0x78], bl
add edi, 0x196
cmp edi, 0x984
jbe 0x180016560
jmp 0x180016b86
cmp byte [rsp + 0x40], bl
je 0x180016630
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x10]
call sub.IMM32.dll_ImmSetCandidateWindow
mov edx, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x4c]
mov byte [rbp - 0x78], 1
jmp case.0x18001653b.12
mov dword [rbp + 0x6a], 0x690072
jmp case.0x18001653b.12
cmp qword [r11 + 0x18], 8
mov rcx, r11
jb 0x180016652
mov rcx, qword [r11]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbp - 0x80], rax
jmp 0x180016b86
mov rcx, qword [rbp - 0x80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rsp + 0x68], eax
mov dword [rbp - 0x60], ebx
jmp 0x180016b86
mov eax, dword [rsp + 0x68]
cmp eax, dword [rbp - 0x70]
je 0x180016abc
mov edi, ILClone
nop dword [rax]
cmp edi, 0x35e
ja 0x180016892
je 0x18001687f
cmp edi, 0x197
ja 0x180016802
je 0x1800167ed
cmp edi, 0xd4
ja 0x1800167b1
je 0x18001676d
mov eax, edi
sub eax, 0x11
je 0x180016754
sub eax, 0x41
je 0x180016732
cmp eax, 0x41
jne 0x180016aad
lea r8d, [rax - 0x3f]
lea rdx, [0x1800ea4e4]
lea rcx, [rbp + 0x30]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov r8d, 1
lea rdx, [0x1800ea4ec]
lea rcx, [rbp + 0x30]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov r8d, 0x73
jmp 0x180016aad
mov r8d, 3
lea rdx, [0x1800ea4dc]
lea rcx, [rbp + 0x34]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov r8d, 0x73
jmp 0x180016aad
mov eax, dword [0x1800ea4d4]
mov dword [rbp + 0x30], eax
movzx eax, word [0x1800ea4d8]
mov word [rbp + 0x34], ax
jmp 0x180016aad
mov r8d, 2
lea rdx, [0x1800ea4cc]
lea rcx, [rbp + 0x3e]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
lea rcx, [rbp + 0x30]
sub rcx, 2
nop dword [rax]
cmp word [rcx + 2], bx
lea rcx, [rcx + 2]
jne 0x180016790
mov eax, dword [0x1800ea4d0]
mov r8d, 0x73
mov dword [rcx], eax
mov dword [rbp + 0x42], r8d
jmp 0x180016aad
mov eax, edi
sub eax, 0x115
je 0x1800167d1
cmp eax, 0x41
jne 0x180016aad
mov eax, 0x30
mov word [rbp + 0x1a], ax
jmp 0x180016aad
mov eax, 0x4f
mov dword [rbp + 0x10], 0x300044
mov word [rbp + 0x18], ax
mov dword [rbp + 0x14], 0x300066
jmp 0x180016aad
mov eax, 0x55
mov dword [rbp + 0x1c], 0x300060
mov word [rbp + 0x20], ax
jmp 0x180016aad
cmp edi, 0x29b
ja 0x180016853
je 0x180016847
mov eax, edi
sub eax, 0x1d8
je 0x18001683b
sub eax, 0x41
je 0x18001682f
cmp eax, 0x41
jne 0x180016aad
mov dword [rbp - 0x50], 0x56004a
jmp 0x180016aad
mov dword [rbp + 0x26], 0x30
jmp 0x180016aad
mov dword [rbp + 0x22], 0x440030
jmp 0x180016aad
mov dword [rbp - 0x4c], 0x20004d
jmp 0x180016aad
mov eax, edi
sub eax, 0x2dc
je 0x180016873
cmp eax, 0x41
jne 0x180016aad
mov eax, 0x61
mov word [rbp - 0x44], ax
jmp 0x180016aad
mov dword [rbp - 0x48], 0x680073
jmp 0x180016aad
mov dword [rbp - 0x42], 0x650072
mov dword [rbp - 0x3e], 0x200064
jmp 0x180016aad
cmp edi, 0x525
ja 0x18001694d
je 0x180016941
cmp edi, 0x462
ja 0x180016917
je 0x180016902
mov eax, edi
sub eax, 0x39f
je 0x1800168f6
sub eax, 0x41
je 0x1800168da
cmp eax, 0x41
jne 0x180016aad
mov eax, 0x69
mov dword [rbp - 0x2c], 0x640020
mov word [rbp - 0x28], ax
jmp 0x180016aad
mov eax, 0x62
mov dword [rbp - 0x34], 0x610072
mov word [rbp - 0x36], ax
mov dword [rbp - 0x30], 0x790072
jmp 0x180016aad
mov dword [rbp - 0x3a], 0x69006c
jmp 0x180016aad
mov eax, 0x69
mov dword [rbp - 0x26], 0x200072
mov word [rbp - 0x22], ax
jmp 0x180016aad
mov eax, edi
sub eax, 0x4a3
je 0x180016937
cmp eax, 0x41
jne 0x180016aad
mov eax, 0x20
mov word [rbp - 0x1e], ax
jmp 0x180016aad
mov word [rbp - 0x20], r8w
jmp 0x180016aad
mov dword [rbp - 0x1c], 0x730025
jmp 0x180016aad
mov eax, edi
sub eax, 0x566
je 0x180016aa9
sub eax, 0x41
je 0x180016a07
sub eax, 0x41
je 0x1800169de
sub eax, 0x41
je 0x1800169a7
cmp eax, 0x41
jne 0x180016aad
mov byte [rbp - 0x78], bl
mov rax, qword [rbp - 0x78]
mov rcx, qword [rbp + 0x6b0]
xor rcx, rsp
call fcn.1800bfc40
mov rbx, qword [rsp + 0x800]
add rsp, 0x7c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor r9d, r9d
lea rdx, [rbp + 0x30]
xor r8d, r8d
lea rcx, [rbp + 0x4a0]
call qword [sym.imp.SHELL32.dll_PathYetAnotherMakeUniqueName]
lea r8, [rbp + 0x80]
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_AddConsoleAliasW]
mov r8d, 0x73
jmp 0x180016aad
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov r8d, 0x104
lea rdx, [rbp + 0x80]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r8d, 0x73
jmp 0x180016aad
xor edx, edx
lea rcx, [rbp + 0x290]
mov r8d, 0x208
call sub.VCRUNTIME140.dll_memset
lea rcx, [rbp + 0x80]
mov edx, 4
lea rax, [rbp + 0x290]
nop
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180016a30
mov r8, qword [rsp + 0x60]
mov rax, qword [rax]
mov qword [rcx], rax
mov rax, r8
mov qword [r8 + 0x10], rbx
cmp qword [r8 + 0x18], 0x10
jb 0x180016a9f
mov rax, qword [r8]
mov byte [rax], bl
mov r8d, 0x73
jmp 0x180016aad
mov word [rbp - 0x18], bx
add edi, 0x41
cmp edi, 0x6ab
jb 0x1800166b0
mov edx, dword [rbp - 0x60]
lea r8, [rbp - 0x58]
lea rcx, [rbp + 0x48]
call qword [sym.imp.SHLWAPI.dll_StrToInt64ExW]
movzx eax, byte [rsp + 0x40]
mov ecx, ebx
cmp dword [rbp - 0x5c], ebx
cmovne ecx, eax
mov byte [rsp + 0x40], cl
jmp 0x180016b86
mov dword [rbp + 0x6e], 0x610076
mov dword [rbp + 0x72], 0x650074
mov word [rbp + 0x76], bx
jmp case.0x18001653b.12
mov edx, dword [rsp + 0x78]
lea r8, [rbp - 0x10]
mov rcx, qword [rsp + 0x58]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
call sub.IMM32.dll_ImmGetCandidateWindow
mov rcx, qword [rbp - 0x80]
mov dword [rbp - 0x5c], eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180016b86
mov qword [rsp + 0x58], rbx
mov dword [rbp - 0x70], ebx
mov dword [rsp + 0x78], ebx
jmp case.0x18001653b.12
lea rax, [0x1800bba10]
mov qword [r10 + 0x10], rbx
mov qword [r11 + 0x98], rax
mov byte [rbp - 0x78], bl
jmp case.0x18001653b.12
mov edi, dword [rsp + 0x68]
xor r8d, r8d
mov rcx, qword [rsp + 0x60]
mov edx, edi
call fcn.1800b3a30
mov rax, qword [rsp + 0x60]
mov rdx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016b70
mov rdx, qword [rax]
mov rcx, qword [rbp - 0x80]
lea r9, [rbp - 0x70]
mov r8d, edi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r9d, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
dec r9d
dec edx
mov dword [rsp + 0x4c], r9d
mov dword [rsp + 0x50], edx
cmp r9d, eax
jbe case.0x18001653b.0
mov r11, qword [rbp - 0x68]
lea rcx, [0x180000000]
mov r10, qword [rsp + 0x70]
jmp 0x180016513